| <!DOCTYPE testSuite [ | |
| <!ENTITY dii "<ดี/>"> | |
| ]> | |
| <testSuite> | |
| <author>James Clark</author> | |
| <email>jjc@jclark.com</email> | |
| <documentation>For October 26 version of the spec.</documentation> | |
| <testSuite> | |
| <section>3</section> | |
| <testSuite> | |
| <documentation>Various possible syntax errors.</documentation> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <thisIsJunk/> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <define name="bar"> | |
| <text/> | |
| </define> | |
| <text/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <name>foo</name> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <group> | |
| <name>bar</name> | |
| </group> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <anyName> | |
| <except> | |
| <name>foo</name> | |
| </except> | |
| <except> | |
| <name>bar</name> | |
| </except> | |
| </anyName> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <nsName> | |
| <except> | |
| <name>foo</name> | |
| </except> | |
| <except> | |
| <name>bar</name> | |
| </except> | |
| </nsName> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <data type="token"> | |
| <except> | |
| <value>foo</value> | |
| </except> | |
| <except> | |
| <value>bar</value> | |
| </except> | |
| </data> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <empty name="bar"/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo" extra="bar"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <empty> | |
| <empty/> | |
| </empty> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <text> | |
| <empty/> | |
| </text> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <choice> | |
| <text/> | |
| <notAllowed> | |
| <empty/> | |
| </notAllowed> | |
| </choice> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="foo"> | |
| <empty/> | |
| </ref> | |
| </start> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <grammar> | |
| <start> | |
| <parentRef name="foo"> | |
| <empty/> | |
| </parentRef> | |
| </start> | |
| </grammar> | |
| </start> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <documentation>Tests for obsolete syntax</documentation> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo" ns="http://www.example.com"> | |
| <attribute name="bar" global="true"> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <not> | |
| <name>foo</name> | |
| </not> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <difference> | |
| <anyName/> | |
| <name>foo</name> | |
| </difference> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <data type="token" key="foo"/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <data type="token" keyRef="foo"/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <keyRef name="foo"> | |
| <data type="token"/> | |
| </keyRef> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <key name="foo"> | |
| <data type="token"/> | |
| </key> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <documentation>Tests for missing attributes and child elements</documentation> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <name>foo</name> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <optional/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <zeroOrMore/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <list/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <mixed/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice/> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <anyName> | |
| <except/> | |
| </anyName> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <nsName ns=""> | |
| <except/> | |
| </nsName> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="string"> | |
| <except/> | |
| </data> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="string"> | |
| <param/> | |
| </data> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <grammar> | |
| <start/> | |
| </grammar> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define name="baz"/> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <externalRef/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include/> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref/> | |
| </start> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <grammar> | |
| <start> | |
| <parentRef/> | |
| </start> | |
| </grammar> | |
| </start> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <documentation>Checking of ns attribute</documentation> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" ns=""> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>No checking of ns attribute is performed</documentation> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" ns="DAV:"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo xmlns="DAV:"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>No checking of ns attribute is performed</documentation> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" ns="xyzzy"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>No checking of ns attribute is performed</documentation> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" ns="bad_scheme://"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <documentation>Checking of datatypeLibrary attribute</documentation> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="foo_bar:xyzzy"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="foobar:xyzzy"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http:ok"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="foo:"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.example.com/%"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.example.com/%xx"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.example.com/%Aa"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must not be relative</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="xyzzy"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must not be relative</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="xyzzy#foo:bar"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must not be relative</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="xyzzy?foo:bar"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must not be relative</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="xyzzy/foo:bar"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="foo:bar"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary=""> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data datatypeLibrary="" type="string"/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>x</foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must not contain fragment identifier</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" | |
| datatypeLibrary="http://www.example.com#xyzzy"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <documentation>Value of datatypeLibrary attribute must not contain fragment identifier</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" | |
| datatypeLibrary="http://www.example.com#"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <documentation>Tests for QName and NCNames in schemas</documentation> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <element name="ดี"> | |
| <empty/> | |
| </element> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>&dii;</foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="ี" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <name>ี</name> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="ี"/> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="ี"/> | |
| </start> | |
| <define name="ี"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="ดี"/> | |
| </start> | |
| <define name="ดี"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name=""/> | |
| </start> | |
| <define name=""> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="x y"/> | |
| </start> | |
| <define name="x y"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0" | |
| xmlns:x="http://www.example.com/x"> | |
| <start> | |
| <ref name="x:y"/> | |
| </start> | |
| <define name="x:y"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" | |
| xmlns:x="http://www.example.com/x" | |
| name="x:ี"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" | |
| xmlns:x="http://www.example.com/x" | |
| name="x:y:z"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" | |
| xmlns:x="http://www.example.com/x" | |
| name="x:"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <documentation>Tests for elements that allow only a single pattern child.</documentation> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <empty/> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <attribute name="bar"> | |
| <text/> | |
| <empty/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <attribute> | |
| <name>bar</name> | |
| <text/> | |
| <empty/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <documentation>Tests for foreign element and attribute handling.</documentation> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <r:element name="foo" xmlns:r="http://relaxng.org/ns/structure/1.0" r:a="val"> | |
| <r:empty/> | |
| </r:element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <name>foo<eg:comment xmlns:eg="http://www.example.com"/></name> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <value>foo<eg:comment xmlns:eg="http://www.example.com"/></value> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <data type="string"><eg:comment xmlns:eg="http://www.example.com"/></data> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>X</foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <empty> | |
| <ext xmlns="http://www.example.com"> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"/> | |
| </ext> | |
| </empty> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:eg="http://www.example.com"> | |
| <eg:comment/> | |
| <eg:comment/> | |
| <start> | |
| <eg:comment/> | |
| <element> | |
| <eg:comment/> | |
| <eg:comment/> | |
| <name>foo</name> | |
| <eg:comment/> | |
| <data type="string"/> | |
| <eg:comment/> | |
| <empty> | |
| <eg:comment/> | |
| <eg:comment/> | |
| </empty> | |
| <eg:comment/> | |
| <eg:comment/> | |
| </element> | |
| <eg:comment/> | |
| </start> | |
| <eg:comment/> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo>X</foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:eg="http://www.example.com" | |
| eg:comment=""> | |
| <start eg:comment=""> | |
| <element eg:comment=""> | |
| <name eg:comment="">foo</name> | |
| <data eg:comment="" type="string"/> | |
| <empty eg:comment=""/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo>X</foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <rng:grammar xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns="http://www.example.com"> | |
| <comment/> | |
| <comment/> | |
| <rng:start> | |
| <comment/> | |
| <rng:element> | |
| <comment/> | |
| <comment/> | |
| <rng:name>foo</rng:name> | |
| <comment/> | |
| <rng:data type="string"/> | |
| <comment/> | |
| </rng:element> | |
| <comment/> | |
| </rng:start> | |
| <comment/> | |
| </rng:grammar> | |
| </correct> | |
| <valid> | |
| <foo>X</foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>3</section> | |
| <correct> | |
| <rng:grammar xmlns:rng="http://relaxng.org/ns/structure/1.0"> | |
| <comment/> | |
| <comment/> | |
| <rng:start> | |
| <comment/> | |
| <rng:element> | |
| <comment/> | |
| <comment/> | |
| <rng:name>foo</rng:name> | |
| <comment/> | |
| <rng:data type="string"/> | |
| <comment/> | |
| </rng:element> | |
| <comment/> | |
| </rng:start> | |
| <comment/> | |
| </rng:grammar> | |
| </correct> | |
| <valid> | |
| <foo>X</foo> | |
| </valid> | |
| </testCase> | |
| </testSuite> | |
| </testSuite> | |
| <testSuite> | |
| <section>4</section> | |
| <testSuite> | |
| <section>4.2</section> | |
| <testCase> | |
| <section>4.2</section> | |
| <correct> | |
| <element name="

 	foo

 	" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="

 	bar

 	"/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar=""/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>4.2</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value type="

 	string

 	">bar</value> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>bar</foo> | |
| </valid> | |
| <invalid> | |
| <foo>bar </foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.2</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="

 	string

 	"/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>X</foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>4.2</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <name>

 	foo

 	</name> | |
