diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2017-05-03 15:29:42 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2017-05-03 15:29:42 (GMT) |
commit | 937cfaf1a06a4a9d0c8ba119d7ce820878ff9058 (patch) | |
tree | f7b0b1bcce9ae963a0a069eafa552350eb4ee391 /libxml2/test/xsdtest | |
parent | 4b8453f0303492a1de2dcf854555f6429fac550e (diff) | |
download | blt-937cfaf1a06a4a9d0c8ba119d7ce820878ff9058.zip blt-937cfaf1a06a4a9d0c8ba119d7ce820878ff9058.tar.gz blt-937cfaf1a06a4a9d0c8ba119d7ce820878ff9058.tar.bz2 |
inital commit
Diffstat (limited to 'libxml2/test/xsdtest')
-rw-r--r-- | libxml2/test/xsdtest/xsdtest.xml | 806 | ||||
-rw-r--r-- | libxml2/test/xsdtest/xsdtest.xsl | 238 | ||||
-rw-r--r-- | libxml2/test/xsdtest/xsdtestsuite.xml | 5286 |
3 files changed, 6330 insertions, 0 deletions
diff --git a/libxml2/test/xsdtest/xsdtest.xml b/libxml2/test/xsdtest/xsdtest.xml new file mode 100644 index 0000000..b8a6de9 --- /dev/null +++ b/libxml2/test/xsdtest/xsdtest.xml @@ -0,0 +1,806 @@ +<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://ji%6d@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/libxml2/test/xsdtest/xsdtest.xsl b/libxml2/test/xsdtest/xsdtest.xsl new file mode 100644 index 0000000..d57adf2 --- /dev/null +++ b/libxml2/test/xsdtest/xsdtest.xsl @@ -0,0 +1,238 @@ +<?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"> +<testSuite> +<documentation>Datatype <xsl:value-of select="@name"/></documentation> +<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"/> +</testSuite> +</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> diff --git a/libxml2/test/xsdtest/xsdtestsuite.xml b/libxml2/test/xsdtest/xsdtestsuite.xml new file mode 100644 index 0000000..1c91cb9 --- /dev/null +++ b/libxml2/test/xsdtest/xsdtestsuite.xml @@ -0,0 +1,5286 @@ +<?xml version="1.0" encoding="utf-8"?> +<testSuite> + <testSuite> + <documentation>Datatype dateTime</documentation> + <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="dateTime"/> + </element> + </correct> + <valid> + <doc>2001-12-01T19:45:00</doc> + </valid> + <valid> + <doc>2001-12-01T19:45:00Z</doc> + </valid> + <valid> + <doc>2001-12-01T19:45:00-11:59</doc> + </valid> + <valid> + <doc>0001-01-12T00:00:00+12:00</doc> + </valid> + <invalid> + <doc>2001-12-1T19:45:00+24:00</doc> + </invalid> + <invalid> + <doc>2001-12-1T19:45:00</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="dateTime">2001-12-01T19:45:00</value> + </element> + </correct> + <valid> + <doc>2001-12-01T19:45:00.00</doc> + </valid> + <invalid> + <doc>2001-12-01T19:45:00Z</doc> + </invalid> + <invalid> + <doc>2001-12-01T19:45:00.00Z</doc> + </invalid> + <invalid> + <doc>2001-12-01T20:45:00+01:00</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="dateTime">2001-12-01T19:45:00Z</value> + </element> + </correct> + <valid> + <doc>2001-12-01T19:45:00.00Z</doc> + </valid> + <valid> + <doc>2001-12-01T20:45:00+01:00</doc> + </valid> + <invalid> + <doc>2001-12-01T19:45:00</doc> + </invalid> + <invalid> + <doc>2001-12-01T19:45:00.00</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype anyURI</documentation> + <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="anyURI"/> + </element> + </correct> + <valid> + <doc>foobar</doc> + </valid> + <valid> + <doc>http://www.example.com</doc> + </valid> + <valid> + <doc>http://ji%6d@www.example.com</doc> + </valid> + <valid> + <doc>http://www.example.co%6d</doc> + </valid> + <valid> + <doc>nosuchscheme:stuff</doc> + </valid> + <invalid> + <doc>foo$bar:stuff</doc> + </invalid> + <invalid> + <doc>f%oobar</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype integer</documentation> + <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="integer"/> + </element> + </correct> + <valid> + <doc>10</doc> + </valid> + <valid> + <doc>01</doc> + </valid> + <valid> + <doc>0123456789</doc> + </valid> + <valid> + <doc>+10</doc> + </valid> + <valid> + <doc>-10</doc> + </valid> + <invalid> + <doc>1.0</doc> + </invalid> + <invalid> + <doc>.1</doc> + </invalid> + <valid> + <doc>9999999999999999999999999999999</doc> + </valid> + <invalid> + <doc>1.</doc> + </invalid> + <invalid> + <doc>0.</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="integer">0</value> + </element> + </correct> + <valid> + <doc>+0</doc> + </valid> + <valid> + <doc>-0</doc> + </valid> + <valid> + <doc>00</doc> + </valid> + <invalid> + <doc>10</doc> + </invalid> + <invalid> + <doc>+10</doc> + </invalid> + <invalid> + <doc>+0010</doc> + </invalid> + <invalid> + <doc>010</doc> + </invalid> + <invalid> + <doc>-10</doc> + </invalid> + <invalid> + <doc>-0010</doc> + </invalid> + <invalid> + <doc>-010</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="integer">10</value> + </element> + </correct> + <valid> + <doc>+10</doc> + </valid> + <valid> + <doc>+0010</doc> + </valid> + <valid> + <doc>010</doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>00</doc> + </invalid> + <invalid> + <doc>-10</doc> + </invalid> + <invalid> + <doc>-0010</doc> + </invalid> + <invalid> + <doc>-010</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="integer">-10</value> + </element> + </correct> + <valid> + <doc>-0010</doc> + </valid> + <valid> + <doc>-010</doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>00</doc> + </invalid> + <invalid> + <doc>10</doc> + </invalid> + <invalid> + <doc>+10</doc> + </invalid> + <invalid> + <doc>+0010</doc> + </invalid> + <invalid> + <doc>010</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype duration</documentation> + <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="duration"/> + </element> + </correct> + <valid> + <doc>P1Y</doc> + </valid> + <valid> + <doc>P1Y0M2DT17H5M12S</doc> + </valid> + <valid> + <doc>-P1Y</doc> + </valid> + <valid> + <doc>P60D</doc> + </valid> + <valid> + <doc>PT24H</doc> + </valid> + <valid> + <doc>PT1.2S</doc> + </valid> + <invalid> + <doc>P24h</doc> + </invalid> + <invalid> + <doc>P24H</doc> + </invalid> + <invalid> + <doc>P1YT</doc> + </invalid> + <invalid> + <doc>P</doc> + </invalid> + <invalid> + <doc>-P</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="duration">-P6M</value> + </element> + </correct> + <invalid> + <doc>P0Y</doc> + </invalid> + <invalid> + <doc>-P0Y</doc> + </invalid> + <invalid> + <doc>P1Y</doc> + </invalid> + <invalid> + <doc>P001Y</doc> + </invalid> + <invalid> + <doc>P001Y0M</doc> + </invalid> + <invalid> + <doc>P1Y0M0DT0H0M0.0S</doc> + </invalid> + <invalid> + <doc>P6M</doc> + </invalid> + <invalid> + <doc>PT6M</doc> + </invalid> + <invalid> + <doc>PT1S</doc> + </invalid> + <invalid> + <doc>PT1.0S</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="duration">P0Y</value> + </element> + </correct> + <valid> + <doc>-P0Y</doc> + </valid> + <invalid> + <doc>-P6M</doc> + </invalid> + <invalid> + <doc>P1Y</doc> + </invalid> + <invalid> + <doc>P001Y</doc> + </invalid> + <invalid> + <doc>P001Y0M</doc> + </invalid> + <invalid> + <doc>P1Y0M0DT0H0M0.0S</doc> + </invalid> + <invalid> + <doc>P6M</doc> + </invalid> + <invalid> + <doc>PT6M</doc> + </invalid> + <invalid> + <doc>PT1S</doc> + </invalid> + <invalid> + <doc>PT1.0S</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="duration">P1Y</value> + </element> + </correct> + <valid> + <doc>P001Y</doc> + </valid> + <valid> + <doc>P001Y0M</doc> + </valid> + <valid> + <doc>P1Y0M0DT0H0M0.0S</doc> + </valid> + <invalid> + <doc>-P6M</doc> + </invalid> + <invalid> + <doc>P0Y</doc> + </invalid> + <invalid> + <doc>-P0Y</doc> + </invalid> + <invalid> + <doc>P6M</doc> + </invalid> + <invalid> + <doc>PT6M</doc> + </invalid> + <invalid> + <doc>PT1S</doc> + </invalid> + <invalid> + <doc>PT1.0S</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="duration">P6M</value> + </element> + </correct> + <invalid> + <doc>-P6M</doc> + </invalid> + <invalid> + <doc>P0Y</doc> + </invalid> + <invalid> + <doc>-P0Y</doc> + </invalid> + <invalid> + <doc>P1Y</doc> + </invalid> + <invalid> + <doc>P001Y</doc> + </invalid> + <invalid> + <doc>P001Y0M</doc> + </invalid> + <invalid> + <doc>P1Y0M0DT0H0M0.0S</doc> + </invalid> + <invalid> + <doc>PT6M</doc> + </invalid> + <invalid> + <doc>PT1S</doc> + </invalid> + <invalid> + <doc>PT1.0S</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="duration">PT6M</value> + </element> + </correct> + <invalid> + <doc>-P6M</doc> + </invalid> + <invalid> + <doc>P0Y</doc> + </invalid> + <invalid> + <doc>-P0Y</doc> + </invalid> + <invalid> + <doc>P1Y</doc> + </invalid> + <invalid> + <doc>P001Y</doc> + </invalid> + <invalid> + <doc>P001Y0M</doc> + </invalid> + <invalid> + <doc>P1Y0M0DT0H0M0.0S</doc> + </invalid> + <invalid> + <doc>P6M</doc> + </invalid> + <invalid> + <doc>PT1S</doc> + </invalid> + <invalid> + <doc>PT1.0S</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="duration">PT1S</value> + </element> + </correct> + <valid> + <doc>PT1.0S</doc> + </valid> + <invalid> + <doc>-P6M</doc> + </invalid> + <invalid> + <doc>P0Y</doc> + </invalid> + <invalid> + <doc>-P0Y</doc> + </invalid> + <invalid> + <doc>P1Y</doc> + </invalid> + <invalid> + <doc>P001Y</doc> + </invalid> + <invalid> + <doc>P001Y0M</doc> + </invalid> + <invalid> + <doc>P1Y0M0DT0H0M0.0S</doc> + </invalid> + <invalid> + <doc>P6M</doc> + </invalid> + <invalid> + <doc>PT6M</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="duration"> + <param name="minExclusive">PT1M</param> + </data> + </element> + </correct> + <valid> + <doc>PT61S</doc> + </valid> + <invalid> + <doc>PT1M</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="duration"> + <param name="minExclusive">PT61S</param> + </data> + </element> + </correct> + <invalid> + <doc>PT1M</doc> + </invalid> + <invalid> + <doc>PT61S</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="duration"> + <param name="minExclusive">PT59S</param> + </data> + </element> + </correct> + <valid> + <doc>PT1M</doc> + </valid> + <invalid> + <doc>PT59S</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="duration"> + <param name="minExclusive">PT1M</param> + </data> + </element> + </correct> + <invalid> + <doc>PT59S</doc> + </invalid> + <invalid> + <doc>PT1M</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="duration"> + <param name="minExclusive">PT60S</param> + </data> + </element> + </correct> + <invalid> + <doc>PT1M</doc> + </invalid> + <invalid> + <doc>PT60S</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="duration"> + <param name="minExclusive">PT1M</param> + </data> + </element> + </correct> + <invalid> + <doc>PT60S</doc> + </invalid> + <invalid> + <doc>PT1M</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="duration"> + <param name="minExclusive">PT1H</param> + </data> + </element> + </correct> + <valid> + <doc>PT61M</doc> + </valid> + <invalid> + <doc>PT1H</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="duration"> + <param name="minExclusive">PT61M</param> + </data> + </element> + </correct> + <invalid> + <doc>PT1H</doc> + </invalid> + <invalid> + <doc>PT61M</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="duration"> + <param name="minExclusive">PT59M</param> + </data> + </element> + </correct> + <valid> + <doc>PT1H</doc> + </valid> + <invalid> + <doc>PT59M</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="duration"> + <param name="minExclusive">PT1H</param> + </data> + </element> + </correct> + <invalid> + <doc>PT59M</doc> + </invalid> + <invalid> + <doc>PT1H</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="duration"> + <param name="minExclusive">PT60M</param> + </data> + </element> + </correct> + <invalid> + <doc>PT1H</doc> + </invalid> + <invalid> + <doc>PT60M</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="duration"> + <param name="minExclusive">PT1H</param> + </data> + </element> + </correct> + <invalid> + <doc>PT60M</doc> + </invalid> + <invalid> + <doc>PT1H</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="duration"> + <param name="minExclusive">P1D</param> + </data> + </element> + </correct> + <valid> + <doc>PT25H</doc> + </valid> + <invalid> + <doc>P1D</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="duration"> + <param name="minExclusive">PT25H</param> + </data> + </element> + </correct> + <invalid> + <doc>P1D</doc> + </invalid> + <invalid> + <doc>PT25H</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="duration"> + <param name="minExclusive">PT23H</param> + </data> + </element> + </correct> + <valid> + <doc>P1D</doc> + </valid> + <invalid> + <doc>PT23H</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="duration"> + <param name="minExclusive">P1D</param> + </data> + </element> + </correct> + <invalid> + <doc>PT23H</doc> + </invalid> + <invalid> + <doc>P1D</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="duration"> + <param name="minExclusive">P1D</param> + </data> + </element> + </correct> + <invalid> + <doc>PT24H</doc> + </invalid> + <invalid> + <doc>P1D</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="duration"> + <param name="minExclusive">PT24H</param> + </data> + </element> + </correct> + <invalid> + <doc>P1D</doc> + </invalid> + <invalid> + <doc>PT24H</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="duration"> + <param name="minExclusive">P1Y</param> + </data> + </element> + </correct> + <valid> + <doc>P13M</doc> + </valid> + <invalid> + <doc>P1Y</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="duration"> + <param name="minExclusive">P13M</param> + </data> + </element> + </correct> + <invalid> + <doc>P1Y</doc> + </invalid> + <invalid> + <doc>P13M</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="duration"> + <param name="minExclusive">P11M</param> + </data> + </element> + </correct> + <valid> + <doc>P1Y</doc> + </valid> + <invalid> + <doc>P11M</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="duration"> + <param name="minExclusive">P1Y</param> + </data> + </element> + </correct> + <invalid> + <doc>P11M</doc> + </invalid> + <invalid> + <doc>P1Y</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="duration"> + <param name="minExclusive">P12M</param> + </data> + </element> + </correct> + <invalid> + <doc>P1Y</doc> + </invalid> + <invalid> + <doc>P12M</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="duration"> + <param name="minExclusive">P1Y</param> + </data> + </element> + </correct> + <invalid> + <doc>P12M</doc> + </invalid> + <invalid> + <doc>P1Y</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="duration"> + <param name="minExclusive">P364D</param> + </data> + </element> + </correct> + <valid> + <doc>P1Y</doc> + </valid> + <invalid> + <doc>P364D</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="duration"> + <param name="minExclusive">P1Y</param> + </data> + </element> + </correct> + <invalid> + <doc>P364D</doc> + </invalid> + <invalid> + <doc>P1Y</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="duration"> + <param name="minExclusive">P1Y</param> + </data> + </element> + </correct> + <invalid> + <doc>P365D</doc> + </invalid> + <invalid> + <doc>P1Y</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="duration"> + <param name="minExclusive">P365D</param> + </data> + </element> + </correct> + <invalid> + <doc>P1Y</doc> + </invalid> + <invalid> + <doc>P365D</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="duration"> + <param name="minExclusive">P1Y</param> + </data> + </element> + </correct> + <invalid> + <doc>P366D</doc> + </invalid> + <invalid> + <doc>P1Y</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="duration"> + <param name="minExclusive">P366D</param> + </data> + </element> + </correct> + <invalid> + <doc>P1Y</doc> + </invalid> + <invalid> + <doc>P366D</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="duration"> + <param name="minExclusive">P1Y</param> + </data> + </element> + </correct> + <valid> + <doc>P367D</doc> + </valid> + <invalid> + <doc>P1Y</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="duration"> + <param name="minExclusive">P367D</param> + </data> + </element> + </correct> + <invalid> + <doc>P1Y</doc> + </invalid> + <invalid> + <doc>P367D</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="duration"> + <param name="minExclusive">P149D</param> + </data> + </element> + </correct> + <valid> + <doc>P5M</doc> + </valid> + <invalid> + <doc>P149D</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="duration"> + <param name="minExclusive">P5M</param> + </data> + </element> + </correct> + <invalid> + <doc>P149D</doc> + </invalid> + <invalid> + <doc>P5M</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="duration"> + <param name="minExclusive">P150D</param> + </data> + </element> + </correct> + <invalid> + <doc>P5M</doc> + </invalid> + <invalid> + <doc>P150D</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="duration"> + <param name="minExclusive">P5M</param> + </data> + </element> + </correct> + <invalid> + <doc>P150D</doc> + </invalid> + <invalid> + <doc>P5M</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="duration"> + <param name="minExclusive">P151D</param> + </data> + </element> + </correct> + <invalid> + <doc>P5M</doc> + </invalid> + <invalid> + <doc>P151D</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="duration"> + <param name="minExclusive">P5M</param> + </data> + </element> + </correct> + <invalid> + <doc>P151D</doc> + </invalid> + <invalid> + <doc>P5M</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="duration"> + <param name="minExclusive">P152D</param> + </data> + </element> + </correct> + <invalid> + <doc>P5M</doc> + </invalid> + <invalid> + <doc>P152D</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="duration"> + <param name="minExclusive">P5M</param> + </data> + </element> + </correct> + <invalid> + <doc>P152D</doc> + </invalid> + <invalid> + <doc>P5M</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="duration"> + <param name="minExclusive">P153D</param> + </data> + </element> + </correct> + <invalid> + <doc>P5M</doc> + </invalid> + <invalid> + <doc>P153D</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="duration"> + <param name="minExclusive">P5M</param> + </data> + </element> + </correct> + <invalid> + <doc>P153D</doc> + </invalid> + <invalid> + <doc>P5M</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="duration"> + <param name="minExclusive">P5M</param> + </data> + </element> + </correct> + <valid> + <doc>P154D</doc> + </valid> + <invalid> + <doc>P5M</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="duration"> + <param name="minExclusive">P154D</param> + </data> + </element> + </correct> + <invalid> + <doc>P5M</doc> + </invalid> + <invalid> + <doc>P154D</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="duration"> + <param name="minExclusive">P27D</param> + </data> + </element> + </correct> + <valid> + <doc>P1M</doc> + </valid> + <invalid> + <doc>P27D</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="duration"> + <param name="minExclusive">P1M</param> + </data> + </element> + </correct> + <invalid> + <doc>P27D</doc> + </invalid> + <invalid> + <doc>P1M</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="duration"> + <param name="minExclusive">P28D</param> + </data> + </element> + </correct> + <invalid> + <doc>P1M</doc> + </invalid> + <invalid> + <doc>P28D</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="duration"> + <param name="minExclusive">P1M</param> + </data> + </element> + </correct> + <invalid> + <doc>P28D</doc> + </invalid> + <invalid> + <doc>P1M</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="duration"> + <param name="minExclusive">P29D</param> + </data> + </element> + </correct> + <invalid> + <doc>P1M</doc> + </invalid> + <invalid> + <doc>P29D</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="duration"> + <param name="minExclusive">P1M</param> + </data> + </element> + </correct> + <invalid> + <doc>P29D</doc> + </invalid> + <invalid> + <doc>P1M</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="duration"> + <param name="minExclusive">P30D</param> + </data> + </element> + </correct> + <invalid> + <doc>P1M</doc> + </invalid> + <invalid> + <doc>P30D</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="duration"> + <param name="minExclusive">P1M</param> + </data> + </element> + </correct> + <invalid> + <doc>P30D</doc> + </invalid> + <invalid> + <doc>P1M</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="duration"> + <param name="minExclusive">P31D</param> + </data> + </element> + </correct> + <invalid> + <doc>P1M</doc> + </invalid> + <invalid> + <doc>P31D</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="duration"> + <param name="minExclusive">P1M</param> + </data> + </element> + </correct> + <invalid> + <doc>P31D</doc> + </invalid> + <invalid> + <doc>P1M</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="duration"> + <param name="minExclusive">P1M</param> + </data> + </element> + </correct> + <valid> + <doc>P32D</doc> + </valid> + <invalid> + <doc>P1M</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="duration"> + <param name="minExclusive">P32D</param> + </data> + </element> + </correct> + <invalid> + <doc>P1M</doc> + </invalid> + <invalid> + <doc>P32D</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype time</documentation> + <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="time"/> + </element> + </correct> + <valid> + <doc>12:45:00</doc> + </valid> + <valid> + <doc>12:45:00Z</doc> + </valid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype date</documentation> + <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="date"/> + </element> + </correct> + <valid> + <doc>1886-12-01</doc> + </valid> + <valid> + <doc>1886-12-01Z</doc> + </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="date"> + <param name="minExclusive">1066-12-31</param> + </data> + </element> + </correct> + <valid> + <doc>1900-01-01</doc> + </valid> + <invalid> + <doc>1066-12-31</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="date"> + <param name="minExclusive">1900-01-01</param> + </data> + </element> + </correct> + <invalid> + <doc>1066-12-31</doc> + </invalid> + <invalid> + <doc>1900-01-01</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="date"> + <param name="minExclusive">1900-01-01</param> + </data> + </element> + </correct> + <valid> + <doc>1900-01-02</doc> + </valid> + <invalid> + <doc>1900-01-01</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="date"> + <param name="minExclusive">1900-01-02</param> + </data> + </element> + </correct> + <invalid> + <doc>1900-01-01</doc> + </invalid> + <invalid> + <doc>1900-01-02</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype gYearMonth</documentation> + <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="gYearMonth"/> + </element> + </correct> + <valid> + <doc>1996-12</doc> + </valid> + <valid> + <doc>1996-01</doc> + </valid> + <valid> + <doc>1996-01Z</doc> + </valid> + <invalid> + <doc>1996-00</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="gYearMonth">1996-01</value> + </element> + </correct> + <invalid> + <doc>1996-01Z</doc> + </invalid> + <invalid> + <doc>1996-01+00:00</doc> + </invalid> + <invalid> + <doc>1996-01-00:00</doc> + </invalid> + <invalid> + <doc>1996-01+01:00</doc> + </invalid> + <invalid> + <doc>1996-01-01:00</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="gYearMonth">1996-01Z</value> + </element> + </correct> + <valid> + <doc>1996-01+00:00</doc> + </valid> + <valid> + <doc>1996-01-00:00</doc> + </valid> + <invalid> + <doc>1996-01</doc> + </invalid> + <invalid> + <doc>1996-01+01:00</doc> + </invalid> + <invalid> + <doc>1996-01-01:00</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="gYearMonth">1996-01+01:00</value> + </element> + </correct> + <invalid> + <doc>1996-01</doc> + </invalid> + <invalid> + <doc>1996-01Z</doc> + </invalid> + <invalid> + <doc>1996-01+00:00</doc> + </invalid> + <invalid> + <doc>1996-01-00:00</doc> + </invalid> + <invalid> + <doc>1996-01-01:00</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="gYearMonth">1996-01-01:00</value> + </element> + </correct> + <invalid> + <doc>1996-01</doc> + </invalid> + <invalid> + <doc>1996-01Z</doc> + </invalid> + <invalid> + <doc>1996-01+00:00</doc> + </invalid> + <invalid> + <doc>1996-01-00:00</doc> + </invalid> + <invalid> + <doc>1996-01+01:00</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype gYear</documentation> + <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="gYear"/> + </element> + </correct> + <valid> + <doc>2001</doc> + </valid> + <valid> + <doc>2001Z</doc> + </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="gYear"> + <param name="minExclusive">1999</param> + </data> + </element> + </correct> + <valid> + <doc>2000</doc> + </valid> + <invalid> + <doc>1999</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="gYear"> + <param name="minExclusive">2000</param> + </data> + </element> + </correct> + <invalid> + <doc>1999</doc> + </invalid> + <invalid> + <doc>2000</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="gYear"> + <param name="minExclusive">1999+07:00</param> + </data> + </element> + </correct> + <valid> + <doc>2000+07:00</doc> + </valid> + <invalid> + <doc>1999+07:00</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="gYear"> + <param name="minExclusive">2000+07:00</param> + </data> + </element> + </correct> + <invalid> + <doc>1999+07:00</doc> + </invalid> + <invalid> + <doc>2000+07:00</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype gMonthDay</documentation> + <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="gMonthDay"/> + </element> + </correct> + <valid> + <doc>--12-01</doc> + </valid> + <valid> + <doc>--12-01Z</doc> + </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="gMonthDay"> + <param name="minExclusive">--12-01</param> + </data> + </element> + </correct> + <valid> + <doc>--12-04</doc> + </valid> + <invalid> + <doc>--12-01</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="gMonthDay"> + <param name="minExclusive">--12-04</param> + </data> + </element> + </correct> + <invalid> + <doc>--12-01</doc> + </invalid> + <invalid> + <doc>--12-04</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="gMonthDay"> + <param name="minExclusive">--11-17</param> + </data> + </element> + </correct> + <valid> + <doc>--12-04</doc> + </valid> + <invalid> + <doc>--11-17</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="gMonthDay"> + <param name="minExclusive">--12-04</param> + </data> + </element> + </correct> + <invalid> + <doc>--11-17</doc> + </invalid> + <invalid> + <doc>--12-04</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype gDay</documentation> + <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="gDay"/> + </element> + </correct> + <valid> + <doc>---20</doc> + </valid> + <valid> + <doc>---20Z</doc> + </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="gDay"> + <param name="minExclusive">---01</param> + </data> + </element> + </correct> + <valid> + <doc>---31</doc> + </valid> + <invalid> + <doc>---01</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="gDay"> + <param name="minExclusive">---31</param> + </data> + </element> + </correct> + <invalid> + <doc>---01</doc> + </invalid> + <invalid> + <doc>---31</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype gMonth</documentation> + <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="gMonth"/> + </element> + </correct> + <valid> + <doc>--12</doc> + </valid> + <valid> + <doc>--01</doc> + </valid> + <valid> + <doc>--01Z</doc> + </valid> + <valid> + <doc> --12 </doc> + </valid> + <invalid> + <doc>---01</doc> + </invalid> + <invalid> + <doc>--00</doc> + </invalid> + <invalid> + <doc>--13</doc> + </invalid> + <invalid> + <doc>- -13</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="gMonth"> + <param name="minExclusive">--01</param> + </data> + </element> + </correct> + <valid> + <doc>--12</doc> + </valid> + <invalid> + <doc>--01</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="gMonth"> + <param name="minExclusive">--12</param> + </data> + </element> + </correct> + <invalid> + <doc>--01</doc> + </invalid> + <invalid> + <doc>--12</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="gMonth"> + <param name="minExclusive">--01</param> + </data> + </element> + </correct> + <valid> + <doc>--02</doc> + </valid> + <invalid> + <doc>--01</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="gMonth"> + <param name="minExclusive">--02</param> + </data> + </element> + </correct> + <invalid> + <doc>--01</doc> + </invalid> + <invalid> + <doc>--02</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype boolean</documentation> + <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="boolean"/> + </element> + </correct> + <valid> + <doc>true</doc> + </valid> + <valid> + <doc>false</doc> + </valid> + <valid> + <doc>0</doc> + </valid> + <valid> + <doc>1</doc> + </valid> + <invalid> + <doc>00</doc> + </invalid> + <invalid> + <doc>00</doc> + </invalid> + <invalid> + <doc>01</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="boolean">true</value> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <invalid> + <doc>false</doc> + </invalid> + <invalid> + <doc>0</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="boolean">false</value> + </element> + </correct> + <valid> + <doc>0</doc> + </valid> + <invalid> + <doc>true</doc> + </invalid> + <invalid> + <doc>1</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype base64Binary</documentation> + <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="base64Binary"/> + </element> + </correct> + <valid> + <doc>AAAA</doc> + </valid> + <valid> + <doc>abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR +STUV WXYZ 0123 4567 89+/</doc> + </valid> + <valid> + <doc>BA==</doc> + </valid> + <valid> + <doc></doc> + </valid> + <valid> + <doc>BA==</doc> + </valid> + <valid> + <doc>BQ==</doc> + </valid> + <valid> + <doc>Bg==</doc> + </valid> + <valid> + <doc>Bw==</doc> + </valid> + <valid> + <doc>BBA=</doc> + </valid> + <valid> + <doc>BBA=</doc> + </valid> + <valid> + <doc>BBE=</doc> + </valid> + <valid> + <doc>BBI=</doc> + </valid> + <valid> + <doc>BBM=</doc> + </valid> + <valid> + <doc>BBQ=</doc> + </valid> + <valid> + <doc>BBU=</doc> + </valid> + <valid> + <doc>BBY=</doc> + </valid> + <valid> + <doc>BBc=</doc> + </valid> + <valid> + <doc>BBg=</doc> + </valid> + <valid> + <doc>BBk=</doc> + </valid> + <valid> + <doc>BBo=</doc> + </valid> + <valid> + <doc>BBs=</doc> + </valid> + <valid> + <doc>BBw=</doc> + </valid> + <valid> + <doc>BB0=</doc> + </valid> + <valid> + <doc>BB4=</doc> + </valid> + <valid> + <doc>BB8=</doc> + </valid> + <invalid> + <doc>====</doc> + </invalid> + <invalid> + <doc>BB==</doc> + </invalid> + <invalid> + <doc>BBB=</doc> + </invalid> + <invalid> + <doc>B===</doc> + </invalid> + <invalid> + <doc>B</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="base64Binary">deadbeef</value> + </element> + </correct> + <valid> + <doc>d + e a d +b eef </doc> + </valid> + <invalid> + <doc>DEADBEEF</doc> + </invalid> + <invalid> + <doc>D + E A D +B EEF </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="base64Binary">DEADBEEF</value> + </element> + </correct> + <valid> + <doc>D + E A D +B EEF </doc> + </valid> + <invalid> + <doc>deadbeef</doc> + </invalid> + <invalid> + <doc>d + e a d +b eef </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="base64Binary"> + <param name="length">0</param> + </data> + </element> + </correct> + <valid> + <doc></doc> + </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="base64Binary"> + <param name="length">1</param> + </data> + </element> + </correct> + <invalid> + <doc></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="base64Binary"> + <param name="length">6</param> + </data> + </element> + </correct> + <valid> + <doc>deadbeef</doc> + </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="base64Binary"> + <param name="length">7</param> + </data> + </element> + </correct> + <invalid> + <doc>deadbeef</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="base64Binary"> + <param name="length">5</param> + </data> + </element> + </correct> + <invalid> + <doc>deadbeef</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="base64Binary"> + <param name="length">1</param> + </data> + </element> + </correct> + <valid> + <doc>BA==</doc> + </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="base64Binary"> + <param name="length">2</param> + </data> + </element> + </correct> + <invalid> + <doc>BA==</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="base64Binary"> + <param name="length">0</param> + </data> + </element> + </correct> + <invalid> + <doc>BA==</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="base64Binary"> + <param name="length">2</param> + </data> + </element> + </correct> + <valid> + <doc>BBA=</doc> + </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="base64Binary"> + <param name="length">3</param> + </data> + </element> + </correct> + <invalid> + <doc>BBA=</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="base64Binary"> + <param name="length">1</param> + </data> + </element> + </correct> + <invalid> + <doc>BBA=</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="base64Binary"> + <param name="length">3</param> + </data> + </element> + </correct> + <valid> + <doc>dead</doc> + </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="base64Binary"> + <param name="length">4</param> + </data> + </element> + </correct> + <invalid> + <doc>dead</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="base64Binary"> + <param name="length">2</param> + </data> + </element> + </correct> + <invalid> + <doc>dead</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="base64Binary"> + <param name="length">4</param> + </data> + </element> + </correct> + <valid> + <doc>deadBA==</doc> + </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="base64Binary"> + <param name="length">5</param> + </data> + </element> + </correct> + <invalid> + <doc>deadBA==</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="base64Binary"> + <param name="length">3</param> + </data> + </element> + </correct> + <invalid> + <doc>deadBA==</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype hexBinary</documentation> + <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="hexBinary"/> + </element> + </correct> + <valid> + <doc>deadbeef</doc> + </valid> + <valid> + <doc></doc> + </valid> + <valid> + <doc>0123456789ABCDEFabcdef</doc> + </valid> + <invalid> + <doc>00 00</doc> + </invalid> + <invalid> + <doc>00.00</doc> + </invalid> + <invalid> + <doc>0G</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="hexBinary">00</value> + </element> + </correct> + <valid> + <doc> + 00 + </doc> + </valid> + <invalid> + <doc>01</doc> + </invalid> + <invalid> + <doc>10</doc> + </invalid> + <invalid> + <doc>0a</doc> + </invalid> + <invalid> + <doc>0A</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="hexBinary">01</value> + </element> + </correct> + <invalid> + <doc>00</doc> + </invalid> + <invalid> + <doc> + 00 + </doc> + </invalid> + <invalid> + <doc>10</doc> + </invalid> + <invalid> + <doc>0a</doc> + </invalid> + <invalid> + <doc>0A</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="hexBinary">10</value> + </element> + </correct> + <invalid> + <doc>00</doc> + </invalid> + <invalid> + <doc> + 00 + </doc> + </invalid> + <invalid> + <doc>01</doc> + </invalid> + <invalid> + <doc>0a</doc> + </invalid> + <invalid> + <doc>0A</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="hexBinary">0a</value> + </element> + </correct> + <valid> + <doc>0A</doc> + </valid> + <invalid> + <doc>00</doc> + </invalid> + <invalid> + <doc> + 00 + </doc> + </invalid> + <invalid> + <doc>01</doc> + </invalid> + <invalid> + <doc>10</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="hexBinary"> + <param name="length">0</param> + </data> + </element> + </correct> + <valid> + <doc></doc> + </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="hexBinary"> + <param name="length">1</param> + </data> + </element> + </correct> + <invalid> + <doc></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="hexBinary"> + <param name="length">1</param> + </data> + </element> + </correct> + <valid> + <doc>00</doc> + </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="hexBinary"> + <param name="length">2</param> + </data> + </element> + </correct> + <invalid> + <doc>00</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="hexBinary"> + <param name="length">0</param> + </data> + </element> + </correct> + <invalid> + <doc>00</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="hexBinary"> + <param name="length">2</param> + </data> + </element> + </correct> + <valid> + <doc>0000</doc> + </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="hexBinary"> + <param name="length">3</param> + </data> + </element> + </correct> + <invalid> + <doc>0000</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="hexBinary"> + <param name="length">1</param> + </data> + </element> + </correct> + <invalid> + <doc>0000</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="hexBinary"> + <param name="length">2</param> + </data> + </element> + </correct> + <valid> + <doc> 0000 </doc> + </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="hexBinary"> + <param name="length">3</param> + </data> + </element> + </correct> + <invalid> + <doc> 0000 </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="hexBinary"> + <param name="length">1</param> + </data> + </element> + </correct> + <invalid> + <doc> 0000 </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="hexBinary"> + <param name="length">2</param> + </data> + </element> + </correct> + <valid> + <doc>AAAA</doc> + </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="hexBinary"> + <param name="length">3</param> + </data> + </element> + </correct> + <invalid> + <doc>AAAA</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="hexBinary"> + <param name="length">1</param> + </data> + </element> + </correct> + <invalid> + <doc>AAAA</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype float</documentation> + <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="float"/> + </element> + </correct> + <valid> + <doc>1.0</doc> + </valid> + <valid> + <doc>1.</doc> + </valid> + <valid> + <doc>.1</doc> + </valid> + <invalid> + <doc>- 1</doc> + </invalid> + <invalid> + <doc>1 .0</doc> + </invalid> + <invalid> + <doc>+INF</doc> + </invalid> + <invalid> + <doc>+NaN</doc> + </invalid> + <invalid> + <doc>-NaN</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="float">0</value> + </element> + </correct> + <valid> + <doc>-0</doc> + </valid> + <valid> + <doc>+0</doc> + </valid> + <valid> + <doc> 0 </doc> + </valid> + <valid> + <doc> 0. </doc> + </valid> + <valid> + <doc> .0 </doc> + </valid> + <valid> + <doc> 0.0 </doc> + </valid> + <valid> + <doc> 0e0 </doc> + </valid> + <valid> + <doc> 0E0 </doc> + </valid> + <valid> + <doc> 0E+0 </doc> + </valid> + <valid> + <doc> 0E-0 </doc> + </valid> + <invalid> + <doc>1E0</doc> + </invalid> + <invalid> + <doc>0.1E1</doc> + </invalid> + <invalid> + <doc>10E-1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>INF</doc> + </invalid> + <invalid> + <doc>INF </doc> + </invalid> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-INF </doc> + </invalid> + <invalid> + <doc>NaN</doc> + </invalid> + <invalid> + <doc> NaN </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="float">1E0</value> + </element> + </correct> + <valid> + <doc>0.1E1</doc> + </valid> + <valid> + <doc>10E-1</doc> + </valid> + <valid> + <doc>+1</doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc> 0 </doc> + </invalid> + <invalid> + <doc> 0. </doc> + </invalid> + <invalid> + <doc> .0 </doc> + </invalid> + <invalid> + <doc> 0.0 </doc> + </invalid> + <invalid> + <doc> 0e0 </doc> + </invalid> + <invalid> + <doc> 0E0 </doc> + </invalid> + <invalid> + <doc> 0E+0 </doc> + </invalid> + <invalid> + <doc> 0E-0 </doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>INF</doc> + </invalid> + <invalid> + <doc>INF </doc> + </invalid> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-INF </doc> + </invalid> + <invalid> + <doc>NaN</doc> + </invalid> + <invalid> + <doc> NaN </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="float">-1</value> + </element> + </correct> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc> 0 </doc> + </invalid> + <invalid> + <doc> 0. </doc> + </invalid> + <invalid> + <doc> .0 </doc> + </invalid> + <invalid> + <doc> 0.0 </doc> + </invalid> + <invalid> + <doc> 0e0 </doc> + </invalid> + <invalid> + <doc> 0E0 </doc> + </invalid> + <invalid> + <doc> 0E+0 </doc> + </invalid> + <invalid> + <doc> 0E-0 </doc> + </invalid> + <invalid> + <doc>1E0</doc> + </invalid> + <invalid> + <doc>0.1E1</doc> + </invalid> + <invalid> + <doc>10E-1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>INF</doc> + </invalid> + <invalid> + <doc>INF </doc> + </invalid> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-INF </doc> + </invalid> + <invalid> + <doc>NaN</doc> + </invalid> + <invalid> + <doc> NaN </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="float">INF</value> + </element> + </correct> + <valid> + <doc>INF </doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc> 0 </doc> + </invalid> + <invalid> + <doc> 0. </doc> + </invalid> + <invalid> + <doc> .0 </doc> + </invalid> + <invalid> + <doc> 0.0 </doc> + </invalid> + <invalid> + <doc> 0e0 </doc> + </invalid> + <invalid> + <doc> 0E0 </doc> + </invalid> + <invalid> + <doc> 0E+0 </doc> + </invalid> + <invalid> + <doc> 0E-0 </doc> + </invalid> + <invalid> + <doc>1E0</doc> + </invalid> + <invalid> + <doc>0.1E1</doc> + </invalid> + <invalid> + <doc>10E-1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-INF </doc> + </invalid> + <invalid> + <doc>NaN</doc> + </invalid> + <invalid> + <doc> NaN </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="float">-INF</value> + </element> + </correct> + <valid> + <doc>-INF </doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc> 0 </doc> + </invalid> + <invalid> + <doc> 0. </doc> + </invalid> + <invalid> + <doc> .0 </doc> + </invalid> + <invalid> + <doc> 0.0 </doc> + </invalid> + <invalid> + <doc> 0e0 </doc> + </invalid> + <invalid> + <doc> 0E0 </doc> + </invalid> + <invalid> + <doc> 0E+0 </doc> + </invalid> + <invalid> + <doc> 0E-0 </doc> + </invalid> + <invalid> + <doc>1E0</doc> + </invalid> + <invalid> + <doc>0.1E1</doc> + </invalid> + <invalid> + <doc>10E-1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>INF</doc> + </invalid> + <invalid> + <doc>INF </doc> + </invalid> + <invalid> + <doc>NaN</doc> + </invalid> + <invalid> + <doc> NaN </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="float">NaN</value> + </element> + </correct> + <valid> + <doc> NaN </doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc> 0 </doc> + </invalid> + <invalid> + <doc> 0. </doc> + </invalid> + <invalid> + <doc> .0 </doc> + </invalid> + <invalid> + <doc> 0.0 </doc> + </invalid> + <invalid> + <doc> 0e0 </doc> + </invalid> + <invalid> + <doc> 0E0 </doc> + </invalid> + <invalid> + <doc> 0E+0 </doc> + </invalid> + <invalid> + <doc> 0E-0 </doc> + </invalid> + <invalid> + <doc>1E0</doc> + </invalid> + <invalid> + <doc>0.1E1</doc> + </invalid> + <invalid> + <doc>10E-1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>INF</doc> + </invalid> + <invalid> + <doc>INF </doc> + </invalid> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-INF </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="float"> + <param name="minExclusive">-INF</param> + </data> + </element> + </correct> + <valid> + <doc>-1000</doc> + </valid> + <invalid> + <doc>-INF</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="float"> + <param name="minExclusive">-1000</param> + </data> + </element> + </correct> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-1000</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="float"> + <param name="minExclusive">1000</param> + </data> + </element> + </correct> + <valid> + <doc>INF</doc> + </valid> + <invalid> + <doc>1000</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="float"> + <param name="minExclusive">INF</param> + </data> + </element> + </correct> + <invalid> + <doc>1000</doc> + </invalid> + <invalid> + <doc>INF</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="float"> + <param name="minExclusive">-1</param> + </data> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <invalid> + <doc>-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="float"> + <param name="minExclusive">1</param> + </data> + </element> + </correct> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>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="float"> + <param name="minExclusive">0</param> + </data> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <invalid> + <doc>0</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="float"> + <param name="minExclusive">1</param> + </data> + </element> + </correct> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>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="float"> + <param name="minExclusive">-1</param> + </data> + </element> + </correct> + <valid> + <doc>0</doc> + </valid> + <invalid> + <doc>-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="float"> + <param name="minExclusive">0</param> + </data> + </element> + </correct> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>0</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype double</documentation> + <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="double"/> + </element> + </correct> + <valid> + <doc>1.0</doc> + </valid> + <valid> + <doc>1.</doc> + </valid> + <valid> + <doc>.1</doc> + </valid> + <invalid> + <doc>- 1</doc> + </invalid> + <invalid> + <doc>1 .0</doc> + </invalid> + <invalid> + <doc>+INF</doc> + </invalid> + <invalid> + <doc>+NaN</doc> + </invalid> + <invalid> + <doc>-NaN</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="double">0</value> + </element> + </correct> + <valid> + <doc>-0</doc> + </valid> + <valid> + <doc>+0</doc> + </valid> + <valid> + <doc> 0 </doc> + </valid> + <valid> + <doc> 0. </doc> + </valid> + <valid> + <doc> .0 </doc> + </valid> + <valid> + <doc> 0.0 </doc> + </valid> + <valid> + <doc> 0e0 </doc> + </valid> + <valid> + <doc> 0E0 </doc> + </valid> + <valid> + <doc> 0E+0 </doc> + </valid> + <valid> + <doc> 0E-0 </doc> + </valid> + <invalid> + <doc>1E0</doc> + </invalid> + <invalid> + <doc>0.1E1</doc> + </invalid> + <invalid> + <doc>10E-1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>INF</doc> + </invalid> + <invalid> + <doc>INF </doc> + </invalid> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-INF </doc> + </invalid> + <invalid> + <doc>NaN</doc> + </invalid> + <invalid> + <doc> NaN </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="double">1E0</value> + </element> + </correct> + <valid> + <doc>0.1E1</doc> + </valid> + <valid> + <doc>10E-1</doc> + </valid> + <valid> + <doc>+1</doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc> 0 </doc> + </invalid> + <invalid> + <doc> 0. </doc> + </invalid> + <invalid> + <doc> .0 </doc> + </invalid> + <invalid> + <doc> 0.0 </doc> + </invalid> + <invalid> + <doc> 0e0 </doc> + </invalid> + <invalid> + <doc> 0E0 </doc> + </invalid> + <invalid> + <doc> 0E+0 </doc> + </invalid> + <invalid> + <doc> 0E-0 </doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>INF</doc> + </invalid> + <invalid> + <doc>INF </doc> + </invalid> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-INF </doc> + </invalid> + <invalid> + <doc>NaN</doc> + </invalid> + <invalid> + <doc> NaN </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="double">-1</value> + </element> + </correct> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc> 0 </doc> + </invalid> + <invalid> + <doc> 0. </doc> + </invalid> + <invalid> + <doc> .0 </doc> + </invalid> + <invalid> + <doc> 0.0 </doc> + </invalid> + <invalid> + <doc> 0e0 </doc> + </invalid> + <invalid> + <doc> 0E0 </doc> + </invalid> + <invalid> + <doc> 0E+0 </doc> + </invalid> + <invalid> + <doc> 0E-0 </doc> + </invalid> + <invalid> + <doc>1E0</doc> + </invalid> + <invalid> + <doc>0.1E1</doc> + </invalid> + <invalid> + <doc>10E-1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>INF</doc> + </invalid> + <invalid> + <doc>INF </doc> + </invalid> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-INF </doc> + </invalid> + <invalid> + <doc>NaN</doc> + </invalid> + <invalid> + <doc> NaN </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="double">INF</value> + </element> + </correct> + <valid> + <doc>INF </doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc> 0 </doc> + </invalid> + <invalid> + <doc> 0. </doc> + </invalid> + <invalid> + <doc> .0 </doc> + </invalid> + <invalid> + <doc> 0.0 </doc> + </invalid> + <invalid> + <doc> 0e0 </doc> + </invalid> + <invalid> + <doc> 0E0 </doc> + </invalid> + <invalid> + <doc> 0E+0 </doc> + </invalid> + <invalid> + <doc> 0E-0 </doc> + </invalid> + <invalid> + <doc>1E0</doc> + </invalid> + <invalid> + <doc>0.1E1</doc> + </invalid> + <invalid> + <doc>10E-1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-INF </doc> + </invalid> + <invalid> + <doc>NaN</doc> + </invalid> + <invalid> + <doc> NaN </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="double">-INF</value> + </element> + </correct> + <valid> + <doc>-INF </doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc> 0 </doc> + </invalid> + <invalid> + <doc> 0. </doc> + </invalid> + <invalid> + <doc> .0 </doc> + </invalid> + <invalid> + <doc> 0.0 </doc> + </invalid> + <invalid> + <doc> 0e0 </doc> + </invalid> + <invalid> + <doc> 0E0 </doc> + </invalid> + <invalid> + <doc> 0E+0 </doc> + </invalid> + <invalid> + <doc> 0E-0 </doc> + </invalid> + <invalid> + <doc>1E0</doc> + </invalid> + <invalid> + <doc>0.1E1</doc> + </invalid> + <invalid> + <doc>10E-1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>INF</doc> + </invalid> + <invalid> + <doc>INF </doc> + </invalid> + <invalid> + <doc>NaN</doc> + </invalid> + <invalid> + <doc> NaN </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="double">NaN</value> + </element> + </correct> + <valid> + <doc> NaN </doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-0</doc> + </invalid> + <invalid> + <doc>+0</doc> + </invalid> + <invalid> + <doc> 0 </doc> + </invalid> + <invalid> + <doc> 0. </doc> + </invalid> + <invalid> + <doc> .0 </doc> + </invalid> + <invalid> + <doc> 0.0 </doc> + </invalid> + <invalid> + <doc> 0e0 </doc> + </invalid> + <invalid> + <doc> 0E0 </doc> + </invalid> + <invalid> + <doc> 0E+0 </doc> + </invalid> + <invalid> + <doc> 0E-0 </doc> + </invalid> + <invalid> + <doc>1E0</doc> + </invalid> + <invalid> + <doc>0.1E1</doc> + </invalid> + <invalid> + <doc>10E-1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>INF</doc> + </invalid> + <invalid> + <doc>INF </doc> + </invalid> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-INF </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="double"> + <param name="minExclusive">-INF</param> + </data> + </element> + </correct> + <valid> + <doc>-1000</doc> + </valid> + <invalid> + <doc>-INF</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="double"> + <param name="minExclusive">-1000</param> + </data> + </element> + </correct> + <invalid> + <doc>-INF</doc> + </invalid> + <invalid> + <doc>-1000</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="double"> + <param name="minExclusive">1000</param> + </data> + </element> + </correct> + <valid> + <doc>INF</doc> + </valid> + <invalid> + <doc>1000</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="double"> + <param name="minExclusive">INF</param> + </data> + </element> + </correct> + <invalid> + <doc>1000</doc> + </invalid> + <invalid> + <doc>INF</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="double"> + <param name="minExclusive">-1</param> + </data> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <invalid> + <doc>-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="double"> + <param name="minExclusive">1</param> + </data> + </element> + </correct> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>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="double"> + <param name="minExclusive">0</param> + </data> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <invalid> + <doc>0</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="double"> + <param name="minExclusive">1</param> + </data> + </element> + </correct> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>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="double"> + <param name="minExclusive">-1</param> + </data> + </element> + </correct> + <valid> + <doc>0</doc> + </valid> + <invalid> + <doc>-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="double"> + <param name="minExclusive">0</param> + </data> + </element> + </correct> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc>0</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype QName</documentation> + <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="QName"/> + </element> + </correct> + <valid> + <doc>foo</doc> + </valid> + <valid> + <doc xmlns:x="http://www.example.com">x:foo</doc> + </valid> + <invalid> + <doc>y:foo</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">foo</value> + </element> + </correct> + <valid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc> + </valid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">x:foo</value> + </element> + </correct> + <valid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc> + </valid> + <valid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc> + </valid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">x:bar</value> + </element> + </correct> + <valid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc> + </valid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">y:foo</value> + </element> + </correct> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">y:bar</value> + </element> + </correct> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc> + </invalid> + <invalid> + <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype NOTATION</documentation> + <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="NOTATION"/> + </element> + </correct> + <valid> + <doc>foo</doc> + </valid> + <valid> + <doc xmlns:x="http://www.example.com">x:foo</doc> + </valid> + <invalid> + <doc>y:foo</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype decimal</documentation> + <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="decimal"/> + </element> + </correct> + <valid> + <doc>1.0</doc> + </valid> + <valid> + <doc>1.</doc> + </valid> + <valid> + <doc>.1</doc> + </valid> + <valid> + <doc>+1.0</doc> + </valid> + <valid> + <doc>-1.0</doc> + </valid> + <valid> + <doc> 1 </doc> + </valid> + <valid> + <doc>99999999999999999999999999999999999999999999999999999999999999999</doc> + </valid> + <valid> + <doc>-99999999999999999999999999999999999999999999999999999999999999999</doc> + </valid> + <invalid> + <doc>junk</doc> + </invalid> + <invalid> + <doc>--1</doc> + </invalid> + <invalid> + <doc>++1</doc> + </invalid> + <invalid> + <doc>+-1</doc> + </invalid> + <invalid> + <doc>1.2.</doc> + </invalid> + <invalid> + <doc>..1</doc> + </invalid> + <invalid> + <doc>1..</doc> + </invalid> + <invalid> + <doc>1 .2</doc> + </invalid> + <invalid> + <doc>1+</doc> + </invalid> + <invalid> + <doc>+ 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="decimal"> + <param name="minExclusive">0</param> + </data> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <invalid> + <doc>0</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="decimal"> + <param name="minExclusive">1</param> + </data> + </element> + </correct> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>1</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype nonPositiveInteger</documentation> + <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="nonPositiveInteger"/> + </element> + </correct> + <valid> + <doc>-1</doc> + </valid> + <valid> + <doc>0</doc> + </valid> + <valid> + <doc>-0</doc> + </valid> + <invalid> + <doc>1</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype nonNegativeInteger</documentation> + <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="nonNegativeInteger"/> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <valid> + <doc>0</doc> + </valid> + <valid> + <doc>+1</doc> + </valid> + <valid> + <doc>+0</doc> + </valid> + <invalid> + <doc>-1</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype positiveInteger</documentation> + <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="positiveInteger"/> + </element> + </correct> + <valid> + <doc>+1</doc> + </valid> + <valid> + <doc>1</doc> + </valid> + <invalid> + <doc>0</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype negativeInteger</documentation> + <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="negativeInteger"/> + </element> + </correct> + <valid> + <doc>-1</doc> + </valid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc>0</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype long</documentation> + <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="long"/> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <valid> + <doc>+1</doc> + </valid> + <valid> + <doc>0</doc> + </valid> + <valid> + <doc> 0 </doc> + </valid> + <invalid> + <doc>1 2</doc> + </invalid> + <invalid> + <doc>9999999999999999999999999999999999999999999999999999999999999999999999999</doc> + </invalid> + <valid> + <doc>9223372036854775807</doc> + </valid> + <valid> + <doc>-9223372036854775808</doc> + </valid> + <invalid> + <doc>9223372036854775808</doc> + </invalid> + <invalid> + <doc>-9223372036854775809</doc> + </invalid> + <invalid> + <doc></doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype int</documentation> + <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="int"/> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <valid> + <doc>01</doc> + </valid> + <valid> + <doc> 1 </doc> + </valid> + <valid> + <doc>2147483647</doc> + </valid> + <valid> + <doc>-2147483648</doc> + </valid> + <invalid> + <doc>2147483648</doc> + </invalid> + <invalid> + <doc>-2147483649</doc> + </invalid> + <invalid> + <doc>9999999999999999999999999999999999999999999999999999999999999999999999999</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="int">1</value> + </element> + </correct> + <valid> + <doc>+1</doc> + </valid> + <valid> + <doc> 1 </doc> + </valid> + <valid> + <doc>001</doc> + </valid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc> -1 </doc> + </invalid> + <invalid> + <doc>-001</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="int">-1</value> + </element> + </correct> + <valid> + <doc> -1 </doc> + </valid> + <valid> + <doc>-001</doc> + </valid> + <invalid> + <doc>1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc> 1 </doc> + </invalid> + <invalid> + <doc>001</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype short</documentation> + <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="short"/> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <valid> + <doc>32767</doc> + </valid> + <valid> + <doc>-32768</doc> + </valid> + <invalid> + <doc>32768</doc> + </invalid> + <invalid> + <doc>-32769</doc> + </invalid> + <invalid> + <doc>9999999999999999999999999999999999999999999999999999999999999999999999999</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="short">1</value> + </element> + </correct> + <valid> + <doc>+1</doc> + </valid> + <valid> + <doc> 1 </doc> + </valid> + <valid> + <doc>001</doc> + </valid> + <invalid> + <doc>-1</doc> + </invalid> + <invalid> + <doc> -1 </doc> + </invalid> + <invalid> + <doc>-001</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="short">-1</value> + </element> + </correct> + <valid> + <doc> -1 </doc> + </valid> + <valid> + <doc>-001</doc> + </valid> + <invalid> + <doc>1</doc> + </invalid> + <invalid> + <doc>+1</doc> + </invalid> + <invalid> + <doc> 1 </doc> + </invalid> + <invalid> + <doc>001</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype byte</documentation> + <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="byte"/> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <valid> + <doc>127</doc> + </valid> + <valid> + <doc>-128</doc> + </valid> + <invalid> + <doc>128</doc> + </invalid> + <invalid> + <doc>-129</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype unsignedLong</documentation> + <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="unsignedLong"/> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <valid> + <doc>+1</doc> + </valid> + <invalid> + <doc>-1</doc> + </invalid> + <valid> + <doc>0</doc> + </valid> + <valid> + <doc>18446744073709551615</doc> + </valid> + <invalid> + <doc>18446744073709551616</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype unsignedInt</documentation> + <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="unsignedInt"/> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <valid> + <doc>+1</doc> + </valid> + <valid> + <doc>0</doc> + </valid> + <valid> + <doc>4294967295</doc> + </valid> + <invalid> + <doc>4294967296</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype unsignedShort</documentation> + <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="unsignedShort"/> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <valid> + <doc>+1</doc> + </valid> + <valid> + <doc>0</doc> + </valid> + <valid> + <doc>65535</doc> + </valid> + <invalid> + <doc>65536</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype unsignedByte</documentation> + <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="unsignedByte"/> + </element> + </correct> + <valid> + <doc>1</doc> + </valid> + <valid> + <doc>+1</doc> + </valid> + <valid> + <doc>0</doc> + </valid> + <valid> + <doc>255</doc> + </valid> + <invalid> + <doc>256</doc> + </invalid> + <invalid> + <doc>-1</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype string</documentation> + <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="string"/> + </element> + </correct> + <valid> + <doc>any thing at all!</doc> + </valid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype normalizedString</documentation> + <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="normalizedString"/> + </element> + </correct> + <valid> + <doc>any thing at all!</doc> + </valid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype token</documentation> + <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="token"/> + </element> + </correct> + <valid> + <doc>any thing at all!</doc> + </valid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="token"></value> + </element> + </correct> + <valid> + <doc> </doc> + </valid> + <valid> + <doc> + </doc> + </valid> + <invalid> + <doc>x </doc> + </invalid> + <invalid> + <doc>x +</doc> + </invalid> + <invalid> + <doc>x </doc> + </invalid> + <invalid> + <doc>x </doc> + </invalid> + <invalid> + <doc> x</doc> + </invalid> + <invalid> + <doc> +x</doc> + </invalid> + <invalid> + <doc> x</doc> + </invalid> + <invalid> + <doc> x</doc> + </invalid> + <invalid> + <doc> + x + </doc> + </invalid> + <invalid> + <doc>x y </doc> + </invalid> + <invalid> + <doc>x y +</doc> + </invalid> + <invalid> + <doc>x y </doc> + </invalid> + <invalid> + <doc>x y </doc> + </invalid> + <invalid> + <doc>x y</doc> + </invalid> + <invalid> + <doc>x +y</doc> + </invalid> + <invalid> + <doc>x y</doc> + </invalid> + <invalid> + <doc>x y</doc> + </invalid> + <invalid> + <doc> x y</doc> + </invalid> + <invalid> + <doc> +x y</doc> + </invalid> + <invalid> + <doc> x y</doc> + </invalid> + <invalid> + <doc> x y</doc> + </invalid> + <invalid> + <doc> + x + y + </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="token">x </value> + </element> + </correct> + <valid> + <doc>x +</doc> + </valid> + <valid> + <doc>x </doc> + </valid> + <valid> + <doc>x </doc> + </valid> + <valid> + <doc> x</doc> + </valid> + <valid> + <doc> +x</doc> + </valid> + <valid> + <doc> x</doc> + </valid> + <valid> + <doc> x</doc> + </valid> + <valid> + <doc> + x + </doc> + </valid> + <invalid> + <doc></doc> + </invalid> + <invalid> + <doc> </doc> + </invalid> + <invalid> + <doc> + </doc> + </invalid> + <invalid> + <doc>x y </doc> + </invalid> + <invalid> + <doc>x y +</doc> + </invalid> + <invalid> + <doc>x y </doc> + </invalid> + <invalid> + <doc>x y </doc> + </invalid> + <invalid> + <doc>x y</doc> + </invalid> + <invalid> + <doc>x +y</doc> + </invalid> + <invalid> + <doc>x y</doc> + </invalid> + <invalid> + <doc>x y</doc> + </invalid> + <invalid> + <doc> x y</doc> + </invalid> + <invalid> + <doc> +x y</doc> + </invalid> + <invalid> + <doc> x y</doc> + </invalid> + <invalid> + <doc> x y</doc> + </invalid> + <invalid> + <doc> + x + y + </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="token">x y </value> + </element> + </correct> + <valid> + <doc>x y +</doc> + </valid> + <valid> + <doc>x y </doc> + </valid> + <valid> + <doc>x y </doc> + </valid> + <valid> + <doc>x y</doc> + </valid> + <valid> + <doc>x +y</doc> + </valid> + <valid> + <doc>x y</doc> + </valid> + <valid> + <doc>x y</doc> + </valid> + <valid> + <doc> x y</doc> + </valid> + <valid> + <doc> +x y</doc> + </valid> + <valid> + <doc> x y</doc> + </valid> + <valid> + <doc> x y</doc> + </valid> + <valid> + <doc> + x + y + </doc> + </valid> + <invalid> + <doc></doc> + </invalid> + <invalid> + <doc> </doc> + </invalid> + <invalid> + <doc> + </doc> + </invalid> + <invalid> + <doc>x </doc> + </invalid> + <invalid> + <doc>x +</doc> + </invalid> + <invalid> + <doc>x </doc> + </invalid> + <invalid> + <doc>x </doc> + </invalid> + <invalid> + <doc> x</doc> + </invalid> + <invalid> + <doc> +x</doc> + </invalid> + <invalid> + <doc> x</doc> + </invalid> + <invalid> + <doc> x</doc> + </invalid> + <invalid> + <doc> + x + </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="token"> + <param name="length">0</param> + </data> + </element> + </correct> + <valid> + <doc></doc> + </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="token"> + <param name="length">1</param> + </data> + </element> + </correct> + <invalid> + <doc></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="token"> + <param name="length">1</param> + </data> + </element> + </correct> + <valid> + <doc>x</doc> + </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="token"> + <param name="length">2</param> + </data> + </element> + </correct> + <invalid> + <doc>x</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="token"> + <param name="length">0</param> + </data> + </element> + </correct> + <invalid> + <doc>x</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="token"> + <param name="length">1</param> + </data> + </element> + </correct> + <valid> + <doc> x </doc> + </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="token"> + <param name="length">2</param> + </data> + </element> + </correct> + <invalid> + <doc> x </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="token"> + <param name="length">0</param> + </data> + </element> + </correct> + <invalid> + <doc> x </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="token"> + <param name="length">1</param> + </data> + </element> + </correct> + <valid> + <doc>𐠀</doc> + </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="token"> + <param name="length">2</param> + </data> + </element> + </correct> + <invalid> + <doc>𐠀</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="token"> + <param name="length">0</param> + </data> + </element> + </correct> + <invalid> + <doc>𐠀</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype language</documentation> + <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="language"/> + </element> + </correct> + <valid> + <doc>en</doc> + </valid> + <valid> + <doc>en-UK</doc> + </valid> + <valid> + <doc>i-cherokee</doc> + </valid> + <valid> + <doc>x-klingon</doc> + </valid> + <valid> + <doc>en-uk-scotland</doc> + </valid> + <invalid> + <doc>en.UK</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype Name</documentation> + <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"/> + </element> + </correct> + <valid> + <doc>foo</doc> + </valid> + <valid> + <doc>_0123456789</doc> + </valid> + <invalid> + <doc>.</doc> + </invalid> + <valid> + <doc>:</doc> + </valid> + <invalid> + <doc>-</doc> + </invalid> + <invalid> + <doc>1234</doc> + </invalid> + <valid> + <doc> foo </doc> + </valid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype NCName</documentation> + <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="NCName"/> + </element> + </correct> + <valid> + <doc>foo</doc> + </valid> + <invalid> + <doc>foo:bar</doc> + </invalid> + <invalid> + <doc>0foo</doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="NCName">foo</value> + </element> + </correct> + <valid> + <doc> foo </doc> + </valid> + <invalid> + <doc>FOO</doc> + </invalid> + <invalid> + <doc> FOO </doc> + </invalid> + </testCase> + <testCase> + <correct> + <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <value type="NCName">FOO</value> + </element> + </correct> + <valid> + <doc> FOO </doc> + </valid> + <invalid> + <doc>foo</doc> + </invalid> + <invalid> + <doc> foo </doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype NMTOKEN</documentation> + <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="NMTOKEN"/> + </element> + </correct> + <valid> + <doc>foo</doc> + </valid> + <valid> + <doc>_</doc> + </valid> + <valid> + <doc>.</doc> + </valid> + <valid> + <doc>:</doc> + </valid> + <valid> + <doc>-</doc> + </valid> + <valid> + <doc>1234</doc> + </valid> + <valid> + <doc> foo </doc> + </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="NMTOKEN"> + <param name="length">3</param> + </data> + </element> + </correct> + <valid> + <doc> foo </doc> + </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="NMTOKEN"> + <param name="length">4</param> + </data> + </element> + </correct> + <invalid> + <doc> foo </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="NMTOKEN"> + <param name="length">2</param> + </data> + </element> + </correct> + <invalid> + <doc> foo </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="NMTOKEN"> + <param name="length">2</param> + </data> + </element> + </correct> + <valid> + <doc>fo</doc> + </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="NMTOKEN"> + <param name="length">3</param> + </data> + </element> + </correct> + <invalid> + <doc>fo</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="NMTOKEN"> + <param name="length">1</param> + </data> + </element> + </correct> + <invalid> + <doc>fo</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="NMTOKEN"> + <param name="length">1</param> + </data> + </element> + </correct> + <valid> + <doc>f</doc> + </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="NMTOKEN"> + <param name="length">2</param> + </data> + </element> + </correct> + <invalid> + <doc>f</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="NMTOKEN"> + <param name="length">0</param> + </data> + </element> + </correct> + <invalid> + <doc>f</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype NMTOKENS</documentation> + <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="NMTOKENS"/> + </element> + </correct> + <valid> + <doc>foo bar</doc> + </valid> + <invalid> + <doc></doc> + </invalid> + <valid> + <doc>1 2 3 4</doc> + </valid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype ID</documentation> + <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="ID"/> + </element> + </correct> + <valid> + <doc>foobar</doc> + </valid> + <invalid> + <doc>foo:bar</doc> + </invalid> + <invalid> + <doc>foo bar</doc> + </invalid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype ENTITY</documentation> + <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="ENTITY"/> + </element> + </correct> + <invalid> + <doc></doc> + </invalid> + <invalid> + <doc>foo</doc> + </invalid> + <valid dtd=" <!DOCTYPE doc [ <!ENTITY foo SYSTEM 'whatever' NDATA jpeg> ]>"> + <doc>foo</doc> + </valid> + </testCase> + </testSuite> + <testSuite> + <documentation>Datatype ENTITIES</documentation> + <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="ENTITIES"/> + </element> + </correct> + <invalid> + <doc></doc> + </invalid> + <invalid> + <doc>foo</doc> + </invalid> + <valid dtd=" <!DOCTYPE doc [ <!ENTITY foo SYSTEM 'whatever' NDATA jpeg> <!ENTITY bar SYSTEM 'whatever' NDATA jpeg> ]>"> + <doc> foo bar </doc> + </valid> + </testCase> + </testSuite> +</testSuite> |