diff options
Diffstat (limited to 'unused')
-rw-r--r-- | unused/conv09.rng | 9 | ||||
-rw-r--r-- | unused/curious.dtd | 3 | ||||
-rw-r--r-- | unused/curious.xml | 3 | ||||
-rw-r--r-- | unused/patron-2.rng | 2 | ||||
-rw-r--r-- | unused/patron-i1.xml | 8 | ||||
-rw-r--r-- | unused/patron-i2.xml | 7 | ||||
-rw-r--r-- | unused/patron-i3.xml | 2 | ||||
-rw-r--r-- | unused/patron-v1.xml | 7 | ||||
-rw-r--r-- | unused/patron-v2.xml | 6 | ||||
-rw-r--r-- | unused/res09.rng | 14 | ||||
-rw-r--r-- | unused/spectest.xml | 6845 | ||||
-rw-r--r-- | unused/split.xsl | 96 | ||||
-rw-r--r-- | unused/testSuite.rng | 157 | ||||
-rw-r--r-- | unused/unused-counterparts/patron.xsd | 24 | ||||
-rw-r--r-- | unused/unused-counterparts/regextest.xml | 224 | ||||
-rw-r--r-- | unused/unused-counterparts/xsdtest.xml | 805 | ||||
-rw-r--r-- | unused/unused-counterparts/xsdtest.xsl | 235 |
17 files changed, 8447 insertions, 0 deletions
diff --git a/unused/conv09.rng b/unused/conv09.rng new file mode 100644 index 0000000..27628ec --- /dev/null +++ b/unused/conv09.rng @@ -0,0 +1,9 @@ +<grammar xmlns="http://relaxng.org/ns/structure/1.0"> + +<include href="res09.rng"/> + +<define name="y"> + <ref name="z"/> +</define> + +</grammar> diff --git a/unused/curious.dtd b/unused/curious.dtd new file mode 100644 index 0000000..03b6a63 --- /dev/null +++ b/unused/curious.dtd @@ -0,0 +1,3 @@ +<!ELEMENT foo EMPTY> +<!ATTLIST foo bar CDATA "curious" + baz CDATA #FIXED "curiouser"> diff --git a/unused/curious.xml b/unused/curious.xml new file mode 100644 index 0000000..6d95294 --- /dev/null +++ b/unused/curious.xml @@ -0,0 +1,3 @@ +<?xml version="1.0"?> +<!DOCTYPE foo SYSTEM "curious.dtd"> +<foo/> diff --git a/unused/patron-2.rng b/unused/patron-2.rng new file mode 100644 index 0000000..324138e --- /dev/null +++ b/unused/patron-2.rng @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<grammar xmlns="http://relaxng.org/ns/structure/1.0"><start><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></start><define name="start-element"><element><name ns="http://relaxng.org/ns/structure/1.0">start</name><group><group><choice><empty/><attribute><name ns="">combine</name><choice><value datatypeLibrary="" ns="http://relaxng.org/ns/structure/1.0" type="token">choice</value><value datatypeLibrary="" ns="http://relaxng.org/ns/structure/1.0" type="token">interleave</value></choice></attribute></choice><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></interleave></group></element></define><define name="any"><element><anyName/><choice><empty/><oneOrMore><choice><choice><attribute><anyName/><text/></attribute><text/></choice><ref name="any"/></choice></oneOrMore></choice></element></define><define name="define-element"><element><name ns="http://relaxng.org/ns/structure/1.0">define</name><group><group><group><attribute><name ns="">name</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="NCName"/></attribute><choice><empty/><attribute><name ns="">combine</name><choice><value datatypeLibrary="" ns="http://relaxng.org/ns/structure/1.0" type="token">choice</value><value datatypeLibrary="" ns="http://relaxng.org/ns/structure/1.0" type="token">interleave</value></choice></attribute></choice></group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define><define name="except_"><element><name ns="http://relaxng.org/ns/structure/1.0">except</name><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><ref name="name_"/><ref name="anyName_"/></choice><ref name="nsName_"/></choice><ref name="choice_"/></choice></oneOrMore></interleave></element></define><define name="name_"><element><name ns="http://relaxng.org/ns/structure/1.0">name</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="QName"/></group></element></define><define name="anyName_"><element><name ns="http://relaxng.org/ns/structure/1.0">anyName</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><choice><empty/><ref name="except_"/></choice></interleave></group></element></define><define name="nsName_"><element><name ns="http://relaxng.org/ns/structure/1.0">nsName</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><choice><empty/><ref name="except_"/></choice></interleave></group></element></define><define name="choice_"><element><name ns="http://relaxng.org/ns/structure/1.0">choice</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><ref name="name_"/><ref name="anyName_"/></choice><ref name="nsName_"/></choice><ref name="choice_"/></choice></oneOrMore></interleave></group></element></define><define name="div_"><element><name ns="http://relaxng.org/ns/structure/1.0">div</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><choice><empty/><oneOrMore><choice><choice><choice><ref name="start-element"/><ref name="define-element"/></choice><ref name="div_"/></choice><ref name="include_"/></choice></oneOrMore></choice></interleave></group></element></define><define name="include_"><element><name ns="http://relaxng.org/ns/structure/1.0">include</name><group><group><attribute><name ns="">href</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><choice><empty/><oneOrMore><choice><choice><ref name="start-element"/><ref name="define-element"/></choice><ref name="div_s"/></choice></oneOrMore></choice></interleave></group></element></define><define name="_"><element><anyName><except><nsName ns="http://relaxng.org/ns/structure/1.0"/></except></anyName><choice><empty/><oneOrMore><choice><choice><attribute><anyName/><text/></attribute><text/></choice><ref name="any"/></choice></oneOrMore></choice></element></define><define name="element_"><element><name ns="http://relaxng.org/ns/structure/1.0">element</name><group><group><choice><attribute><name ns="">name</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="QName"/></attribute><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><choice><choice><choice><ref name="name_"/><ref name="anyName_"/></choice><ref name="nsName_"/></choice><ref name="choice_"/></choice></interleave></choice><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define><define name="attribute_"><element><name ns="http://relaxng.org/ns/structure/1.0">attribute</name><group><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><choice><attribute><name ns="">name</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="QName"/></attribute><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><choice><choice><choice><ref name="name_"/><ref name="anyName_"/></choice><ref name="nsName_"/></choice><ref name="choice_"/></choice></interleave></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><choice><empty/><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></choice></interleave></group></element></define><define name="group_"><element><name ns="http://relaxng.org/ns/structure/1.0">group</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define><define name="interleave_"><element><name ns="http://relaxng.org/ns/structure/1.0">interleave</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define><define name="choice_s"><element><name ns="http://relaxng.org/ns/structure/1.0">choice</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define><define name="optional_"><element><name ns="http://relaxng.org/ns/structure/1.0">optional</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define><define name="zeroOrMore_"><element><name ns="http://relaxng.org/ns/structure/1.0">zeroOrMore</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define><define name="oneOrMore_"><element><name ns="http://relaxng.org/ns/structure/1.0">oneOrMore</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define><define name="list_"><element><name ns="http://relaxng.org/ns/structure/1.0">list</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define><define name="mixed_"><element><name ns="http://relaxng.org/ns/structure/1.0">mixed</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define><define name="ref_"><element><name ns="http://relaxng.org/ns/structure/1.0">ref</name><group><group><attribute><name ns="">name</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="NCName"/></attribute><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group></group><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice></group></element></define><define name="parentRef_"><element><name ns="http://relaxng.org/ns/structure/1.0">parentRef</name><group><attribute><name ns="">name</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="NCName"/></attribute><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group></group></element></define><define name="empty_"><element><name ns="http://relaxng.org/ns/structure/1.0">empty</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice></group></element></define><define name="text_"><element><name ns="http://relaxng.org/ns/structure/1.0">text</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice></group></element></define><define name="value_"><element><name ns="http://relaxng.org/ns/structure/1.0">value</name><group><group><choice><empty/><attribute><name ns="">type</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="NCName"/></attribute></choice><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group></group><text/></group></element></define><define name="data_"><element><name ns="http://relaxng.org/ns/structure/1.0">data</name><group><group><attribute><name ns="">type</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="NCName"/></attribute><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><group><choice><empty/><oneOrMore><ref name="param_"/></oneOrMore></choice><choice><empty/><ref name="except_x"/></choice></group></interleave></group></element></define><define name="notAllowed_"><element><name ns="http://relaxng.org/ns/structure/1.0">notAllowed</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice></group></element></define><define name="externalRef_"><element><name ns="http://relaxng.org/ns/structure/1.0">externalRef</name><group><group><attribute><name ns="">href</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group></group><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice></group></element></define><define name="grammar_"><element><name ns="http://relaxng.org/ns/structure/1.0">grammar</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><choice><empty/><oneOrMore><choice><choice><choice><ref name="start-element"/><ref name="define-element"/></choice><ref name="div_"/></choice><ref name="include_"/></choice></oneOrMore></choice></interleave></group></element></define><define name="div_s"><element><name ns="http://relaxng.org/ns/structure/1.0">div</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><choice><empty/><oneOrMore><choice><choice><ref name="start-element"/><ref name="define-element"/></choice><ref name="div_s"/></choice></oneOrMore></choice></interleave></group></element></define><define name="param_"><element><name ns="http://relaxng.org/ns/structure/1.0">param</name><group><group><attribute><name ns="">name</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="NCName"/></attribute><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group></group><text/></group></element></define><define name="except_x"><element><name ns="http://relaxng.org/ns/structure/1.0">except</name><group><group><group><choice><empty/><attribute><name ns="">ns</name><text/></attribute></choice><choice><empty/><attribute><name ns="">datatypeLibrary</name><data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" type="anyURI"/></attribute></choice></group><choice><empty/><oneOrMore><attribute><anyName><except><choice><nsName ns="http://relaxng.org/ns/structure/1.0"/><nsName ns=""/></choice></except></anyName><text/></attribute></oneOrMore></choice></group><interleave><choice><empty/><oneOrMore><ref name="_"/></oneOrMore></choice><oneOrMore><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><choice><ref name="element_"/><ref name="attribute_"/></choice><ref name="group_"/></choice><ref name="interleave_"/></choice><ref name="choice_s"/></choice><ref name="optional_"/></choice><ref name="zeroOrMore_"/></choice><ref name="oneOrMore_"/></choice><ref name="list_"/></choice><ref name="mixed_"/></choice><ref name="ref_"/></choice><ref name="parentRef_"/></choice><ref name="empty_"/></choice><ref name="text_"/></choice><ref name="value_"/></choice><ref name="data_"/></choice><ref name="notAllowed_"/></choice><ref name="externalRef_"/></choice><ref name="grammar_"/></choice></oneOrMore></interleave></group></element></define></grammar>
\ No newline at end of file diff --git a/unused/patron-i1.xml b/unused/patron-i1.xml new file mode 100644 index 0000000..976be53 --- /dev/null +++ b/unused/patron-i1.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<patron> + <book isbn="0-528-84460-X"/> + <name>John Doe</name> + <name>Second Name</name> + <id-num>12345678</id-num> + <book title="Why RELAX is Clever"/> +</patron> diff --git a/unused/patron-i2.xml b/unused/patron-i2.xml new file mode 100644 index 0000000..f0b38c5 --- /dev/null +++ b/unused/patron-i2.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<patron> + <name>John Doe</name> + <id-num>12345678</id-num> + <book title="Why RELAX is Clever" isbn="0-528-84460-X"/> + <book/> +</patron> diff --git a/unused/patron-i3.xml b/unused/patron-i3.xml new file mode 100644 index 0000000..fba69c8 --- /dev/null +++ b/unused/patron-i3.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<patron/> diff --git a/unused/patron-v1.xml b/unused/patron-v1.xml new file mode 100644 index 0000000..1676598 --- /dev/null +++ b/unused/patron-v1.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<patron> + <book isbn="0-528-84460-X"/> + <name>John Doe</name> + <id-num>12345678</id-num> + <book title="Why RELAX is Clever"/> +</patron> diff --git a/unused/patron-v2.xml b/unused/patron-v2.xml new file mode 100644 index 0000000..06b37bb --- /dev/null +++ b/unused/patron-v2.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<patron> + <id-num>09876545</id-num> + <name>Jane Moe</name> +</patron> + diff --git a/unused/res09.rng b/unused/res09.rng new file mode 100644 index 0000000..46efdaf --- /dev/null +++ b/unused/res09.rng @@ -0,0 +1,14 @@ +<grammar xmlns="http://relaxng.org/ns/structure/1.0"> + +<start> +<element name="foo"> + <ref name="y"/> +</element> +</start> + +<define name="z"> + <text/> +</define> + + +</grammar> diff --git a/unused/spectest.xml b/unused/spectest.xml new file mode 100644 index 0000000..b43d460 --- /dev/null +++ b/unused/spectest.xml @@ -0,0 +1,6845 @@ +<!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> diff --git a/unused/split.xsl b/unused/split.xsl new file mode 100644 index 0000000..bef75f0 --- /dev/null +++ b/unused/split.xsl @@ -0,0 +1,96 @@ +<?xml version="1.0"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:saxon="http://icl.com/saxon" + extension-element-prefixes="saxon"> + +<xsl:output method="text"/> + +<xsl:param name="dir" select="'.'"/> + +<xsl:template match="/"> + <xsl:apply-templates select="//testCase"/> +</xsl:template> + +<xsl:variable name="incorrectSchemaName" select="'i.rng'"/> +<xsl:variable name="correctSchemaName" select="'c.rng'"/> +<xsl:variable name="invalidInstanceSuffix" select="'.i.xml'"/> +<xsl:variable name="validInstanceSuffix" select="'.v.xml'"/> + +<xsl:template match="testCase"> + <xsl:variable name="b" select="concat($dir, '/', format-number(position(),'000'))"/> + <xsl:call-template name="mkdir"> + <xsl:with-param name="dir" select="$b"/> + </xsl:call-template> + <xsl:variable name="f"> + <xsl:choose> + <xsl:when test="correct"> + <xsl:value-of select="$correctSchemaName"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$incorrectSchemaName"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <saxon:output href="{concat($b, '/', $f)}" method="xml"> + <xsl:for-each select="correct|incorrect"> + <xsl:call-template name="copy"/> + </xsl:for-each> + </saxon:output> + <xsl:apply-templates select="resource|dir"> + <xsl:with-param name="base" select="$b"/> + </xsl:apply-templates> + <!-- Don't combine so that position is correct. --> + <xsl:apply-templates select="valid|invalid"> + <xsl:with-param name="base" select="$b"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="valid"> + <xsl:param name="base"/> + <xsl:variable name="d" select="concat($base, '/', position(), $validInstanceSuffix)"/> + <saxon:output href="{$d}" method="xml"> + <xsl:call-template name="copy"/> + </saxon:output> +</xsl:template> + +<xsl:template match="invalid"> + <xsl:param name="base"/> + <xsl:variable name="d" select="concat($base, '/', position(), $invalidInstanceSuffix)"/> + <saxon:output href="{$d}" method="xml"> + <xsl:call-template name="copy"/> + </saxon:output> +</xsl:template> + +<xsl:template match="resource"> + <xsl:param name="base"/> + <saxon:output href="{$base}/{@name}" method="xml"> + <xsl:call-template name="copy"/> + </saxon:output> +</xsl:template> + +<xsl:template name="copy"> + <xsl:if test="@dtd"> + <xsl:value-of select="@dtd" disable-output-escaping="yes"/> + </xsl:if> + <xsl:copy-of select="node()"/> +</xsl:template> + +<xsl:template match="dir"> + <xsl:param name="base"/> + <xsl:variable name="d" select="concat($base, '/', @name)"/> + <xsl:call-template name="mkdir"> + <xsl:with-param name="dir" select="$d"/> + </xsl:call-template> + <xsl:apply-templates select="resource|dir"> + <xsl:with-param name="base" select="$d"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template name="mkdir"> + <xsl:param name="dir"/> + <xsl:value-of select="substring(File:mkdir(File:new($dir)),0,0)" + xmlns:File="java:java.io.File"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/unused/testSuite.rng b/unused/testSuite.rng new file mode 100644 index 0000000..6626f3a --- /dev/null +++ b/unused/testSuite.rng @@ -0,0 +1,157 @@ +<?xml version="1.0"?> +<!-- $Id: testSuite.rng,v 1.10 2002/04/30 07:00:05 jjc Exp $ --> +<grammar xmlns="http://relaxng.org/ns/structure/1.0" ns=""> + <!-- + Target namespace is intentionally set to "" so as not to interfere with + prefix/URI bindings + --> + + <start> + <ref name="testSuite"/> + </start> + + <define name="testSuite"> + <element name="testSuite"> + <ref name="header"/> + <zeroOrMore> + <choice> + <ref name="testSuite"/> + <ref name="testCase"/> + </choice> + </zeroOrMore> + </element> + </define> + + <define name="testCase"> + <element name="testCase"> + <ref name="header"/> + + <ref name="resources"/> + + <choice> + + <!-- Incorrect schema --> + <element name="incorrect"> + <ref name="dtd"/> + <ref name="anyElement"/> + </element> + + <!-- Correct schema and test cases --> + <group> + <element name="correct"> + <ref name="dtd"/> + <externalRef href="relaxng.rng"/> + </element> + <zeroOrMore> + <choice> + <!-- Valid test cases --> + <element name="valid"> + <ref name="dtd"/> + <ref name="anyElement"/> + </element> + <!-- Invalid test cases --> + <element name="invalid"> + <ref name="dtd"/> + <ref name="anyElement"/> + </element> + </choice> + </zeroOrMore> + </group> + + </choice> + + </element> + </define> + + <define name="any"> + <zeroOrMore> + <choice> + <ref name="anyElement"/> + <attribute> + <anyName/> + <text/> + </attribute> + <text/> + </choice> + </zeroOrMore> + </define> + + <define name="anyElement"> + <element> + <anyName/> + <ref name="any"/> + </element> + </define> + + <define name="header"> + <zeroOrMore> + <choice> + <element name="title"> + <text/> + </element> + <element name="documentation"> + <text/> + </element> + <element name="author"> + <text/> + </element> + <!-- Email address for correspondence about test cases. --> + <element name="email"> + <text/> + </element> + <!-- Section of the specification being tested. --> + <element name="section"> + <text/> + </element> + <element name="requires"> + <attribute name="datatypeLibrary"/> + </element> + <element> + <anyName> + <except> + <nsName/> + </except> + </anyName> + <ref name="any"/> + </element> + </choice> + </zeroOrMore> + </define> + + <define name="resources"> + <zeroOrMore> + <choice> + <element name="resource"> + <attribute name="name"> + <ref name="pathSegment"/> + </attribute> + <ref name="dtd"/> + <ref name="anyElement"/> + </element> + <element name="dir"> + <attribute name="name"> + <ref name="pathSegment"/> + </attribute> + <ref name="resources"/> + </element> + </choice> + </zeroOrMore> + </define> + + <define name="dtd"> + <optional> + <attribute name="dtd"/> + </optional> + </define> + + <!-- A relative URI segment. --> + + <define name="pathSegment"> + <data datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" + type="string"> + <!-- one or more RFC 2396 pchars --> + <param name="pattern">([\-A-Za-z0-9:@&=+$,_.!~*'()]|%[0-9a-fA-F][0-9a-fA-F])+</param> + </data> + </define> + +</grammar> diff --git a/unused/unused-counterparts/patron.xsd b/unused/unused-counterparts/patron.xsd new file mode 100644 index 0000000..420bb3d --- /dev/null +++ b/unused/unused-counterparts/patron.xsd @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0"> + <xs:element name="patron"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="name"/> + <xs:element ref="id-num"/> + <xs:element ref="book"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="name"> + <xs:complexType mixed="true"/> + </xs:element> + <xs:element name="id-num"> + <xs:complexType mixed="true"/> + </xs:element> + <xs:element name="book"> + <xs:complexType> + <xs:attribute name="isbn"/> + <xs:attribute name="title"/> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/unused/unused-counterparts/regextest.xml b/unused/unused-counterparts/regextest.xml new file mode 100644 index 0000000..b6f896d --- /dev/null +++ b/unused/unused-counterparts/regextest.xml @@ -0,0 +1,224 @@ +<testSuite> +<testCase> +<correct>xyzzy</correct> +<valid>xyzzy</valid> +<invalid>xyzz</invalid> +<invalid>xyzzyy</invalid> +<invalid>xxyzzy</invalid> +<invalid>XYZZY</invalid> +<invalid> xyzzy</invalid> +</testCase> +<testCase> +<correct>\i</correct> +<valid>j</valid> +<valid>℮</valid> +</testCase> +<testCase> +<incorrect>a??</incorrect> +</testCase> +<testCase> +<correct>\P{IsGothic}</correct> +<invalid>𐌰</invalid> +<invalid>𐌿</invalid> +<invalid>𐍏</invalid> +<valid>X</valid> +<valid>𐌯</valid> +<valid>𠌰</valid> +<valid>𰌰</valid> +<valid>𐍐</valid> +</testCase> +<testCase> +<correct>\p{IsGothic}</correct> +<valid>𐌰</valid> +<valid>𐌿</valid> +<valid>𐍏</valid> +<invalid>X</invalid> +<invalid>𐌯</invalid> +<invalid>𠌰</invalid> +<invalid>𰌰</invalid> +<invalid>𐍐</invalid> +</testCase> +<testCase> +<correct>$</correct> +<valid>$</valid> +<invalid/> +</testCase> +<testCase> +<correct>a|b</correct> +</testCase> +<testCase> +<correct>[x-y]</correct> +</testCase> +<testCase> +<correct>[\p{Nd}-[a-z]]</correct> +</testCase> +<testCase> +<correct>[\p{Nd}-[\p{IsThai}]]</correct> +</testCase> +<testCase> +<correct>\p{IsThai}</correct> +</testCase> +<testCase> +<correct>\i\c*</correct> +</testCase> +<testCase> +<correct>~!@#$%\^&\*\(\)_\+`\-=\{\}\[\]\|\\:;"',\.<>/\?</correct> +<valid>~!@#$%^&*()_+`-={}[]|\:;"',.<>/?</valid> +</testCase> +<testCase> +<correct>[f&&g]</correct> +<valid>f</valid> +<valid>&</valid> +<valid>g</valid> +</testCase> +<testCase> +<correct>^</correct> +<valid>^</valid> +</testCase> +<testCase> +<incorrect>\</incorrect> +</testCase> +<testCase> +<incorrect>?</incorrect> +</testCase> +<testCase> +<incorrect>*</incorrect> +</testCase> +<testCase> +<incorrect>+</incorrect> +</testCase> +<testCase> +<incorrect>)</incorrect> +</testCase> +<testCase> +<incorrect>(</incorrect> +</testCase> +<testCase> +<incorrect>[</incorrect> +</testCase> +<testCase> +<incorrect>]</incorrect> +</testCase> +<testCase> +<correct>-</correct> +<valid>-</valid> +</testCase> +<testCase> +<correct>|</correct> +<valid/> +<invalid>|</invalid> +</testCase> +<testCase> +<correct>.</correct> +<valid>.</valid> +<invalid/> +<invalid> +</invalid> +<invalid>
</invalid> +<invalid>
</invalid> +<invalid>..</invalid> +<valid>𐌰</valid> +</testCase> +<testCase> +<incorrect>[^]</incorrect> +</testCase> +<testCase> +<incorrect>[]</incorrect> +</testCase> +<testCase> +<incorrect>[]]</incorrect> +</testCase> +<testCase> +<incorrect>[[]</incorrect> +</testCase> +<testCase> +<incorrect>[\]</incorrect> +</testCase> +<testCase> +<correct>[^^]</correct> +<valid>x</valid> +<invalid>^</invalid> +</testCase> +<testCase> +<correct>[?+*(){}|.]</correct> +<valid>?</valid> +<valid>+</valid> +<valid>*</valid> +<valid>(</valid> +<valid>)</valid> +<valid>{</valid> +<valid>}</valid> +<valid>|</valid> +<valid>.</valid> +<invalid>x</invalid> +</testCase> +<testCase> +<correct/> +<valid/> +<invalid>x</invalid> +</testCase> +<testCase> +<incorrect>x{2,1}</incorrect> +</testCase> +<testCase> +<correct>x{1,1}</correct> +<valid>x</valid> +</testCase> +<testCase> +<incorrect>x{1, 2}</incorrect> +</testCase> +<testCase> +<incorrect>x{ 2}</incorrect> +</testCase> +<testCase> +<incorrect>x{2 }</incorrect> +</testCase> +<testCase> +<incorrect>x{-0,1}</incorrect> +</testCase> +<testCase> +<incorrect>x{+2}</incorrect> +</testCase> +<testCase> +<correct>x{2147483648}</correct> +<invalid>x</invalid> +</testCase> +<testCase> +<incorrect>x{2147483649,2147483648}</incorrect> +</testCase> +<testCase> +<correct>x{0,2147483648}</correct> +<valid>x</valid> +</testCase> +<testCase> +<correct>[a-z-[c-y]]</correct> +<valid>a</valid> +<valid>b</valid> +<valid>z</valid> +<invalid>c</invalid> +<invalid>y</invalid> +<invalid>d</invalid> +</testCase> +<testCase> +<correct>[abc-[a-a]]</correct> +<valid>b</valid> +<valid>c</valid> +<invalid>a</invalid> +<invalid>d</invalid> +</testCase> +<testCase> +<incorrect>[a-[a]-[a]]</incorrect> +</testCase> +<testCase> +<incorrect>\pL</incorrect> +</testCase> +<testCase> +<correct>\p{IsHighSurrogates}\p{IsLowSurrogates}</correct> +<invalid>𐌰</invalid> +</testCase> +<testCase> +<correct>a[𐌰-[𐌰]]*b</correct> +<valid>ab</valid> +<invalid>a𐌰b</invalid> +</testCase> +</testSuite> diff --git a/unused/unused-counterparts/xsdtest.xml b/unused/unused-counterparts/xsdtest.xml new file mode 100644 index 0000000..2fe94b6 --- /dev/null +++ b/unused/unused-counterparts/xsdtest.xml @@ -0,0 +1,805 @@ +<xsdtest> +<datatype name="dateTime"> +<valid>2001-12-01T19:45:00</valid> +<valid>2001-12-01T19:45:00Z</valid> +<valid>2001-12-01T19:45:00-11:59</valid> +<valid>0001-01-12T00:00:00+12:00</valid> +<invalid>2001-12-1T19:45:00+24:00</invalid> +<invalid>2001-12-1T19:45:00</invalid> +<equiv> +<class> + <value>2001-12-01T19:45:00</value> + <value>2001-12-01T19:45:00.00</value> +</class> +<class> + <value>2001-12-01T19:45:00Z</value> + <value>2001-12-01T19:45:00.00Z</value> + <value>2001-12-01T20:45:00+01:00</value> +</class> +</equiv> +</datatype> +<datatype name="anyURI"> +<valid>foobar</valid> +<valid>http://www.example.com</valid> +<valid>http://www.example.co%6d</valid> +<valid>nosuchscheme:stuff</valid> +<invalid>foo$bar:stuff</invalid> +<invalid>f%oobar</invalid> +</datatype> +<datatype name="integer"> +<valid>10</valid> +<valid>01</valid> +<valid>0123456789</valid> +<valid>+10</valid> +<valid>-10</valid> +<invalid>1.0</invalid> +<invalid>.1</invalid> +<valid>9999999999999999999999999999999</valid> +<invalid>1.</invalid> +<invalid>0.</invalid> +<equiv> +<class> + <value>0</value> + <value>+0</value> + <value>-0</value> + <value>00</value> +</class> +<class> + <value>10</value> + <value>+10</value> + <value>+0010</value> + <value>010</value> +</class> +<class> + <value>-10</value> + <value>-0010</value> + <value>-010</value> +</class> +</equiv> +</datatype> +<datatype name="duration"> +<valid>P1Y</valid> +<valid>P1Y0M2DT17H5M12S</valid> +<valid>-P1Y</valid> +<valid>P60D</valid> +<valid>PT24H</valid> +<valid>PT1.2S</valid> +<invalid>P24h</invalid> +<invalid>P24H</invalid> +<invalid>P1YT</invalid> +<invalid>P</invalid> +<invalid>-P</invalid> +<equiv> + <class> + <value>-P6M</value> + </class> + <class> + <value>P0Y</value> + <value>-P0Y</value> + </class> + <class> + <value>P1Y</value> + <value>P001Y</value> + <value>P001Y0M</value> + <value>P1Y0M0DT0H0M0.0S</value> + </class> + <class> + <value>P6M</value> + </class> + <class> + <value>PT6M</value> + </class> + <class> + <value>PT1S</value> + <value>PT1.0S</value> + </class> +</equiv> +<lessThan> + <value>PT1M</value> + <value>PT61S</value> +</lessThan> +<lessThan> + <value>PT59S</value> + <value>PT1M</value> +</lessThan> +<incomparable> + <value>PT60S</value> + <value>PT1M</value> +</incomparable> +<lessThan> + <value>PT1H</value> + <value>PT61M</value> +</lessThan> +<lessThan> + <value>PT59M</value> + <value>PT1H</value> +</lessThan> +<incomparable> + <value>PT60M</value> + <value>PT1H</value> +</incomparable> +<lessThan> + <value>P1D</value> + <value>PT25H</value> +</lessThan> +<lessThan> + <value>PT23H</value> + <value>P1D</value> +</lessThan> +<incomparable> + <value>P1D</value> + <value>PT24H</value> +</incomparable> +<lessThan> + <value>P1Y</value> + <value>P13M</value> +</lessThan> +<lessThan> + <value>P11M</value> + <value>P1Y</value> +</lessThan> +<incomparable> + <value>P12M</value> + <value>P1Y</value> +</incomparable> +<lessThan> + <value>P364D</value> + <value>P1Y</value> +</lessThan> +<incomparable> + <value>P1Y</value> + <value>P365D</value> +</incomparable> +<incomparable> + <value>P1Y</value> + <value>P366D</value> +</incomparable> +<lessThan> + <value>P1Y</value> + <value>P367D</value> +</lessThan> +<lessThan> + <value>P149D</value> + <value>P5M</value> +</lessThan> +<incomparable> + <value>P150D</value> + <value>P5M</value> +</incomparable> +<incomparable> + <value>P151D</value> + <value>P5M</value> +</incomparable> +<incomparable> + <value>P152D</value> + <value>P5M</value> +</incomparable> +<incomparable> + <value>P153D</value> + <value>P5M</value> +</incomparable> +<lessThan> + <value>P5M</value> + <value>P154D</value> +</lessThan> +<lessThan> + <value>P27D</value> + <value>P1M</value> +</lessThan> +<incomparable> + <value>P28D</value> + <value>P1M</value> +</incomparable> +<incomparable> + <value>P29D</value> + <value>P1M</value> +</incomparable> +<incomparable> + <value>P30D</value> + <value>P1M</value> +</incomparable> +<incomparable> + <value>P31D</value> + <value>P1M</value> +</incomparable> +<lessThan> + <value>P1M</value> + <value>P32D</value> +</lessThan> +</datatype> +<datatype name="time"> +<valid>12:45:00</valid> +<valid>12:45:00Z</valid> +</datatype> +<datatype name="date"> +<valid>1886-12-01</valid> +<valid>1886-12-01Z</valid> +<lessThan> + <value>1066-12-31</value> + <value>1900-01-01</value> +</lessThan> +<lessThan> + <value>1900-01-01</value> + <value>1900-01-02</value> +</lessThan> +</datatype> +<datatype name="gYearMonth"> +<valid>1996-12</valid> +<valid>1996-01</valid> +<valid>1996-01Z</valid> +<invalid>1996-00</invalid> +<equiv> +<class><value>1996-01</value></class> +<class> + <value>1996-01Z</value> + <value>1996-01+00:00</value> + <value>1996-01-00:00</value> +</class> +<class><value>1996-01+01:00</value></class> +<class><value>1996-01-01:00</value></class> +</equiv> +</datatype> +<datatype name="gYear"> +<valid>2001</valid> +<valid>2001Z</valid> +<lessThan> + <value>1999</value> + <value>2000</value> +</lessThan> +<lessThan> + <value>1999+07:00</value> + <value>2000+07:00</value> +</lessThan> +</datatype> +<datatype name="gMonthDay"> +<valid>--12-01</valid> +<valid>--12-01Z</valid> +<lessThan> + <value>--12-01</value> + <value>--12-04</value> +</lessThan> +<lessThan> + <value>--11-17</value> + <value>--12-04</value> +</lessThan> +</datatype> +<datatype name="gDay"> +<valid>---20</valid> +<valid>---20Z</valid> +<lessThan> + <value>---01</value> + <value>---31</value> +</lessThan> +</datatype> +<datatype name="gMonth"> +<valid>--12</valid> +<valid>--01</valid> +<valid>--01Z</valid> +<valid> --12 </valid> +<invalid>---01</invalid> +<invalid>--00</invalid> +<invalid>--13</invalid> +<invalid>- -13</invalid> +<lessThan> + <value>--01</value> + <value>--12</value> +</lessThan> +<lessThan> + <value>--01</value> + <value>--02</value> +</lessThan> +</datatype> +<datatype name="boolean"> +<valid>true</valid> +<valid>false</valid> +<valid>0</valid> +<valid>1</valid> +<invalid>00</invalid> +<invalid>00</invalid> +<invalid>01</invalid> +<equiv> +<class><value>true</value><value>1</value></class> +<class><value>false</value><value>0</value></class> +</equiv> +</datatype> +<datatype name="base64Binary"> +<valid>AAAA</valid> +<valid>abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR +STUV WXYZ 0123 4567 89+/</valid> +<valid>BA==</valid> +<valid></valid> +<valid>BA==</valid> +<valid>BQ==</valid> +<valid>Bg==</valid> +<valid>Bw==</valid> +<valid>BBA=</valid> +<valid>BBA=</valid> +<valid>BBE=</valid> +<valid>BBI=</valid> +<valid>BBM=</valid> +<valid>BBQ=</valid> +<valid>BBU=</valid> +<valid>BBY=</valid> +<valid>BBc=</valid> +<valid>BBg=</valid> +<valid>BBk=</valid> +<valid>BBo=</valid> +<valid>BBs=</valid> +<valid>BBw=</valid> +<valid>BB0=</valid> +<valid>BB4=</valid> +<valid>BB8=</valid> +<invalid>====</invalid> +<invalid>BB==</invalid> +<invalid>BBB=</invalid> +<invalid>B===</invalid> +<invalid>B</invalid> +<equiv> +<class> +<value>deadbeef</value> +<value>d

	e a d +b eef </value> +</class> +<class> +<value>DEADBEEF</value> +<value>D

	E A D +B EEF </value> +</class> +</equiv> +<length value="0"></length> +<length value="6">deadbeef</length> +<length value="1">BA==</length> +<length value="2">BBA=</length> +<length value="3">dead</length> +<length value="4">deadBA==</length> +</datatype> +<datatype name="hexBinary"> +<valid>deadbeef</valid> +<valid></valid> +<valid>0123456789ABCDEFabcdef</valid> +<invalid>00 00</invalid> +<invalid>00.00</invalid> +<invalid>0G</invalid> +<equiv> + <class> + <value>00</value> + <value> + 00 + </value> + </class> + <class> + <value>01</value> + </class> + <class> + <value>10</value> + </class> + <class> + <value>0a</value> + <value>0A</value> + </class> +</equiv> +<length value="0"></length> +<length value="1">00</length> +<length value="2">0000</length> +<length value="2"> 0000 </length> +<length value="2">AAAA</length> +</datatype> +<datatype name="float"> +<valid>1.0</valid> +<valid>1.</valid> +<valid>.1</valid> +<invalid>- 1</invalid> +<invalid>1 .0</invalid> +<invalid>+INF</invalid> +<invalid>+NaN</invalid> +<invalid>-NaN</invalid> +<equiv> +<class> + <value>0</value> + <value>-0</value> + <value>+0</value> + <value> 0 </value> + <value> 0. </value> + <value> .0 </value> + <value> 0.0 </value> + <value> 0e0 </value> + <value> 0E0 </value> + <value> 0E+0 </value> + <value> 0E-0 </value> +</class> +<class> + <value>1E0</value> + <value>0.1E1</value> + <value>10E-1</value> + <value>+1</value> +</class> +<class> + <value>-1</value> +</class> +<class> + <value>INF</value> + <value>INF </value> +</class> +<class> + <value>-INF</value> + <value>-INF </value> +</class> +<class> + <value>NaN</value> + <value> NaN </value> +</class> +</equiv> +<lessThan> + <value>-INF</value> + <value>-1000</value> +</lessThan> +<lessThan> + <value>1000</value> + <value>INF</value> +</lessThan> +<lessThan> + <value>-1</value> + <value>1</value> +</lessThan> +<lessThan> + <value>0</value> + <value>1</value> +</lessThan> +<lessThan> + <value>-1</value> + <value>0</value> +</lessThan> +</datatype> +<datatype name="double"> +<valid>1.0</valid> +<valid>1.</valid> +<valid>.1</valid> +<invalid>- 1</invalid> +<invalid>1 .0</invalid> +<invalid>+INF</invalid> +<invalid>+NaN</invalid> +<invalid>-NaN</invalid> +<equiv> +<class> + <value>0</value> + <value>-0</value> + <value>+0</value> + <value> 0 </value> + <value> 0. </value> + <value> .0 </value> + <value> 0.0 </value> + <value> 0e0 </value> + <value> 0E0 </value> + <value> 0E+0 </value> + <value> 0E-0 </value> +</class> +<class> + <value>1E0</value> + <value>0.1E1</value> + <value>10E-1</value> + <value>+1</value> +</class> +<class> + <value>-1</value> +</class> +<class> + <value>INF</value> + <value>INF </value> +</class> +<class> + <value>-INF</value> + <value>-INF </value> +</class> +<class> + <value>NaN</value> + <value> NaN </value> +</class> +</equiv> +<lessThan> + <value>-INF</value> + <value>-1000</value> +</lessThan> +<lessThan> + <value>1000</value> + <value>INF</value> +</lessThan> +<lessThan> + <value>-1</value> + <value>1</value> +</lessThan> +<lessThan> + <value>0</value> + <value>1</value> +</lessThan> +<lessThan> + <value>-1</value> + <value>0</value> +</lessThan> +</datatype> +<datatype name="QName"> +<valid>foo</valid> +<valid xmlns:x="http://www.example.com">x:foo</valid> +<invalid>y:foo</invalid> +<equiv xmlns:x="http://www.example.com" + xmlns:y="http://www.example.com/" + xmlns:z="http://www.example.com"> +<class> + <value>foo</value> + <value> foo</value> +</class> +<class> + <value>x:foo</value> + <value> x:foo </value> + <value>z:foo</value> +</class> +<class> + <value>x:bar</value> + <value>z:bar</value> +</class> +<class> + <value>y:foo</value> +</class> +<class> + <value>y:bar</value> +</class> +</equiv> +</datatype> +<datatype name="NOTATION"> +<valid>foo</valid> +<valid xmlns:x="http://www.example.com">x:foo</valid> +<invalid>y:foo</invalid> +</datatype> +<datatype name="decimal"> +<valid>1.0</valid> +<valid>1.</valid> +<valid>.1</valid> +<valid>+1.0</valid> +<valid>-1.0</valid> +<valid> 1 </valid> +<valid>99999999999999999999999999999999999999999999999999999999999999999</valid> +<valid>-99999999999999999999999999999999999999999999999999999999999999999</valid> +<invalid>junk</invalid> +<invalid>--1</invalid> +<invalid>++1</invalid> +<invalid>+-1</invalid> +<invalid>1.2.</invalid> +<invalid>..1</invalid> +<invalid>1..</invalid> +<invalid>1 .2</invalid> +<invalid>1+</invalid> +<invalid>+ 1</invalid> +<lessThan> + <value>0</value> + <value>1</value> +</lessThan> +</datatype> +<datatype name="nonPositiveInteger"> +<valid>-1</valid> +<valid>0</valid> +<valid>-0</valid> +<invalid>1</invalid> +</datatype> +<datatype name="nonNegativeInteger"> +<valid>1</valid> +<valid>0</valid> +<valid>+1</valid> +<valid>+0</valid> +<invalid>-1</invalid> +</datatype> +<datatype name="positiveInteger"> +<valid>+1</valid> +<valid>1</valid> +<invalid>0</invalid> +<invalid>-1</invalid> +</datatype> +<datatype name="negativeInteger"> +<valid>-1</valid> +<invalid>+1</invalid> +<invalid>0</invalid> +</datatype> +<datatype name="long"> +<valid>1</valid> +<valid>+1</valid> +<valid>0</valid> +<valid> 0 </valid> +<invalid>1 2</invalid> +<invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid> +<valid>9223372036854775807</valid> +<valid>-9223372036854775808</valid> +<invalid>9223372036854775808</invalid> +<invalid>-9223372036854775809</invalid> +<invalid/> +</datatype> +<datatype name="int"> +<valid>1</valid> +<valid>01</valid> +<valid> 1 </valid> +<valid>2147483647</valid> +<valid>-2147483648</valid> +<invalid>2147483648</invalid> +<invalid>-2147483649</invalid> +<invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid> +<equiv> +<class> + <value>1</value> + <value>+1</value> + <value> 1 </value> + <value>001</value> +</class> +<class> + <value>-1</value> + <value> -1 </value> + <value>-001</value> +</class> +</equiv> +</datatype> +<datatype name="short"> +<valid>1</valid> +<valid>32767</valid> +<valid>-32768</valid> +<invalid>32768</invalid> +<invalid>-32769</invalid> +<invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid> +<equiv> +<class> + <value>1</value> + <value>+1</value> + <value> 1 </value> + <value>001</value> +</class> +<class> + <value>-1</value> + <value> -1 </value> + <value>-001</value> +</class> +</equiv> +</datatype> +<datatype name="byte"> +<valid>1</valid> +<valid>127</valid> +<valid>-128</valid> +<invalid>128</invalid> +<invalid>-129</invalid> +</datatype> +<datatype name="unsignedLong"> +<valid>1</valid> +<valid>+1</valid> +<invalid>-1</invalid> +<valid>0</valid> +<valid>18446744073709551615</valid> +<invalid>18446744073709551616</invalid> +<invalid>-1</invalid> +</datatype> +<datatype name="unsignedInt"> +<valid>1</valid> +<valid>+1</valid> +<valid>0</valid> +<valid>4294967295</valid> +<invalid>4294967296</invalid> +<invalid>-1</invalid> +</datatype> +<datatype name="unsignedShort"> +<valid>1</valid> +<valid>+1</valid> +<valid>0</valid> +<valid>65535</valid> +<invalid>65536</invalid> +<invalid>-1</invalid> +</datatype> +<datatype name="unsignedByte"> +<valid>1</valid> +<valid>+1</valid> +<valid>0</valid> +<valid>255</valid> +<invalid>256</invalid> +<invalid>-1</invalid> +</datatype> +<datatype name="string"> +<valid>any thing at all!</valid> +</datatype> +<datatype name="normalizedString"> +<valid>any thing at all!</valid> +</datatype> +<datatype name="token"> +<valid>any thing at all!</valid> +<equiv> +<class> + <value/> + <value> </value> + <value>	

 </value> +</class> +<class> + <value>x </value> + <value>x
</value> + <value>x
</value> + <value>x	</value> + <value> x</value> + <value>
x</value> + <value>
x</value> + <value>	x</value> + <value>	

 x	

 </value> +</class> +<class> + <value>x y </value> + <value>x y
</value> + <value>x y
</value> + <value>x y	</value> + <value>x y</value> + <value>x
y</value> + <value>x
y</value> + <value>x	y</value> + <value> x y</value> + <value>
x y</value> + <value>
x y</value> + <value>	x y</value> + <value>	

 x	

 y	

 </value> +</class> +</equiv> +<length value="0"></length> +<length value="1">x</length> +<length value="1"> x </length> +<length value="1">𐠀</length> +</datatype> +<datatype name="language"> +<valid>en</valid> +<valid>en-UK</valid> +<valid>i-cherokee</valid> +<valid>x-klingon</valid> +<valid>en-uk-scotland</valid> +<invalid>en.UK</invalid> +</datatype> +<datatype name="Name"> +<valid>foo</valid> +<valid>_0123456789</valid> +<invalid>.</invalid> +<valid>:</valid> +<invalid>-</invalid> +<invalid>1234</invalid> +<valid> foo </valid> +</datatype> +<datatype name="NCName"> +<valid>foo</valid> +<invalid>foo:bar</invalid> +<invalid>0foo</invalid> +<equiv> +<class><value>foo</value><value> foo </value></class> +<class><value>FOO</value><value> FOO </value></class> +</equiv> +</datatype> +<datatype name="NMTOKEN"> +<valid>foo</valid> +<valid>_</valid> +<valid>.</valid> +<valid>:</valid> +<valid>-</valid> +<valid>1234</valid> +<valid> foo </valid> +<length value="3"> foo </length> +<length value="2">fo</length> +<length value="1">f</length> +</datatype> +<datatype name="NMTOKENS"> +<valid>foo bar</valid> +<invalid/> +<valid>1 2 3 4</valid> +</datatype> +<datatype name="ID"> +<valid>foobar</valid> +<invalid>foo:bar</invalid> +<invalid>foo bar</invalid> +</datatype> +<datatype name="ENTITY"> +<invalid/> +<invalid>foo</invalid> +<valid internalSubset="<!ENTITY foo SYSTEM 'whatever' NDATA jpeg>" +>foo</valid> +</datatype> +<datatype name="ENTITIES"> +<invalid></invalid> +<invalid>foo</invalid> +<valid internalSubset="<!ENTITY foo SYSTEM 'whatever' NDATA jpeg> +
<!ENTITY bar SYSTEM 'whatever' NDATA jpeg> +" +> foo bar </valid> +</datatype> +</xsdtest> diff --git a/unused/unused-counterparts/xsdtest.xsl b/unused/unused-counterparts/xsdtest.xsl new file mode 100644 index 0000000..1290b16 --- /dev/null +++ b/unused/unused-counterparts/xsdtest.xsl @@ -0,0 +1,235 @@ +<?xml version="1.0"?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + +<xsl:strip-space elements="xsdtest datatype equiv class"/> + +<xsl:output indent="yes" encoding="utf-8"/> + +<xsl:template match="xsdtest"> + <testSuite> + <xsl:apply-templates/> + </testSuite> +</xsl:template> + +<xsl:template match="datatype"> +<testCase> +<requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/> +<correct> +<element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <data type="{@name}"> + <xsl:for-each select="param"> + <param name="{@name}"><xsl:value-of select="."/></param> + </xsl:for-each> + </data> +</element> +</correct> +<xsl:apply-templates select="valid|invalid"/> +</testCase> +<xsl:apply-templates select="equiv/class|length|lessThan|incomparable"/> +</xsl:template> + +<xsl:template match="valid"> + <xsl:call-template name="valid"/> +</xsl:template> + +<xsl:template match="invalid"> + <xsl:call-template name="invalid"/> +</xsl:template> + +<xsl:template name="valid"> + <valid> + <xsl:apply-templates select="@internalSubset"/> + <doc> + <xsl:copy-of select="namespace::*"/> + <xsl:value-of select="."/> + </doc> + </valid> +</xsl:template> + +<xsl:template name="invalid"> + <invalid> + <xsl:apply-templates select="@internalSubset"/> + <doc> + <xsl:copy-of select="namespace::*"/> + <xsl:value-of select="."/> + </doc> + </invalid> +</xsl:template> + +<xsl:template match="@internalSubset"> + <xsl:param name="doc" select="'doc'"/> + <xsl:attribute name="dtd"> + <xsl:text> +<!DOCTYPE </xsl:text> + <xsl:value-of select="$doc"/> + <xsl:text> [ +</xsl:text> + <xsl:value-of select="."/> + <xsl:text> +]></xsl:text> + </xsl:attribute> +</xsl:template> + +<xsl:template match="class"> +<testCase> +<correct> + <xsl:for-each select="value[1]"> + <xsl:apply-templates select="@internalSubset"> + <xsl:with-param name="doc">element</xsl:with-param> + </xsl:apply-templates> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value> + <xsl:copy-of select="namespace::*"/> + <xsl:attribute name="type"><xsl:value-of select="../../../@name"/></xsl:attribute> + <xsl:value-of select="."/> + </value> + </element> + </xsl:for-each> +</correct> +<xsl:for-each select="value[position() != 1]"> + <xsl:call-template name="valid"/> +</xsl:for-each> +<xsl:for-each select="preceding-sibling::class/value|following-sibling::class/value"> + <xsl:call-template name="invalid"/> +</xsl:for-each> +</testCase> +</xsl:template> + +<xsl:template match="length"> +<testCase> +<correct> +<element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <data type="{../@name}"> + <param name="length"><xsl:value-of select="@value"/></param> + </data> +</element> +</correct> +<xsl:call-template name="valid"/> +</testCase> + +<testCase> +<correct> +<element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <data type="{../@name}"> + <param name="length"><xsl:value-of select="@value + 1"/></param> + </data> +</element> +</correct> +<xsl:call-template name="invalid"/> +</testCase> + +<xsl:if test="@value != 0"> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <data type="{../@name}"> + <param name="length"><xsl:value-of select="@value - 1"/></param> + </data> + </element> + </correct> + <xsl:call-template name="invalid"/> + </testCase> +</xsl:if> + +</xsl:template> + +<xsl:template match="lessThan"> +<testCase> +<correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <data type="{../@name}"> + <param name="minExclusive"> + <xsl:value-of select="value[1]"/> + </param> + </data> + </element> +</correct> +<valid> +<doc> +<xsl:value-of select="value[2]"/> +</doc> +</valid> +<invalid> +<doc> +<xsl:value-of select="value[1]"/> +</doc> +</invalid> +</testCase> +<testCase> +<correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <data type="{../@name}"> + <param name="minExclusive"> + <xsl:value-of select="value[2]"/> + </param> + </data> + </element> +</correct> +<invalid> +<doc> +<xsl:value-of select="value[1]"/> +</doc> +</invalid> +<invalid> +<doc> +<xsl:value-of select="value[2]"/> +</doc> +</invalid> +</testCase> +</xsl:template> + +<xsl:template match="incomparable"> +<testCase> +<correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <data type="{../@name}"> + <param name="minExclusive"> + <xsl:value-of select="value[1]"/> + </param> + </data> + </element> +</correct> +<invalid> +<doc> +<xsl:value-of select="value[2]"/> +</doc> +</invalid> +<invalid> +<doc> +<xsl:value-of select="value[1]"/> +</doc> +</invalid> +</testCase> +<testCase> +<correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <data type="{../@name}"> + <param name="minExclusive"> + <xsl:value-of select="value[2]"/> + </param> + </data> + </element> +</correct> +<invalid> +<doc> +<xsl:value-of select="value[1]"/> +</doc> +</invalid> +<invalid> +<doc> +<xsl:value-of select="value[2]"/> +</doc> +</invalid> +</testCase> +</xsl:template> + +</xsl:stylesheet> |