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