blob: 1242f245a90d045df68e45c4e7b475b1df40ae06 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-->
<!-- FileName: results.dtd -->
<!-- Creator: shane_curcuru@lotus.com -->
<!-- Description: Sample DTD for results currently produced with XMLFileLogger. -->
<!-- Note this DTD is not meant to limit what we can put into
results files, it just expresses what content most of the
current Xalan tests report out currently.
This DTD is currently just provided to show the intended
structure of results files. -->
<!-- ======================================================== -->
<!-- Common attributes, expressed as entities -->
<!-- The result of a fileresult, caseresult, or checkresult, i.e.
if the test item passed, failed, etc.
Constants match org.apache.qetest.Logger.PASS, FAIL, etc. -->
<!ENTITY % result.attr
"result (Pass | Fail | Incp | Ambg | Errr) #REQUIRED"
>
<!-- Description or comment of the element -->
<!ENTITY % desc.attr
"desc CDATA #REQUIRED"
>
<!-- loggingLevel of the element -->
<!ENTITY % level.attr
"level CDATA #REQUIRED"
>
<!-- Time reported of the element: currently the exact format
may change, so I'm only declaring it as CDATA -->
<!ENTITY % time.attr
"time CDATA #REQUIRED"
>
<!-- ======================================================== -->
<!-- Conceptually structural elements -->
<!-- The top-level element: a resultsfile, which encapsulates a
whole results document. Note that this is different for
results created by the XSLTestHarness.
Also note that I've allowed message, statistic, arbtrary,
statistic and hashtable elements to appear at most levels,
although by practice they should only appear in testfile
or testcase elements. -->
<!ELEMENT resultsfile (testfile+ | message* | arbitrary* | statistic* | hashtable* ) >
<!ATTLIST resultsfile
logFile CDATA #REQUIRED
>
<!-- A testfile, which is the whole set of results for a single
test file's execution. From this level and below, the dtd
is the same for individual tests and tests run in the harness. -->
<!ELEMENT testfile (testcase+ | message* | arbitrary* | statistic* | hashtable* | fileresult?) >
<!ATTLIST testfile
%desc.attr;
%time.attr;
filename CDATA #REQUIRED
>
<!-- A single testcase, which may not be nested. -->
<!ELEMENT testcase (message* | arbitrary* | statistic* | hashtable* | checkresult* | fileref* | caseresult?) >
<!ATTLIST testcase
%desc.attr;
>
<!-- ======================================================== -->
<!-- Individual or smaller elements -->
<!-- Hashtables and their items; cf. logHashtable() -->
<!ELEMENT hashtable (hashitem*) >
<!ATTLIST hashtable
%desc.attr;
%level.attr;
>
<!ELEMENT hashitem (#PCDATA) >
<!ATTLIST hashitem
key CDATA #REQUIRED
>
<!-- Normal messages; cf. logMsg() -->
<!ELEMENT message (#PCDATA) >
<!ATTLIST message
%level.attr;
>
<!-- Arbitrary messages; cf. logArbitraryMsg(), explicity put into CDATA -->
<!ELEMENT arbitrary (#PCDATA) >
<!ATTLIST arbitrary
%level.attr;
>
<!-- Statistic messages; cf. logStatistic() -->
<!ELEMENT statistic (longval, doubleval) >
<!ATTLIST statistic
%desc.attr;
%level.attr;
>
<!ELEMENT longval (#PCDATA) >
<!ELEMENT doubleval (#PCDATA) >
<!-- Note fileref is not defined in XMLFileLogger, it comes
from ConformanceTests calling logElement() in a specific way.
Although logElement allows you to output nearly any sort
of single element, there aren't any other uses of it in
existing test cases. Feel free to suggest other ideas! -->
<!ELEMENT fileref (#PCDATA) >
<!-- Note that the idref attribute in fileref is *not* a 'legal'
XML idref since they are not guaranteed to be unique (at least
not by the framework) nor to refer to anything. -->
<!ATTLIST fileref
idref CDATA #IMPLIED
outputName CDATA #IMPLIED
inputName CDATA #IMPLIED
xmlName CDATA #IMPLIED
goldName CDATA #IMPLIED
>
<!-- Test point results; cf. various check() methods -->
<!ELEMENT checkresult EMPTY >
<!-- Note the id attribute of checkresult is *not* a 'legal'
XML id since they are not guaranteed to be unique. -->
<!ATTLIST checkresult
%desc.attr;
%result.attr;
id CDATA #IMPLIED
>
<!-- Rolled-up results of a testfile; cf. testFileClose() -->
<!ELEMENT fileresult EMPTY >
<!ATTLIST fileresult
%desc.attr;
%result.attr;
%time.attr;
>
<!-- Rolled-up results of a testcase; cf. testCaseClose() -->
<!ELEMENT caseresult EMPTY >
<!ATTLIST caseresult
%desc.attr;
%result.attr;
>
<!-- End of file ============================================ -->