| <attribute><name>

 	bar

 	</name></attribute> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar=""/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>4.2</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start combine="

 	choice

 	"> | |
| <ref name="

 	x

 	"/> | |
| </start> | |
| <define name="x"> | |
| <ref name="y"/> | |
| </define> | |
| <define name="

 	y

 	"> | |
| <grammar> | |
| <start combine="

 	interleave

 	"> | |
| <parentRef name="

 	z

 	"/> | |
| </start> | |
| </grammar> | |
| </define> | |
| <define name="z"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| </testSuite> | |
| <testCase> | |
| <section>4.4</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value datatypeLibrary="http://www.example.com/this-does-not-exist">bar</value> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>bar</foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| bar | |
| </foo> | |
| </valid> | |
| <valid> | |
| <foo> bar </foo> | |
| </valid> | |
| <invalid> | |
| <foo>baz</foo> | |
| </invalid> | |
| <invalid> | |
| <foo>ba r</foo> | |
| </invalid> | |
| </testCase> | |
| <testSuite> | |
| <section>4.5</section> | |
| <testCase> | |
| <section>4.5</section> | |
| <dir name="sub"> | |
| <resource name="x"> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <empty/> | |
| </element> | |
| </resource> | |
| </dir> | |
| <correct> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" | |
| xml:base="sub/y" href="x"/> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <invalid> | |
| <bar/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.5</section> | |
| <resource name="x"> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="bar"> | |
| <empty/> | |
| </element> | |
| </resource> | |
| <dir name="sub1"> | |
| <resource name="x"> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="bar"> | |
| <empty/> | |
| </element> | |
| </resource> | |
| <dir name="sub3"> | |
| <resource name="x"> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <empty/> | |
| </element> | |
| </resource> | |
| </dir> | |
| </dir> | |
| <correct> | |
| <group xmlns="http://relaxng.org/ns/structure/1.0" xml:base="sub1/"> | |
| <group> | |
| <group xml:base="sub2"> | |
| <group> | |
| <group xml:base="sub3/y"> | |
| <externalRef href="x"/> | |
| </group> | |
| </group> | |
| </group> | |
| </group> | |
| </group> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <invalid> | |
| <bar/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.5</section> | |
| <resource name="x"> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <empty/> | |
| </element> | |
| </resource> | |
| <incorrect> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x#foo"/> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.6</section> | |
| <testCase> | |
| <section>4.6</section> | |
| <resource name="x"> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <empty/> | |
| </element> | |
| </resource> | |
| <correct> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <invalid> | |
| <bar/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.6</section> | |
| <resource name="x"> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <empty/> | |
| </element> | |
| </resource> | |
| <correct> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x" ns="http://www.example.com"/> | |
| </correct> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.6</section> | |
| <resource name="x"> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/> | |
| </resource> | |
| <incorrect> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.6</section> | |
| <resource name="x"> | |
| <start xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </resource> | |
| <incorrect> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.6</section> | |
| <resource name="x"> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="y"/> | |
| </resource> | |
| <resource name="y"> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/> | |
| </resource> | |
| <incorrect> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.6</section> | |
| <documentation>Same value of href before resolution, but not a loop.</documentation> | |
| <dir name="sub"> | |
| <resource name="x"> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="sub/x"/> | |
| </resource> | |
| <dir name="sub"> | |
| <resource name="x"> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <empty/> | |
| </element> | |
| </resource> | |
| </dir> | |
| </dir> | |
| <correct> | |
| <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="sub/x"/> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <invalid> | |
| <bar/> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.7</section> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </resource> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"/> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <invalid> | |
| <bar/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </resource> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x" ns="http://www.example.com"/> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="y"/> | |
| </grammar> | |
| </resource> | |
| <resource name="y"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </resource> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"/> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <invalid> | |
| <bar/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <empty/> | |
| </element> | |
| </resource> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"/> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"/> | |
| </grammar> | |
| </resource> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"/> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="y"/> | |
| </grammar> | |
| </resource> | |
| <resource name="y"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"/> | |
| </grammar> | |
| </resource> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"/> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <dir name="sub"> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="sub/x"/> | |
| </grammar> | |
| </resource> | |
| <dir name="sub"> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </resource> | |
| </dir> | |
| </dir> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="sub/x"/> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <invalid> | |
| <bar/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </resource> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| </include> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </resource> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"/> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| </grammar> | |
| </correct> | |
| <valid><foo/></valid> | |
| <invalid><bar/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| </grammar> | |
| </resource> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </include> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| </grammar> | |
| </resource> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="x"/> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid><foo/></valid> | |
| <invalid><bar/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="x"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <define name="foo" combine="choice"> | |
| <element name="foo3"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </resource> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| <include href="x"> | |
| <define name="foo" combine="choice"> | |
| <element name="foo1"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </include> | |
| <define name="foo"> | |
| <element name="foo2"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid><foo1/></valid> | |
| <valid><foo2/></valid> | |
| <invalid><foo3/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.7</section> | |
| <resource name="level1.rng"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <include href="level2.rng"> | |
| <define name="foo"> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </include> | |
| </grammar> | |
| </resource> | |
| <resource name="level2.rng"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <define name="bar"> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </resource> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| <include href="level1.rng"> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </include> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.8</section> | |
| <testCase> | |
| <section>4.8</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.example.com" name="foo"> | |
| <attribute name="bar" ns="http://www.example.com"/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <eg:foo eg:bar="x" xmlns:eg="http://www.example.com"/> | |
| </valid> | |
| <invalid> | |
| <eg:foo xmlns:eg="http://www.example.com" bar="x"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.8</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.example.com" name="foo"> | |
| <attribute name="bar"/> | |
| </element> | |
| </correct> | |
| <invalid> | |
| <eg:foo xmlns:eg="http://www.example.com" eg:bar="x"/> | |
| </invalid> | |
| <valid> | |
| <eg:foo xmlns:eg="http://www.example.com" bar="x"/> | |
| </valid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.9</section> | |
| <testCase> | |
| <section>4.9</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.example.com" name="foo"> | |
| <attribute> | |
| <name>bar</name> | |
| </attribute> | |
| </element> | |
| </correct> | |
| <valid> | |
| <eg:foo xmlns:eg="http://www.example.com" eg:bar="x"/> | |
| </valid> | |
| <invalid> | |
| <eg:foo xmlns:eg="http://www.example.com" bar="x"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.6</section> | |
| <section>4.9</section> | |
| <resource name="x"> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <empty/> | |
| </element> | |
| </resource> | |
| <correct> | |
| <group ns="http://www.example.com" xmlns="http://relaxng.org/ns/structure/1.0" > | |
| <externalRef href="x"/> | |
| </group> | |
| </correct> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <correct> | |
| <group xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <element ns="http://www.example.com"> | |
| <name>foo</name> | |
| <empty/> | |
| </element> | |
| </group> | |
| </correct> | |
| <valid><foo xmlns="http://www.example.com"/></valid> | |
| <invalid><foo/></invalid> | |
| </testCase> | |
| <testCase> | |
| <correct> | |
| <element ns="http://www.example.com" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <name>foo</name> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid><foo xmlns="http://www.example.com"/></valid> | |
| <invalid><foo/></invalid> | |
| </testCase> | |
| <testCase> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute ns="http://www.example.com"> | |
| <name>bar</name> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </correct> | |
| <valid><foo xmlns:x="http://www.example.com" x:bar="whatever"/></valid> | |
| <invalid><foo bar="whatever"/></invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.10</section> | |
| <testCase> | |
| <section>4.10</section> | |
| <incorrect> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo:bar"> | |
| <empty/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.10</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="eg:foo" xmlns:eg="http://www.example.com"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| <invalid> | |
| <foo xmlns="http://www.example.com/"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.10</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo" xmlns:eg="http://www.example.com"> | |
| <attribute name="eg:bar"/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo xmlns:ex="http://www.example.com" ex:bar="x"/> | |
| </valid> | |
| <invalid> | |
| <foo xmlns:ex="http://www.example.com/" ex:bar="x"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.10</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <attribute name="xml:lang"/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo xml:lang="en"/> | |
| </valid> | |
| <invalid> | |
| <foo lang="en"/> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.11</section> | |
| <testCase> | |
| <section>4.11</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <div ns="http://www.example.com"> | |
| <div> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| </div> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </div> | |
| <div/> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <ref name="bars"/> | |
| </element> | |
| </start> | |
| <define name="bars"> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo><bar/><bar/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo></foo> | |
| </invalid> | |
| <invalid> | |
| <foo>X</foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/>X<bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </oneOrMore> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><bar/><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo></foo> | |
| </invalid> | |
| <invalid> | |
| <foo>X</foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/>X<bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <section>4.15</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <zeroOrMore> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </zeroOrMore> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><bar/><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <valid> | |
| <foo></foo> | |
| </valid> | |
| <invalid> | |
| <foo>X</foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/>X<bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <section>4.14</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <optional> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </optional> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><bar/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <valid> | |
| <foo></foo> | |
| </valid> | |
| <invalid> | |
| <foo>X</foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/>X<bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <list> | |
| <value>x</value> | |
| <value>y</value> | |
| <value>z</value> | |
| </list> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>x y z</foo> | |
| </valid> | |
| <invalid> | |
| <foo>x</foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <section>4.13</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <mixed> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </mixed> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><bar/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo></foo> | |
| </invalid> | |
| <valid> | |
| <foo><bar/>X<bar/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo>X</foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <name>foo</name> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><bar/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo></foo> | |
| </invalid> | |
| <invalid> | |
| <foo>X</foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/>X<bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <anyName> | |
| <except> | |
| <name>foo</name> | |
| <name>bar</name> | |
| <name>baz</name> | |
| </except> | |
| </anyName> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid><xyzzy/></valid> | |
| <invalid><foo/></invalid> | |
| <invalid><bar/></invalid> | |
| <invalid><baz/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="token"> | |
| <except> | |
| <value>x</value> | |
| <value>y</value> | |
| <value>z</value> | |
| </except> | |
| </data> | |
| </element> | |
| </correct> | |
| <valid><foo/></valid> | |
| <valid><foo>xyz</foo></valid> | |
| <invalid><foo>x</foo></invalid> | |
| <invalid><foo>y</foo></invalid> | |
| <invalid><foo>y</foo></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar=""/> | |
| </valid> | |
| <valid> | |
| <foo bar="x"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute> | |
| <name>bar</name> | |
| </attribute> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar=""/> | |
| </valid> | |
| <valid> | |
| <foo bar="x"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><bar/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo></foo> | |
| </invalid> | |
| <invalid> | |
| <foo>X</foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/>X<bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| <element name="bar2"> | |
| <empty/> | |
| </element> | |
| <element name="bar3"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </element> | |
| </correct> | |
| <valid><foo><bar1/></foo></valid> | |
| <valid><foo><bar2/></foo></valid> | |
| <valid><foo><bar3/></foo></valid> | |
| <invalid><foo/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| <element name="bar2"> | |
| <empty/> | |
| </element> | |
| <element name="bar3"> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </element> | |
| </correct> | |
| <valid><foo><bar1/><bar2/><bar3/></foo></valid> | |
| <valid><foo><bar1/><bar3/><bar2/></foo></valid> | |
| <valid><foo><bar2/><bar1/><bar3/></foo></valid> | |
| <valid><foo><bar2/><bar3/><bar1/></foo></valid> | |
| <valid><foo><bar3/><bar1/><bar2/></foo></valid> | |
| <valid><foo><bar3/><bar2/><bar1/></foo></valid> | |
| <invalid><foo><bar2/><bar1/></foo></invalid> | |
| <invalid><foo><bar1/><bar3/><bar2/><bar1/></foo></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid><foo><bar/></foo></valid> | |
| <invalid><foo/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </element> | |
| </correct> | |
| <valid><foo><bar/></foo></valid> | |
| <invalid><foo/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.12</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </element> | |
| </correct> | |
| <valid><foo><bar/></foo></valid> | |
| <invalid><foo/></invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.13</section> | |
| <testCase> | |
| <section>4.13</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <mixed> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </mixed> | |
| </element> | |
| </correct> | |
| <valid><foo>x<bar/></foo></valid> | |
| <valid><foo><bar/></foo></valid> | |
| <valid><foo><bar/>x</foo></valid> | |
| <valid><foo>x<bar/>y</foo></valid> | |
| <invalid><foo/></invalid> | |
| <invalid><foo><bar/><bar/></foo></invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.14</section> | |
| <testCase> | |
| <section>4.14</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <optional> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </optional> | |
| </element> | |
| </correct> | |
| <valid><foo><bar/></foo></valid> | |
| <valid><foo/></valid> | |
| <invalid><foo>x<bar/></foo></invalid> | |
| <invalid><foo><bar/><bar/></foo></invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.15</section> | |
| <testCase> | |
| <section>4.15</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <zeroOrMore> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </zeroOrMore> | |
| </element> | |
| </correct> | |
| <valid><foo><bar/></foo></valid> | |
| <valid><foo/></valid> | |
| <invalid><foo>x<bar/></foo></invalid> | |
| <invalid><foo><baz/></foo></invalid> | |
| <valid><foo><bar/><bar/></foo></valid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.16</section> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element> | |
| <anyName> | |
| <except> | |
| <anyName/> | |
| </except> | |
| </anyName> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element> | |
| <anyName> | |
| <except> | |
| <choice> | |
| <anyName/> | |
| <name>foo</name> | |
| </choice> | |
| </except> | |
| </anyName> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element> | |
| <nsName ns=""> | |
| <except> | |
| <nsName ns=""/> | |
| </except> | |
| </nsName> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element> | |
| <nsName ns=""> | |
| <except> | |
| <choice> | |
| <nsName ns=""/> | |
| <name>foo</name> | |
| </choice> | |
| </except> | |
| </nsName> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element> | |
| <nsName ns=""> | |
| <except> | |
| <anyName/> | |
| </except> | |
| </nsName> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element> | |
| <nsName ns=""> | |
| <except> | |
| <choice> | |
| <anyName/> | |
| <name>foo</name> | |
| </choice> | |
| </except> | |
| </nsName> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <documentation>Tests that 4.16 is before 4.20.</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <zeroOrMore> | |
| <attribute> | |
| <anyName> | |
| <except> | |
| <anyName/> | |
| </except> | |
| </anyName> | |
| <text/> | |
| </attribute> | |
| <notAllowed/> | |
| </zeroOrMore> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <documentation>Tests that 4.16 is before removal of unreachable definitions.</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define name="bar"> | |
| <element> | |
| <anyName> | |
| <except> | |
| <anyName/> | |
| </except> | |
| </anyName> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="xmlns"> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <correct> | |
| <element name="xmlns" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid><xmlns/></valid> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name=" xmlns"> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <optional> | |
| <notAllowed/> | |
| <attribute name="xmlns"> | |
| <text/> | |
| </attribute> | |
| </optional> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define name="foo"> | |
| <attribute name="xmlns"> | |
| <text/> | |
| </attribute> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="xmlns" ns=""> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute> | |
| <choice> | |
| <name ns="">xmlns</name> | |
| <name>foo</name> | |
| </choice> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute> | |
| <name ns="">xmlns</name> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute> | |
| <name>xmlns</name> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute> | |
| <name> | |
| xmlns | |
| </name> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute> | |
| <choice> | |
| <name>foo</name> | |
| <name ns="">xmlns</name> | |
| </choice> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute> | |
| <anyName> | |
| <except> | |
| <name>xmlns</name> | |
| </except> | |
| </anyName> | |
| <text/> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute> | |
| <nsName ns=""> | |
| <except> | |
| <name>xmlns</name> | |
| </except> | |
| </nsName> | |
| <text/> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute ns="http://www.w3.org/2000/xmlns" name="bar"> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.w3.org/2000/xmlns"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid><foo xmlns="http://www.w3.org/2000/xmlns"/></valid> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="token"> | |
| <param name="minLength">2</param> | |
| </data> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="tok"/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value type="tok"/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <optional> | |
| <notAllowed/> | |
| <data type="token"> | |
| <param name="minLength">2</param> | |
| </data> | |
| </optional> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <optional> | |
| <notAllowed/> | |
| <data type="tok"/> | |
| </optional> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <optional> | |
| <notAllowed/> | |
| <value type="tok"/> | |
| </optional> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define name="foo"> | |
| <data type="token"> | |
| <param name="minLength">2</param> | |
| </data> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define name="foo"> | |
| <data type="tok"/> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.16</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define name="foo"> | |
| <value type="tok"/> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.17</section> | |
| <testCase> | |
| <section>4.17</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="x"/> | |
| </start> | |
| <define name="x"> | |
| <element name="foo1"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x" combine="choice"> | |
| <element name="foo2"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x"> | |
| <element name="foo3"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start name="x"> | |
| <element name="foo1"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start name="x" combine="choice"> | |
| <element name="foo2"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start name="x"> | |
| <element name="foo3"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="x"/> | |
| </start> | |
| <define name="x"> | |
| <element name="foo1"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x"> | |
| <element name="foo2"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start name="x"> | |
| <element name="foo1"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start name="x"> | |
| <element name="foo2"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="x"/> | |
| </start> | |
| <define name="x" combine="choice"> | |
| <element name="foo1"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x" combine="choice"> | |
| <element name="foo2"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x"> | |
| <element name="foo3"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo1/> | |
| </valid> | |
| <valid> | |
| <foo2/> | |
| </valid> | |
| <valid> | |
| <foo3/> | |
| </valid> | |
| <invalid> | |
| <foo4/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start combine="choice"> | |
| <element name="foo1"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start combine="choice"> | |
| <element name="foo2"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start> | |
| <element name="foo3"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo1/> | |
| </valid> | |
| <valid> | |
| <foo2/> | |
| </valid> | |
| <valid> | |
| <foo3/> | |
| </valid> | |
| <invalid> | |
| <foo4/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <ref name="x"/> | |
| </element> | |
| </start> | |
| <define name="x" combine="choice"> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x"> | |
| <element name="bar2"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x" combine="interleave"> | |
| <element name="bar3"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <grammar> | |
| <start name="x" combine="choice"> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start name="x"> | |
| <element name="bar2"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start name="x" combine="interleave"> | |
| <element name="bar3"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <ref name="x"/> | |
| </element> | |
| </start> | |
| <define name="x" combine="interleave"> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x" combine="interleave"> | |
| <element name="bar2"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x"> | |
| <element name="bar3"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo><bar1/><bar2/><bar3/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar1/><bar3/><bar2/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar2/><bar3/><bar1/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar2/><bar3/><bar1/><bar2/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <grammar> | |
| <start combine="interleave"> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start> | |
| <element name="bar2"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start combine="interleave"> | |
| <element name="bar3"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar1/><bar2/><bar3/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar1/><bar3/><bar2/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar2/><bar3/><bar1/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar2/><bar3/><bar1/><bar2/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <ref name="x"/> | |
| </element> | |
| </start> | |
| <define name="x"> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x" combine="interleave"> | |
| <element name="bar2"> | |
| <empty/> | |
| </element> | |
| </define> | |
| <define name="x"> | |
| <element name="bar3"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.17</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <grammar> | |
| <start name="x"> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start name="x" combine="interleave"> | |
| <element name="bar2"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <start name="x"> | |
| <element name="bar3"> | |
| <empty/> | |
| </element> | |
| </start> | |
| </grammar> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.18</section> | |
| <testCase> | |
| <section>4.18</section> | |
| <documentation>grammar must have a start</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <documentation>4.17 is before 4.18</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define name="bar"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <documentation>4.17 is before 4.19</documentation> | |
| <incorrect> | |
| <choice xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <group> | |
| <notAllowed/> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </group> | |
| </choice> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <documentation>every ref must have a def</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <documentation>4.17 is before 4.18</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define name="foo"> | |
| <ref name="bar"/> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <documentation>4.17 is before 4.19</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <group> | |
| <notAllowed/> | |
| <ref name="foo"/> | |
| </group> | |
| </choice> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <documentation>every parentRef must have a def</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <parentRef name="foo"/> | |
| </start> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <documentation>4.17 is before 4.18</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define name="bar"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <parentRef name="foo"/> | |
| </start> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <documentation>4.17 is before 4.19</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <group> | |
| <notAllowed/> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <parentRef name="foo"/> | |
| </start> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </group> | |
| </choice> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| <define name="foo"> | |
| <choice> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <parentRef name="foo"/> | |
| </start> | |
| </grammar> | |
| </choice> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| <define name="foo"> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| <define name="foo"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid><foo/></valid> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <grammar> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| <define name="foo"> | |
| <element name="innerFoo"> | |
| <parentRef name="foo"/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </start> | |
| <define name="foo"> | |
| <element name="outerFoo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid><innerFoo><outerFoo/></innerFoo></valid> | |
| <invalid><outerFoo/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.18</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| <define name="foo"> | |
| <element name="outerFoo"> | |
| <grammar> | |
| <start> | |
| <ref name="foo"/> | |
| </start> | |
| <define name="foo"> | |
| <element name="innerFoo"> | |
| <empty/> | |
| </element> | |
| </define> | |
| </grammar> | |
| </element> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid><outerFoo><innerFoo/></outerFoo></valid> | |
| <invalid><innerFoo/></invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>4.19</section> | |
| <testCase> | |
| <section>4.19</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <ref name="bar"/> | |
| </element> | |
| </start> | |
| <define name="bar"> | |
| <optional> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <ref name="bar"/> | |
| </optional> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>4.19</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <ref name="bar"/> | |
| </element> | |
| </start> | |
| <define name="bar"> | |
| <element name="bar"> | |
| <optional> | |
| <ref name="bar"/> | |
| </optional> | |
| </element> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar><bar/></bar></foo> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>4.19</section> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </start> | |
| <define name="bar"> | |
| <ref name="bar"/> | |
| </define> | |
| </grammar> | |
| </correct> | |
| <valid><foo/></valid> | |
| </testCase> | |
| <testCase> | |
| <section>4.19</section> | |
| <section>4.20</section> | |
| <documentation>Tests that recursion detection happens before | |
| normalization of notAllowed.</documentation> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <group> | |
| <notAllowed/> | |
| <ref name="bar"/> | |
| </group> | |
| </choice> | |
| </start> | |
| <define name="bar"> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <optional> | |
| <ref name="bar"/> | |
| </optional> | |
| </define> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| </testSuite> | |
| <testSuite> | |
| <section>6</section> | |
| <testSuite> | |
| <section>6.1</section> | |
| <testCase> | |
| <section>6.1</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <anyName/> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>6.1</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <anyName> | |
| <except> | |
| <name ns="">foo</name> | |
| </except> | |
| </anyName> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| <valid> | |
| <bar/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>6.1</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <anyName> | |
| <except> | |
| <nsName ns=""/> | |
| </except> | |
| </anyName> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>6.1</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <nsName ns=""/> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <invalid> | |
| <foo xmlns="http://www.example.com"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.1</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <nsName ns="http://www.example.com"/> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo xmlns="HTTP://www.example.com"/> | |
| </invalid> | |
| <invalid> | |
| <foo xmlns="http://www.example.com/"/> | |
| </invalid> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>6.1</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <nsName ns="http://www.example.com"> | |
| <except> | |
| <name ns="http://www.example.com">foo</name> | |
| </except> | |
| </nsName> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo xmlns="http://www.example.com"/> | |
| </invalid> | |
| <valid> | |
| <bar xmlns="http://www.example.com"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>6.1</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <nsName ns="http://www.example.com"> | |
| <except> | |
| <name ns="">foo</name> | |
| </except> | |
| </nsName> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <invalid> | |
| <bar/> | |
| </invalid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| <valid> | |
| <bar xmlns="http://www.example.com"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>6.1</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <name ns="http://www.example.com">foo</name> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo xmlns="http://www.example.com"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <bar xmlns="http://www.example.com"/> | |
| </invalid> | |
| <invalid> | |
| <foo xmlns="http://www.example.org"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.1</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <name ns="">foo</name> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <invalid> | |
| <foo xmlns="http://www.example.com"/> | |
| </invalid> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <invalid> | |
| <bar xmlns="http://www.example.com"/> | |
| </invalid> | |
| <invalid> | |
| <bar/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.1</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <name ns="">foo</name> | |
| <name ns="">bar</name> | |
| </choice> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <invalid> | |
| <baz/> | |
| </invalid> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <valid> | |
| <bar/> | |
| </valid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>6.2</section> | |
| <testSuite> | |
| <section>6.2.1</section> | |
| <testCase> | |
| <section>6.2.1</section> | |
| <correct> | |
| <choice xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <valid> | |
| <bar/> | |
| </valid> | |
| <invalid> | |
| <baz/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.1</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <group> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| <element name="bar2"> | |
| <empty/> | |
| </element> | |
| </group> | |
| <group> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| <element name="bar3"> | |
| <empty/> | |
| </element> | |
| </group> | |
| </choice> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar1/><bar2/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar1/><bar3/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar1/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo><bar2/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar3/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar1/><bar2/><bar3/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.1</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <group> | |
| <attribute name="bar1"> | |
| <text/> | |
| </attribute> | |
| <attribute name="bar2"> | |
| <text/> | |
| </attribute> | |
| </group> | |
| <group> | |
| <attribute name="bar1"> | |
| <text/> | |
| </attribute> | |
| <attribute name="bar3"> | |
| <text/> | |
| </attribute> | |
| </group> | |
| </choice> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar1="x" bar2="x"/> | |
| </valid> | |
| <valid> | |
| <foo bar1="x" bar3="x"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo bar1="x"/> | |
| </invalid> | |
| <invalid> | |
| <foo bar2="x"/> | |
| </invalid> | |
| <invalid> | |
| <foo bar3="x"/> | |
| </invalid> | |
| <invalid> | |
| <foo bar1="x" bar2="x" bar3="x"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.1</section> | |
| <correct> | |
| <choice xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <element name="foo"> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </element> | |
| <element name="foo"> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| </element> | |
| </choice> | |
| </correct> | |
| <valid> | |
| <foo><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo><baz/></foo> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><foo/></foo> | |
| </invalid> | |
| <invalid> | |
| <bar/> | |
| </invalid> | |
| <invalid> | |
| <fobaz/> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>6.2.2</section> | |
| <testCase> | |
| <section>6.2.2</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><baz/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><baz/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><baz/><bar/><baz/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><baz/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.2</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <attribute name="bar"> | |
| <text/> | |
| </attribute> | |
| <attribute name="baz"> | |
| <text/> | |
| </attribute> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="x" baz="x"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.2</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <attribute name="bar"> | |
| <text/> | |
| </attribute> | |
| <attribute name="baz"> | |
| <text/> | |
| </attribute> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="x" baz="x"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo bar="x"/> | |
| </invalid> | |
| <invalid> | |
| <foo baz="x"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.2</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <attribute name="baz"> | |
| <text/> | |
| </attribute> | |
| <attribute name="bar"> | |
| <text/> | |
| </attribute> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="x" baz="x"/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo bar="x"/> | |
| </invalid> | |
| <invalid> | |
| <foo baz="x"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.2</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <attribute name="bar"> | |
| <text/> | |
| </attribute> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="x"><baz/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><baz/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo bar="x"/> | |
| </invalid> | |
| <invalid> | |
| <foo baz="x"><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.2</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| <attribute name="bar"> | |
| <text/> | |
| </attribute> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="x"><baz/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><baz/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo bar="x"/> | |
| </invalid> | |
| <invalid> | |
| <foo baz="x"><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>6.2.3</section> | |
| <testCase> | |
| <section>6.2.3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <empty/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <valid> | |
| <foo> </foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| </foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| <?target data?> | |
| <?target data?> | |
| <?target data?> | |
| <?target data?> | |
| </foo> | |
| </valid> | |
| <invalid> | |
| <foo>x</foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo bar="x"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"> | |
| <empty/> | |
| </attribute> | |
| </element> | |
| </correct> | |
| <valid><foo bar=""/></valid> | |
| <valid><foo bar=" "/></valid> | |
| <invalid><foo bar="x"/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <list> | |
| <empty/> | |
| </list> | |
| </element> | |
| </correct> | |
| <valid><foo/></valid> | |
| <valid><foo> </foo></valid> | |
| <invalid><foo>x</foo></invalid> | |
| <invalid><foo><bar/></foo></invalid> | |
| <invalid><foo bar=""/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"> | |
| <list> | |
| <empty/> | |
| </list> | |
| </attribute> | |
| </element> | |
| </correct> | |
| <valid><foo bar=""/></valid> | |
| <valid><foo bar=" "/></valid> | |
| <invalid><foo bar="x"/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <choice> | |
| <empty/> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><baz/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><baz/><baz/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <empty/> | |
| <attribute name="bar"> | |
| <text/> | |
| </attribute> | |
| </choice> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="x"/> | |
| </valid> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <invalid> | |
| <foo baz="x"/> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>6.2.4</section> | |
| <testCase> | |
| <section>6.2.4</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <text/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| <valid> | |
| <foo> </foo> | |
| </valid> | |
| <valid> | |
| <foo>x</foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| x | |
| <?target data?> | |
| y | |
| </foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.4</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <text/> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| <bar/> | |
| </foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| x | |
| <bar/> | |
| </foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| x | |
| <?target data?> | |
| y | |
| <bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/>x</foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.4</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <group> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <text/> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| <bar/> | |
| </foo> | |
| </valid> | |
| <invalid> | |
| <foo> | |
| x | |
| <bar/> | |
| </foo> | |
| </invalid> | |
| <valid> | |
| <foo> | |
| <bar/> | |
| x | |
| <?target data?> | |
| y | |
| </foo> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <valid> | |
| <foo><bar/>x</foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.4</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <text/> | |
| </interleave> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| <bar/> | |
| </foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| x | |
| <bar/> | |
| </foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| <bar/> | |
| x | |
| <?target data?> | |
| y | |
| </foo> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <valid> | |
| <foo><bar/>x</foo> | |
| </valid> | |
| <valid> | |
| <foo>x<bar/>x</foo> | |
| </valid> | |
| <invalid> | |
| <foo>x<bar/>x<bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.4</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"> | |
| <text/> | |
| </attribute> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar=""/> | |
| </valid> | |
| <valid> | |
| <foo bar="x"/> | |
| </valid> | |
| <valid> | |
| <foo bar=" "/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/>x<bar/></foo> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>6.2.5</section> | |
| <testCase> | |
| <section>6.2.5</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </oneOrMore> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar/><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar/><bar/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.5</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <group> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </group> | |
| </oneOrMore> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar/><bar/><bar/><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/><bar/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.5</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute> | |
| <nsName ns=""/> | |
| <text/> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo x=""/> | |
| </valid> | |
| <valid> | |
| <foo x="" y=""/> | |
| </valid> | |
| <valid> | |
| <foo x="" y="" z=""/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo xmlns:ns="http://www.example.com" ns:x=""/> | |
| </invalid> | |
| <invalid> | |
| <foo x="" xmlns:ns="http://www.example.com" ns:x=""/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.5</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <choice> | |
| <attribute name="bar"> | |
| <text/> | |
| </attribute> | |
| <element name="bar"> | |
| <text/> | |
| </element> | |
| </choice> | |
| </oneOrMore> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar=""><bar/><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar/></foo> | |
| </valid> | |
| <valid> | |
| <foo bar=""/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>6.2.6</section> | |
| <testCase> | |
| <section>6.2.6</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><baz/></foo> | |
| </valid> | |
| <valid> | |
| <foo><baz/><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><baz/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.6</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <group> | |
| <element name="bar1"> | |
| <empty/> | |
| </element> | |
| <element name="bar2"> | |
| <empty/> | |
| </element> | |
| </group> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><baz/><bar1/><bar2/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar1/><baz/><bar2/></foo> | |
| </valid> | |
| <valid> | |
| <foo><bar1/><bar2/><baz/></foo> | |
| </valid> | |
| <invalid> | |
| <foo><baz/><bar2/><bar1/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar2/><bar1/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><baz/><bar2/><bar1/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><baz/><bar1/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><baz/><bar2/></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.6</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <attribute name="bar"> | |
| <text/> | |
| </attribute> | |
| <attribute name="baz"> | |
| <text/> | |
| </attribute> | |
| </interleave> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="" baz=""/> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo bar=""/> | |
| </invalid> | |
| <invalid> | |
| <foo baz=""/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.6</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <attribute name="baz"> | |
| <text/> | |
| </attribute> | |
| </interleave> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo baz=""><bar/></foo> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo bar=""/> | |
| </invalid> | |
| <invalid> | |
| <foo bar=""><baz/><baz/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><baz/><baz/></foo> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>6.2.7</section> | |
| <testCase> | |
| <section>6.2.7</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute> | |
| <name ns="">bar</name> | |
| <value type="string" datatypeLibrary="">baz</value> | |
| </attribute> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="baz"/> | |
| </valid> | |
| <invalid> | |
| <foo bar=" baz"/> | |
| </invalid> | |
| <invalid> | |
| <foo bar="b"/> | |
| </invalid> | |
| <invalid> | |
| <foo bar=""/> | |
| </invalid> | |
| <invalid> | |
| <foo bar=" "/> | |
| </invalid> | |
| <invalid> | |
| <foo><bar>baz</bar></foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.7</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute> | |
| <name ns="">bar</name> | |
| <choice> | |
| <value type="string" datatypeLibrary="">baz</value> | |
| <empty/> | |
| </choice> | |
| </attribute> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="baz"/> | |
| </valid> | |
| <valid> | |
| <foo bar=""/> | |
| </valid> | |
| <invalid> | |
| <foo bar=" baz"/> | |
| </invalid> | |
| <invalid> | |
| <foo bar="b"/> | |
| </invalid> | |
| <invalid> | |
| <foo><bar>baz</bar></foo> | |
| </invalid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.7</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute> | |
| <name ns="">bar</name> | |
| <value type="string"/> | |
| </attribute> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar=""/> | |
| </valid> | |
| <invalid> | |
| <foo bar=" "/> | |
| </invalid> | |
| <invalid> | |
| <foo bar="x"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.7</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <name ns="">foo</name> | |
| <group> | |
| <element> | |
| <name ns="">bar</name> | |
| <empty/> | |
| </element> | |
| <element> | |
| <name ns="">baz</name> | |
| <empty/> | |
| </element> | |
| </group> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><baz/></foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| <bar/> | |
| <baz/> | |
| </foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| <bar/> | |
| 
 | |
