diff options
Diffstat (limited to 'tests/auto/qdom/testdata/toString_01/doc04.xml')
-rw-r--r-- | tests/auto/qdom/testdata/toString_01/doc04.xml | 510 |
1 files changed, 510 insertions, 0 deletions
diff --git a/tests/auto/qdom/testdata/toString_01/doc04.xml b/tests/auto/qdom/testdata/toString_01/doc04.xml new file mode 100644 index 0000000..541c44e --- /dev/null +++ b/tests/auto/qdom/testdata/toString_01/doc04.xml @@ -0,0 +1,510 @@ +<?xml version='1.0'?> +<!-- +<<<<<<< conformance.xsl + Original version copyright 1999 by Sun Microsystems, Inc. + All Rights Reserved. + Modifications copyright 1999 by OASIS. +======= + XSL WD 1999-04-21 Stylesheet for documenting XML conformance tests. + Tested against James Clark's XT processor. +>>>>>>> 1.3 + + 1999-06-08 22:50 + + XSL 1999-04-21 Stylesheet for documenting XML conformance tests. + + This expects to be run on a document matching the DTD that Sun + defined for merging collections of self-descriptive XML tests. + + Since all those collections will have (by design) the same test + architecture, this includes boilerplate describing that design, + to be used by all test documentation. + + ISSUES: + - Sorting is a bit odd; section numbers can are like "3.3.3" + rather than straight numbers, so numeric sort can't work, + and yet neither does text sort (2.12 should be after 2.2). +--> + +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/XSL/Transform/1.0" + > + +<!-- + ### I don't have a nice algorithm to compare two QDomDocuments, so take + out the following arguments of the above element for now, since they + cause trouble (rms): + + xmlns="http://www.w3.org/TR/REC-html40" + result-ns="" + indent-result="yes" +--> + + <!-- ROOT: write an HTML wrapper --> + <xsl:template match="/TESTSUITE"> + <!-- XHTML namespace --> + <html><head> + <xsl:comment>Generated by an XSL stylesheet.</xsl:comment> + <title> XML Conformance Tests </title> + <meta http-equiv="Content-Type" + content="text/html;charset=utf-8"/> + <style> + <xsl:comment> + BODY { + font-family: Lucida, Helvetica, Univers, sans-serif; + } + H1, H2, H3, H4 { + text-align: left; + color: #0066CC; + } + </xsl:comment> + </style> + <style> + <xsl:comment> + a:hover { + color: white; + background-color: blue; + } + </xsl:comment> + </style> + </head><body bgcolor='#ffffff'> + <img src="files/a_oasis-logo.gif"/> + <h1> XML Conformance Tests </h1> + <p/> + <h4>OASIS XML Conformance Subcommittee<br/>Working Draft<br/>12 July 1999</h4> + <dl> + <dt><b>This version (normative at publishing time):</b></dt> + <dd><ul> + <li><a href="http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconf-19990712.xml"> + http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconf-19990712.xml</a></li> + </ul> + </dd> + <p/> + <dt><b>Current Normative Version:</b></dt> + <dd> + <ul> + <li><a href="http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconf.xml"> + http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconf.xml</a></li> + </ul> + </dd> + <p/> + <dt><b>Non-normative Renditions:</b></dt> + <dd> + <ul> + <li><a href="http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconf-19990712.htm"> + http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconf-19990712.htm</a></li> + <li><a href="http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconf.htm"> + http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconf.htm</a></li> + </ul> + </dd> + <p/> + <dt><b>Available Stylesheets:</b></dt> + <dd> + <ul> + <li><a href="http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconformance.msxsl"> + http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconformance.msxsl</a></li> + <li><a href="http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconformance.xsl"> + http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/conf/xmlconformance.xsl</a></li> + </ul> + </dd> + <p/> + <dt><b>Comments:</b></dt> + <dd><ul><li>Mary Brady, NIST <a href="mailto:mbrady@nist.gov"><mbrady@nist.gov></a> + </li></ul></dd> + <p/> + <dt><b>Public Information Page:</b></dt> + <dd><ul><li><a href="http://www.oasis-open.org/committees/xmlconf-pub.html">http://www.oasis-open.org/committees/xmlconf-pub.html</a> + </li></ul></dd> + </dl> + + <a name="contents"/> + <h2>Table of Contents</h2> + <ol > + <li><a href="#intro">Introduction</a></li> + <li><a href="#matrix">Test Matrix</a></li> + <ol > + <li ><a href="#binary">Binary Tests</a></li> + <li><a href="#output">Output Tests</a></li> + </ol> + <li><a href="#listings">Test Case Descriptions</a></li> + <ol > + <li><a href="#valid">Valid Documents</a></li> + <li><a href="#invalid">Invalid Documents</a></li> + <li><a href="#not-wf">Not-WF Documents</a></li> + <li><a href="#error">Optional Errors</a></li> + </ol> + <li><a href="#contrib">Contributors</a></li> + </ol> + <a name="intro"/> + <h2>1. Introduction </h2> + <p> The <i>OASIS</i> XML Conformance Subcommittee is concerned with + improving the quality of XML processors. The tests described in this + document provide an initial set of metrics to determine how well a + particular implementation conforms to the + <a href="http://www.w3.org/TR/REC-xml">W3C XML 1.0 Recommendation</a>. + It is anticipated that this test suite will grow over time, and will + be expanded to test additional XML functionality as the set of XML + Recommendations evolve. The XML Conformance Test Suite is intended + to complement the W3C XML 1.0 Recommendation. All interpretations + of this Recommendation are subject to confirmation by the + <a href="http://www.w3.org/XML/Activity.html">W3C XML Coordination + Group</a>. + </p> + <p> + Conformance tests can be used by developers, content creators, and + users alike to increase their level of confidence in product quality. In + circumstances where interoperability is necessary, these tests can also + be used to determine that differing implementations support the same set + of features. </p> + + <p>This report provides supporting documentation for all of the tests + contributed by members of the <i>OASIS</i> XML Conformance Subcommittee. + Sources from which these tests have been collected + include: <em> + <xsl:for-each select="//TESTCASES"> + <xsl:value-of select="@PROFILE"/> + <xsl:text>; </xsl:text> + </xsl:for-each> + </em>. Although the tests came from a variety of sources, the actual test + descriptions and references back to the specification were in many instances + added by members of this subcommittee. It is anticipated that this report + will supplement the actual tests, which are available from + <a href="http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/"> + http://sdct-sunsrv1.ncsl.nist.gov/~brady/xml/.</a></p> + + <p>Comments/suggestions should be + forwarded to the XML Conformance Subcommittee Chair, Mary Brady + <a href="mailto:mbrady@nist.gov"><mbrady@nist.gov></a>.</p> + + <a name="matrix"/> + <h2>2. Test Matrix </h2> + + <p> Two basic types of test are presented here. These are + respectively <em><a href="#binary">Binary Tests</a></em> + and <em><a href="#output">Output Tests</a></em>. </p> + + <a name="binary"/> + <h3>2.1 Binary Tests </h3> + + <p> <em>Binary</em> conformance tests are documents which + are grouped into one of four categories. Given a document + in a given category, each kind of XML parser must treat it + consistently and either accept it (a <em>positive test</em>) + or reject it (a <em>negative test</em>). It is in that sense + that the tests are termed "binary". The XML 1.0 Recommendation + talks in terms of two types of XML processor: + <em>validating</em> ones, and <em>nonvalidating</em> ones. + There are two differences between these types of processors: </p> + + <ol> + <li> Validating processors check special productions that + nonvalidating parsers don't, called <em>validity + constraints</em>. (Both must check a basic set of productions, + requiring XML documents to be <em>well formed</em>.) </li> + + <li> Nonvalidating processors are permitted to not + include <em>external entities</em>, such as files with + text. Accordingly, they may not report errors which + would have been detected had those entities been read.</li> + </ol> + + <p> There are two types of such entity, <em>parameter + entities</em> holding definitions which affect validation + and other processing; and <em>general entities</em> which + hold marked up text. It will be appreciated that there are + then five kinds of XML processor: validating processors, + and four kinds of nonvalidating processor based on the + combinations of external entity which they include.</p> + + <center> + <table border="1" bgcolor="#ffffff" cellpadding="4"> + + <caption> + <b>Basic XML Parsing Test Matrix</b><br/> + Test Document Type v. Parser Type + </caption> + + <tr bgcolor="#ffffcc"> + <th widthH="5%" rowspan="2"> </th> + <th widthH="20%" colspan="2">Nonvalidating</th> + <th widthH="5%" rowspan="2">Validating</th> + </tr> + + <tr bgcolor="#ffffcc"> + <th>External Entities<br/>Ignored (3 cases)</th> + <th>External Entities<br/>Read</th> + </tr> + + <tr> + <th bgcolor="#ffffcc">Valid Documents</th> + <td align="center"><b>accept</b></td> + <td align="center"><b>accept</b></td> + <td align="center"><b>accept</b></td> + </tr> + + <tr> + <th bgcolor="#ffffcc">Invalid Documents</th> + <td align="center"><b>accept</b></td> + <td align="center"><b>accept</b></td> + <td align="center">reject</td> + </tr> + + <tr> + <th bgcolor="#ffffcc">Non-WF Documents</th> + <td align="center">reject</td> + <td align="center">reject</td> + <td align="center">reject</td> + </tr> + + <tr> + <th bgcolor="#ffffcc">WF Errors tied<br/> + to External Entity</th> + <td align="center"><b>accept</b><br/>(varies)</td> + <td align="center">reject</td> + <td align="center">reject</td> + </tr> + + <tr> + <th bgcolor="#ffffcc">Documents with<br/> Optional Errors</th> + <td align="center">(not specified)</td> + <td align="center">(not specified)</td> + <td align="center">(not specified)</td> + </tr> + + </table> + </center> + + <p> At this time, the XML community primarily uses parsers + which are in the rightmost two columns of this table, calling + them <em>Well Formed XML Parsers</em> (or "WF Parsers") and + <em>Validating XML Parsers</em>. A second test matrix + could be defined to address the variations in the types of + of XML processor which do not read all external entities. + That additional matrix is not provided here at this time. </p> + + + <a name="output"/> + <h3>2.2 Output Tests</h3> + + <p> The XML 1.0 Recommendation places a number of requirements + on XML processors, to ensure that they report information to + applications as needed. Such requirements are testable. + Validating processors are required to report slightly more + information than nonvalidating ones, so some tests will + require separate output files. Some of the information that + must be reported will not be reportable without reading all + the external entities in a particular test. Many of the tests for + valid documents are paired with an output file to ensure that the XML + processor provides the correct information. </p> + + <p>The output of these tests is provided in one of two forms, as + described in <a href="sun/cxml.html">SUN Microsystems XML + Canonical Forms</a>. At present, the <em>James Clark</em> + collection provides corresponding output in <em>First XML + Canonical Form</em>, and the <em>SUN Microsystems</em> + collection provides corresponding output in <em>Second XML + Canonical Form</em>. When the <a href="http://www.w3.org/XML/"> + W3C XML Group </a> finalizes its work on Canonical XML, these + output files will be updated. + </p> + + <a name="listings"/> + <h2>3. Test Case Descriptions</h2> + + <p> This section of this report contains descriptions of test + cases, each of which fits into the categories noted above. + Each test case includes a document of one of the types in the + binary test matrix above (e.g. valid or invalid documents). + </p> + + <p> In some cases, an <a href="#output">output file </a>, as + described in Section 2.2, will also be associated with + a valid document, which is used for output testing. If such + a file exists, it will be noted at the end of the description + of the input document. </p> + + <p> The description for each test case is presented as a two + part table. The right part describes what the test does. + This description is intended to have enough detail to evaluate + diagnostic messages. The left part includes: <ul> + + <li> An entry describing the <em>Sections and/or Rules</em> + from the <a href="http://www.w3.org/TR/1998/REC-xml-19980210"> + XML 1.0 Recommendation</a> which this case excercises.</li> + + <li> The unique <em>Test ID</em> within a given <em>Collection</em> + for this test. </li> + + <li> The <em>Collection</em> from which this test originated. + Given the <em>Test ID</em> and the <em>Collection</em>, each + test can be uniquely identified.</li> + + <li> Some tests may have a field identifying the kinds of + external <em>Entities</em> a nonvalidating processor must + include (parameter, general, or both) to be able to + detect any errors in that test case. </li> + + </ul></p> + + <p><em>Note that the output format of this report is subject + to change. Also, since XSL does not currently support the + type of sorting rule necessary to make section numbers like + 2.12 appear after 2.2, the ordering is not quite what is + desired.</em></p> + + <a name="valid"/> + <h3>3.1 Valid XML Documents</h3> + + <p> All conforming <em> XML 1.0 Processors </em> are + <b>required</b> to accept valid documents, reporting no + errors. In this section of this test report are found + descriptions of test cases which fit into this category. </p> + + <xsl:apply-templates select="//TEST[@TYPE='valid']"> + <xsl:sort select="@SECTIONS"/> + </xsl:apply-templates> + + <a name="invalid"/> + <h3>3.2 Invalid XML Documents</h3> + + <p> All conforming XML 1.0 <em> Validating Processors </em> + are <b>required</b> to report recoverable errors in the case + of documents which are <em>Invalid</em>. Such errors are + violations of some <em>validity constraint (VC)</em>. </p> + + <p> If a validating processor does not report an error when + given one of these test cases, or if the error reported is + a fatal error, it is not conformant. If the error reported + does not correspond to the problem listed in this test + description, that could also be a conformance problem; it + might instead be a faulty diagnostic. </p> + + <p> All conforming XML 1.0 <em> Nonvalidating Processors </em> + should accept these documents, reporting no errors. </p> + + <xsl:apply-templates select="//TEST[@TYPE='invalid']"> + <xsl:sort select="@SECTIONS"/> + </xsl:apply-templates> + + <a name="not-wf"/> + <h3>3.3 Documents that are Not Well Formed</h3> + + <p> All conforming XML 1.0 Processors are <b>required</b> to + report fatal errors in the case of documents which are not + <em>Well Formed</em>. Such errors are basically of two types: + <em>(a)</em> the document violates the XML grammar; or else + <em>(b)</em> it violates a <em>well formedness constraint + (WFC)</em>. There is a single <em>exception to that + requirement</em>: nonvalidating processors which do not read + certain types of external entities are not required to detect + (and hence report) these errors. </p> + + <p> If a processor does not report a fatal error when given + one of these test cases, it is not conformant. If the error + reported does not correspond to the problem listed in this + test description, that could also be a conformance problem; + it might instead be a faulty diagnostic. </p> + + <xsl:apply-templates select="//TEST[@TYPE='not-wf']"> + <xsl:sort select="@SECTIONS"/> + </xsl:apply-templates> + + <a name="error"/> + <h3>3.4 XML Documents with Optional Errors</h3> + + <p> Conforming XML 1.0 Processors are permitted to ignore + certain errors, or to report them at user option. In this + section of this test report are found descriptions of + test cases which fit into this category. </p> + + <p> Processor behavior on such test cases does not affect + conformance to the XML 1.0 Recommendation, except as noted. </p> + + <xsl:apply-templates select="//TEST[@TYPE='error']"> + <xsl:sort select="@SECTIONS"/> + </xsl:apply-templates> + + <a name="contrib"/> + <h3>4. Contributors (Non-normative)</h3> + + <p> A team of volunteer members have participated in the + development of this work. Contributions have come from: + </p> + <ul> + <li>Murry Altheim, Sun Microsystems</li> + <li>Mary Brady, NIST</li> + <li>Tim Boland, NIST</li> + <li>David Brownell, Sun Microsystems</li> + <li>James Clark</li> + <li>Karin Donker, IBM</li> + <li>Irina Golfman, Inera Incorporated</li> + <li>Tony Graham, Mulberry Technologies</li> + <li>G. Ken Holman, Crane Softwrights Ltd</li> + <li>Alex Milowski, Veo Systems, Inc</li> + <li>Makota Murata, Fuji Xerox</li> + <li>Miles O'Reilly, Microstar Software, Ltd</li> + <li>Matt Timmermans, Microstar Software, Ltd</li> + <li>Richard Rivello, NIST</li> + <li>Lynne Rosenthal, NIST</li> + <li>Brian Schellar, Chrystal Software</li> + <li>Bill Smith, Sun Microsystems</li> + <li>Trevor Veary, Software AG</li> + </ul> + + <p>End</p> + </body></html> + </xsl:template> + + <xsl:template match="TEST"> + <table width="100%"> + <tr valign="top"> + <td width='40%'><table bgcolor='#eeeeff' + border='1' width='100%' height="100%"> + <tr> + <td width='50%'><b>Sections [Rules]:</b></td> + <td bgcolor='#ffffcc'> + <xsl:value-of select="@SECTIONS"/></td> + </tr> + <tr valign="top"> + <td width='50%'><b>Test ID:</b></td> + <td bgcolor='#ffffcc'> + <xsl:value-of select="@ID"/></td> + </tr> + <xsl:if test="not ( @ENTITIES = 'none') + and ( @TYPE = 'not-wf' )"> + <tr valign="top"> + <td width='50%'><b>Entities:</b></td> + <td bgcolor='#ffffcc'><font color='blue'> + <xsl:value-of select="@ENTITIES"/> + </font></td> + </tr> + </xsl:if> + <xsl:if test="../@PROFILE"> + <tr valign="top"> + <td width='50%'><b>Collection:</b></td> + <td bgcolor='#ffffcc'> + <xsl:value-of select="../@PROFILE"/> + </td> + </tr> + </xsl:if> + </table></td> + <td bgcolor='#ccffff'> + <p> + <xsl:apply-templates/></p> + <xsl:if test="@OUTPUT | @OUTPUT3"> + <p>There is an output test associated with this + input file.</p> + </xsl:if> + </td> + </tr> + </table> + </xsl:template> + + <!-- XT takes 'B|EM' and xsl:copy, IE5b2 doesn't --> + <xsl:template match="EM"> + <em><xsl:apply-templates/></em> + </xsl:template> + <xsl:template match="B"> + <b><xsl:apply-templates/></b> + </xsl:template> +</xsl:stylesheet> |