<!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> |