| <baz/> | |
| </foo> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <bar><bar/><baz/></bar> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.7</section> | |
| <section>6.2.8</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value type="string"/> | |
| </element> | |
| </correct> | |
| <valid><foo/></valid> | |
| <invalid><foo> </foo></invalid> | |
| <invalid><foo>x</foo></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.7</section> | |
| <section>6.2.8</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <value type="string"/> | |
| <empty/> | |
| </choice> | |
| </element> | |
| </correct> | |
| <valid><foo/></valid> | |
| <valid><foo> </foo></valid> | |
| <invalid><foo>x</foo></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.7</section> | |
| <section>6.2.8</section> | |
| <section>6.2.10</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <list> | |
| <data type="token"/> | |
| </list> | |
| </element> | |
| </correct> | |
| <invalid><foo/></invalid> | |
| <invalid><foo> </foo></invalid> | |
| <valid><foo>x</foo></valid> | |
| <valid><foo> x </foo></valid> | |
| <invalid><foo>x y</foo></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.7</section> | |
| <section>6.2.8</section> | |
| <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="string" | |
| datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> | |
| <param name="minLength">2</param> | |
| </data> | |
| </element> | |
| </correct> | |
| <valid><foo>xx</foo></valid> | |
| <valid><foo>xxx</foo></valid> | |
| <valid><foo> </foo></valid> | |
| <valid><foo> </foo></valid> | |
| <invalid><foo>x</foo></invalid> | |
| <invalid><foo> </foo></invalid> | |
| <invalid><foo/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.7</section> | |
| <section>6.2.8</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <value>x</value> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </element> | |
| </correct> | |
| <valid><foo> x </foo></valid> | |
| <valid><foo>x</foo></valid> | |
| <invalid><foo>y</foo></invalid> | |
| <valid><foo><bar/></foo></valid> | |
| <valid> | |
| <foo> | |
| <bar/> | |
| </foo> | |
| </valid> | |
| <invalid><foo>x<bar/></foo></invalid> | |
| <invalid><foo/></invalid> | |
| <invalid><foo><bar/>x</foo></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.7</section> | |
| <section>6.2.8</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <value>x</value> | |
| <mixed> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </mixed> | |
| </choice> | |
| </element> | |
| </correct> | |
| <valid><foo> x </foo></valid> | |
| <valid><foo>x</foo></valid> | |
| <invalid><foo>y</foo></invalid> | |
| <valid><foo><bar/></foo></valid> | |
| <valid> | |
| <foo> | |
| <bar/> | |
| </foo> | |
| </valid> | |
| <valid><foo>x<bar/></foo></valid> | |
| <invalid><foo/></invalid> | |
| <valid><foo><bar/>x</foo></valid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>6.2.8</section> | |
| <testCase> | |
| <section>6.2.8</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="string"> | |
| <except> | |
| <choice> | |
| <value>x</value> | |
| <value>y</value> | |
| </choice> | |
| </except> | |
| </data> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>xyzzy</foo> | |
| </valid> | |
| <invalid> | |
| <foo>x</foo> | |
| </invalid> | |
| <invalid> | |
| <foo>y</foo> | |
| </invalid> | |
| <invalid> | |
| <foo> x</foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.8</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="string"/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.8</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.8</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="string"> | |
| <except> | |
| <value/> | |
| </except> | |
| </data> | |
| </element> | |
| </correct> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <valid> | |
| <foo>x</foo> | |
| </valid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>6.2.9</section> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="string" datatypeLibrary=""/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>xyzzy</foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| x | |
| <?target data?> | |
| y | |
| <?target data?> | |
| z | |
| </foo> | |
| </valid> | |
| <valid> | |
| <foo></foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| </foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo bar=""/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="token" datatypeLibrary=""/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>xyzzy</foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| x | |
| <?target data?> | |
| y | |
| <?target data?> | |
| z | |
| </foo> | |
| </valid> | |
| <valid> | |
| <foo></foo> | |
| </valid> | |
| <valid> | |
| <foo> | |
| </foo> | |
| </valid> | |
| <invalid> | |
| <foo><bar/></foo> | |
| </invalid> | |
| <invalid> | |
| <foo bar=""/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value type="string" datatypeLibrary="">x</value> | |
| </element> | |
| </correct> | |
| <valid><foo>x</foo></valid> | |
| <invalid><foo>xy</foo></invalid> | |
| <invalid><foo> x</foo></invalid> | |
| <invalid><foo/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value type="string" datatypeLibrary=""> x</value> | |
| </element> | |
| </correct> | |
| <valid><foo> x</foo></valid> | |
| <invalid><foo> xy</foo></invalid> | |
| <invalid><foo>x</foo></invalid> | |
| <invalid><foo/></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value type="token" datatypeLibrary="">x</value> | |
| </element> | |
| </correct> | |
| <valid><foo>x</foo></valid> | |
| <valid><foo> x</foo></valid> | |
| <valid><foo>x </foo></valid> | |
| <valid><foo>

	 x

	 </foo></valid> | |
