chromium/third_party/libxml/fuzz/seed_corpus/3df6ab31f8c924814d6ec41254d11b4b3734784a

<?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%[email protected]</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
&#13;	e a d
b eef </doc>
      </valid>
      <invalid>
        <doc>DEADBEEF</doc>
      </invalid>
      <invalid>
        <doc>D
&#13;	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
&#13;	E A D
B EEF </doc>
      </valid>
      <invalid>
        <doc>deadbeef</doc>
      </invalid>
      <invalid>
        <doc>d
&#13;	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>
        </ele