| <invalid><foo/></invalid> | |
| <invalid><foo>xy</foo></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value type="token" datatypeLibrary="">x y</value> | |
| </element> | |
| </correct> | |
| <valid><foo>x y</foo></valid> | |
| <valid><foo> x y </foo></valid> | |
| <valid><foo>x

	 y</foo></valid> | |
| <invalid><foo>xy</foo></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value type="token" datatypeLibrary="">

	 x

	 </value> | |
| </element> | |
| </correct> | |
| <valid><foo>x</foo></valid> | |
| <valid><foo> x</foo></valid> | |
| <valid><foo>x </foo></valid> | |
| <valid><foo>
	x 
</foo></valid> | |
| <invalid><foo/></invalid> | |
| <invalid><foo>xy</foo></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value type="token" datatypeLibrary="">x

	 y</value> | |
| </element> | |
| </correct> | |
| <valid><foo>x y</foo></valid> | |
| <valid><foo>x y</foo></valid> | |
| <valid><foo> x y </foo></valid> | |
| <valid><foo>x
	y</foo></valid> | |
| <valid><foo>x 
y</foo></valid> | |
| <invalid><foo/></invalid> | |
| <invalid><foo>xy</foo></invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="decimal" datatypeLibrary=""/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <value type="decimal" datatypeLibrary=""/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="string" datatypeLibrary=""> | |
| <param name="length">2</param> | |
| </data> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.9</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <data type="token" datatypeLibrary=""> | |
| <param name="length">2</param> | |
| </data> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>6.2.10</section> | |
| <testCase> | |
| <section>6.2.10</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <list> | |
| <value type="string">x</value> | |
| </list> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>x</foo> | |
| </valid> | |
| <valid> | |
| <foo> x </foo> | |
| </valid> | |
| <invalid> | |
| <foo>x x</foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.10</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <list> | |
| <oneOrMore> | |
| <value type="string">x</value> | |
| </oneOrMore> | |
| </list> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>x</foo> | |
| </valid> | |
| <valid> | |
| <foo> x x x x </foo> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo>x y</foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.10</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <list> | |
| <group> | |
| <value type="string">x</value> | |
| <value type="string">y</value> | |
| </group> | |
| </list> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>x y</foo> | |
| </valid> | |
| <valid> | |
| <foo>x y</foo> | |
| </valid> | |
| <valid> | |
| <foo>
x
y	</foo> | |
| </valid> | |
| <invalid> | |
| <foo>x</foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.10</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <list> | |
| <group> | |
| <data type="token"/> | |
| <data type="token"/> | |
| </group> | |
| </list> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>x y</foo> | |
| </valid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo>x y z</foo> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>6.2.10</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <list> | |
| <value>x y</value> | |
| </list> | |
| </element> | |
| </correct> | |
| <invalid> | |
| <foo>x y</foo> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| </testSuite> | |
| </testSuite> | |
| <testSuite> | |
| <section>7</section> | |
| <testSuite> | |
| <section>7.1</section> | |
| <testCase> | |
| <section>7.1.1</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <attribute name="bar"> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| </attribute> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.1</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <attribute name="bar"> | |
| <choice> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| <text/> | |
| </choice> | |
| </attribute> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.1</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <attribute name="bar"> | |
| <attribute name="baz"/> | |
| </attribute> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.1</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <attribute name="bar"> | |
| <choice> | |
| <attribute name="baz"/> | |
| <text/> | |
| </choice> | |
| </attribute> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.2</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <oneOrMore> | |
| <group> | |
| <attribute name="bar"/> | |
| <attribute name="baz"/> | |
| </group> | |
| </oneOrMore> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.2</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <oneOrMore> | |
| <group> | |
| <attribute> | |
| <anyName/> | |
| </attribute> | |
| <attribute> | |
| <anyName/> | |
| </attribute> | |
| </group> | |
| </oneOrMore> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.2</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <oneOrMore> | |
| <choice> | |
| <group> | |
| <choice> | |
| <attribute name="bar"/> | |
| <attribute name="baz"/> | |
| </choice> | |
| <choice> | |
| <attribute name="bar"/> | |
| <attribute name="baz"/> | |
| </choice> | |
| </group> | |
| <attribute name="bar"/> | |
| </choice> | |
| </oneOrMore> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.2</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <oneOrMore> | |
| <interleave> | |
| <attribute name="bar"/> | |
| <attribute name="baz"/> | |
| </interleave> | |
| </oneOrMore> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.2</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <oneOrMore> | |
| <interleave> | |
| <attribute> | |
| <anyName/> | |
| </attribute> | |
| <attribute> | |
| <anyName/> | |
| </attribute> | |
| </interleave> | |
| </oneOrMore> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.2</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <oneOrMore> | |
| <choice> | |
| <interleave> | |
| <choice> | |
| <attribute name="bar"/> | |
| <attribute name="baz"/> | |
| </choice> | |
| <choice> | |
| <attribute name="bar"/> | |
| <attribute name="baz"/> | |
| </choice> | |
| </interleave> | |
| <attribute name="bar"/> | |
| </choice> | |
| </oneOrMore> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <list> | |
| <list> | |
| <data type="token"/> | |
| </list> | |
| </list> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <list> | |
| <choice> | |
| <list> | |
| <data type="token"/> | |
| </list> | |
| <data type="token"/> | |
| </choice> | |
| </list> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <list> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </list> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <list> | |
| <choice> | |
| <data type="token"/> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </list> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <list> | |
| <attribute name="bar"> | |
| <empty/> | |
| </attribute> | |
| </list> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <list> | |
| <choice> | |
| <attribute name="bar"> | |
| <empty/> | |
| </attribute> | |
| <data type="token"/> | |
| </choice> | |
| </list> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <list> | |
| <choice> | |
| <text/> | |
| <data type="token"/> | |
| </choice> | |
| </list> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <list> | |
| <interleave> | |
| <value>x</value> | |
| <value>y</value> | |
| </interleave> | |
| </list> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.3</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <list> | |
| <choice> | |
| <interleave> | |
| <value>x</value> | |
| <value>y</value> | |
| </interleave> | |
| <value>z</value> | |
| </choice> | |
| </list> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.4</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <data type="string"> | |
| <except> | |
| <attribute name="bar"/> | |
| </except> | |
| </data> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.4</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <data type="string"> | |
| <except> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </except> | |
| </data> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.4</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <data type="string"> | |
| <except> | |
| <text/> | |
| </except> | |
| </data> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.4</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <data type="string"> | |
| <except> | |
| <list> | |
| <data type="token"/> | |
| </list> | |
| </except> | |
| </data> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.4</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <data type="string"> | |
| <except> | |
| <group> | |
| <data type="token"/> | |
| <data type="token"/> | |
| </group> | |
| </except> | |
| </data> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.4</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <data type="string"> | |
| <except> | |
| <interleave> | |
| <data type="token"/> | |
| <data type="token"/> | |
| </interleave> | |
| </except> | |
| </data> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.4</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <data type="string"> | |
| <except> | |
| <oneOrMore> | |
| <data type="token"/> | |
| </oneOrMore> | |
| </except> | |
| </data> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.4</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <data type="string"> | |
| <except> | |
| <empty/> | |
| </except> | |
| </data> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <attribute name="foo"/> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <data type="string"/> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <data type="string"/> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <value>foo</value> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <text/> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <text/> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <list> | |
| <data type="token"/> | |
| </list> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <list> | |
| <data type="token"/> | |
| </list> | |
| </choice> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <group> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </group> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <group> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </group> | |
| </choice> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <interleave> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <interleave> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </choice> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <oneOrMore> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </oneOrMore> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <oneOrMore> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </oneOrMore> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <empty/> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <choice> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <empty/> | |
| </choice> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <section>7</section> | |
| <section>4.18</section> | |
| <documentation>Tests that constraints are post-normalization</documentation> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <grammar> | |
| <start> | |
| <text/> | |
| </start> | |
| </grammar> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo>text</foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.5</section> | |
| <section>7</section> | |
| <section>4.18</section> | |
| <incorrect> | |
| <text xmlns="http://relaxng.org/ns/structure/1.0"/> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.1</section> | |
| <section>7</section> | |
| <section>4.20</section> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <optional> | |
| <attribute name="bar"> | |
| <group> | |
| <notAllowed/> | |
| <attribute name="baz"/> | |
| </group> | |
| </attribute> | |
| </optional> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.1</section> | |
| <section>7</section> | |
| <section>4.20</section> | |
| <documentation>The nested attribute element is normalized out because | |
| of the not allowed.</documentation> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <attribute name="bar"> | |
| <choice> | |
| <text/> | |
| <group> | |
| <notAllowed/> | |
| <attribute name="baz"/> | |
| </group> | |
| </choice> | |
| </attribute> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="baz"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.2</section> | |
| <section>7</section> | |
| <section>4.12</section> | |
| <documentation>The group element is normalized out.</documentation> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <oneOrMore> | |
| <group> | |
| <attribute> | |
| <anyName/> | |
| </attribute> | |
| </group> | |
| </oneOrMore> | |
| </element> | |
| </start> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo xyzzy1="val1" xyzzy2="val2"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.2</section> | |
| <section>7</section> | |
| <section>4.21</section> | |
| <documentation>The group element is normalized out.</documentation> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <oneOrMore> | |
| <group> | |
| <attribute> | |
| <anyName/> | |
| </attribute> | |
| <empty/> | |
| </group> | |
| </oneOrMore> | |
| </element> | |
| </start> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo xyzzy1="val1" xyzzy2="val2"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.1.2</section> | |
| <section>7</section> | |
| <section>4.20</section> | |
| <documentation>The attribute elements are all normalized out.</documentation> | |
| <correct> | |
| <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo"> | |
| <optional> | |
| <attribute name="a1"> | |
| <attribute name="a2"> | |
| <attribute name="a3"> | |
| <notAllowed/> | |
| </attribute> | |
| </attribute> | |
| </attribute> | |
| </optional> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>7.2</section> | |
| <testCase> | |
| <section>7.2</section> | |
| <incorrect> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <group> | |
| <data type="token"/> | |
| <data type="token"/> | |
| </group> | |
| </element> | |
| </start> | |
| </grammar> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <documentation>Checks that normalization of notAllowed happens | |
| before string sequence checking.</documentation> | |
| <section>7.2</section> | |
| <section>4.20</section> | |
| <correct> | |
| <choice xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <element name="foo"> | |
| <empty/> | |
| </element> | |
| <group> | |
| <notAllowed/> | |
| <element name="bar"> | |
| <group> | |
| <data type="token"/> | |
| <data type="token"/> | |
| </group> | |
| </element> | |
| </group> | |
| </choice> | |
| </correct> | |
| <valid> | |
| <foo/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>4.20</section> | |
| <section>7.2</section> | |
| <documentation>notAllowed in an element is not normalized</documentation> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <group> | |
| <element name="bar"> | |
| <notAllowed/> | |
| </element> | |
| <data type="token"/> | |
| <data type="token"/> | |
| </group> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| </choice> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>7.3</section> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"/> | |
| <attribute name="bar"/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"/> | |
| <zeroOrMore> | |
| <attribute name="bar"/> | |
| </zeroOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute name="bar"/> | |
| </oneOrMore> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="xx"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <attribute name="bar"/> | |
| <attribute name="bar"/> | |
| </interleave> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <optional> | |
| <attribute name="bar"/> | |
| </optional> | |
| <optional> | |
| <attribute name="bar"/> | |
| </optional> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"/> | |
| <oneOrMore> | |
| <attribute> | |
| <anyName/> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"/> | |
| <oneOrMore> | |
| <attribute> | |
| <anyName> | |
| <except> | |
| <name>baz</name> | |
| </except> | |
| </anyName> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"/> | |
| <oneOrMore> | |
| <attribute> | |
| <anyName> | |
| <except> | |
| <name>bar</name> | |
| </except> | |
| </anyName> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="val" xyzzy="anotherval"/> | |
| </valid> | |
| <valid> | |
| <foo bar="val" baz=""/> | |
| </valid> | |
| <invalid> | |
| <foo bar="val"/> | |
| </invalid> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| <invalid> | |
| <foo xyzzy="val"/> | |
| </invalid> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"/> | |
| <oneOrMore> | |
| <attribute> | |
| <nsName ns=""/> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"/> | |
| <oneOrMore> | |
| <attribute> | |
| <nsName ns=""> | |
| <except> | |
| <name>baz</name> | |
| </except> | |
| </nsName> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute> | |
| <anyName/> | |
| </attribute> | |
| </oneOrMore> | |
| <oneOrMore> | |
| <attribute> | |
| <nsName ns=""/> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute> | |
| <anyName/> | |
| </attribute> | |
| </oneOrMore> | |
| <oneOrMore> | |
| <attribute> | |
| <anyName/> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute> | |
| <nsName ns=""/> | |
| </attribute> | |
| </oneOrMore> | |
| <oneOrMore> | |
| <attribute> | |
| <nsName ns=""> | |
| <except> | |
| <name>bar</name> | |
| </except> | |
| </nsName> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute> | |
| <anyName> | |
| <except> | |
| <nsName> | |
| <except> | |
| <name>foo</name> | |
| </except> | |
| </nsName> | |
| </except> | |
| </anyName> | |
| </attribute> | |
| </oneOrMore> | |
| <attribute name="foo"/> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute> | |
| <anyName> | |
| <except> | |
| <nsName> | |
| <except> | |
| <name>foo</name> | |
| </except> | |
| </nsName> | |
| </except> | |
| </anyName> | |
| </attribute> | |
| </oneOrMore> | |
| <oneOrMore> | |
| <attribute> | |
| <nsName/> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute> | |
| <anyName> | |
| <except> | |
| <nsName> | |
| <except> | |
| <name>bar</name> | |
| </except> | |
| </nsName> | |
| </except> | |
| </anyName> | |
| </attribute> | |
| </oneOrMore> | |
| <attribute name="baz"/> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="xx" baz="yy"/> | |
| </valid> | |
| <invalid> | |
| <foo x="xx" baz="yy"/> | |
| </invalid> | |
| <valid> | |
| <foo xmlns:eg="http://www.example.com/" eg:x="xx" baz="yy"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <oneOrMore> | |
| <attribute> | |
| <nsName ns="http://www.example.com/1"/> | |
| </attribute> | |
| </oneOrMore> | |
| <oneOrMore> | |
| <attribute> | |
| <nsName ns="http://www.example.com/2"/> | |
| </attribute> | |
| </oneOrMore> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo xmlns:eg1="http://www.example.com/1" | |
| xmlns:eg2="http://www.example.com/2" | |
| eg1:x="xx" eg2:y="yy"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <choice> | |
| <attribute name="bar"/> | |
| <attribute name="bar"/> | |
| </choice> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo bar="xx"/> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute name="bar"/> | |
| <choice> | |
| <attribute name="baz"/> | |
| <attribute name="bar"/> | |
| </choice> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute><anyName/><text/></attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute><nsName ns =""/><text/></attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.3</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <attribute><choice><nsName ns =""/><name>foo</name></choice><text/></attribute> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| <testSuite> | |
| <section>7.4</section> | |
| <testCase> | |
| <section>7.4</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <interleave> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </interleave> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <group> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </group> | |
| </interleave> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <group> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| <interleave> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </group> | |
| </interleave> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <optional> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </optional> | |
| </interleave> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element> | |
| <nsName ns=""/> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element> | |
| <anyName/> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <notAllowed/> | |
| </element> | |
| </interleave> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element> | |
| <anyName> | |
| <except> | |
| <name>bar</name> | |
| </except> | |
| </anyName> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><baz/></foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <correct> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <choice> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| <element name="bar"> | |
| <text/> | |
| </element> | |
| </choice> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| </interleave> | |
| </element> | |
| </correct> | |
| <valid> | |
| <foo><bar/><baz/></foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <interleave> | |
| <text/> | |
| <text/> | |
| </interleave> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| <testCase> | |
| <section>7.4</section> | |
| <incorrect> | |
| <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <mixed> | |
| <mixed> | |
| <element name="bar"> | |
| <empty/> | |
| </element> | |
| </mixed> | |
| <element name="baz"> | |
| <empty/> | |
| </element> | |
| </mixed> | |
| </element> | |
| </incorrect> | |
| </testCase> | |
| </testSuite> | |
| </testSuite> | |
| <testSuite> | |
| <documentation>Regressions</documentation> | |
| <testCase> | |
| <correct> | |
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |
| <start> | |
| <element name="foo"> | |
| <choice> | |
| <group> | |
| <attribute name="bar"><empty/></attribute> | |
| <element name="baz1"><empty/></element> | |
| </group> | |
| <group> | |
| <attribute name="bar"><text/></attribute> | |
| <element name="baz2"><empty/></element> | |
| </group> | |
| </choice> | |
| </element> | |
| </start> | |
| </grammar> | |
| </correct> | |
| <valid> | |
| <foo bar=" "><baz1/></foo> | |
| </valid> | |
| </testCase> | |
| <testCase> | |
| <correct> | |
| <notAllowed xmlns="http://relaxng.org/ns/structure/1.0"/> | |
| </correct> | |
| <invalid> | |
| <foo/> | |
| </invalid> | |
| </testCase> | |
| </testSuite> | |
| </testSuite> |