File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / test / xsdtest / xsdtestsuite.xml
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:37:59 2012 UTC (12 years, 7 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, v2_8_0p0, v2_8_0, v2_7_8, HEAD
libxml2

    1: <?xml version="1.0" encoding="utf-8"?>
    2: <testSuite>
    3:   <testSuite>
    4:     <documentation>Datatype dateTime</documentation>
    5:     <testCase>
    6:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
    7:       <correct>
    8:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    9:           <data type="dateTime"/>
   10:         </element>
   11:       </correct>
   12:       <valid>
   13:         <doc>2001-12-01T19:45:00</doc>
   14:       </valid>
   15:       <valid>
   16:         <doc>2001-12-01T19:45:00Z</doc>
   17:       </valid>
   18:       <valid>
   19:         <doc>2001-12-01T19:45:00-11:59</doc>
   20:       </valid>
   21:       <valid>
   22:         <doc>0001-01-12T00:00:00+12:00</doc>
   23:       </valid>
   24:       <invalid>
   25:         <doc>2001-12-1T19:45:00+24:00</doc>
   26:       </invalid>
   27:       <invalid>
   28:         <doc>2001-12-1T19:45:00</doc>
   29:       </invalid>
   30:     </testCase>
   31:     <testCase>
   32:       <correct>
   33:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   34:           <value type="dateTime">2001-12-01T19:45:00</value>
   35:         </element>
   36:       </correct>
   37:       <valid>
   38:         <doc>2001-12-01T19:45:00.00</doc>
   39:       </valid>
   40:       <invalid>
   41:         <doc>2001-12-01T19:45:00Z</doc>
   42:       </invalid>
   43:       <invalid>
   44:         <doc>2001-12-01T19:45:00.00Z</doc>
   45:       </invalid>
   46:       <invalid>
   47:         <doc>2001-12-01T20:45:00+01:00</doc>
   48:       </invalid>
   49:     </testCase>
   50:     <testCase>
   51:       <correct>
   52:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   53:           <value type="dateTime">2001-12-01T19:45:00Z</value>
   54:         </element>
   55:       </correct>
   56:       <valid>
   57:         <doc>2001-12-01T19:45:00.00Z</doc>
   58:       </valid>
   59:       <valid>
   60:         <doc>2001-12-01T20:45:00+01:00</doc>
   61:       </valid>
   62:       <invalid>
   63:         <doc>2001-12-01T19:45:00</doc>
   64:       </invalid>
   65:       <invalid>
   66:         <doc>2001-12-01T19:45:00.00</doc>
   67:       </invalid>
   68:     </testCase>
   69:   </testSuite>
   70:   <testSuite>
   71:     <documentation>Datatype anyURI</documentation>
   72:     <testCase>
   73:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   74:       <correct>
   75:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   76:           <data type="anyURI"/>
   77:         </element>
   78:       </correct>
   79:       <valid>
   80:         <doc>foobar</doc>
   81:       </valid>
   82:       <valid>
   83:         <doc>http://www.example.com</doc>
   84:       </valid>
   85:       <valid>
   86:         <doc>http://ji%6d@www.example.com</doc>
   87:       </valid>
   88:       <valid>
   89:         <doc>http://www.example.co%6d</doc>
   90:       </valid>
   91:       <valid>
   92:         <doc>nosuchscheme:stuff</doc>
   93:       </valid>
   94:       <invalid>
   95:         <doc>foo$bar:stuff</doc>
   96:       </invalid>
   97:       <invalid>
   98:         <doc>f%oobar</doc>
   99:       </invalid>
  100:     </testCase>
  101:   </testSuite>
  102:   <testSuite>
  103:     <documentation>Datatype integer</documentation>
  104:     <testCase>
  105:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
  106:       <correct>
  107:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  108:           <data type="integer"/>
  109:         </element>
  110:       </correct>
  111:       <valid>
  112:         <doc>10</doc>
  113:       </valid>
  114:       <valid>
  115:         <doc>01</doc>
  116:       </valid>
  117:       <valid>
  118:         <doc>0123456789</doc>
  119:       </valid>
  120:       <valid>
  121:         <doc>+10</doc>
  122:       </valid>
  123:       <valid>
  124:         <doc>-10</doc>
  125:       </valid>
  126:       <invalid>
  127:         <doc>1.0</doc>
  128:       </invalid>
  129:       <invalid>
  130:         <doc>.1</doc>
  131:       </invalid>
  132:       <valid>
  133:         <doc>9999999999999999999999999999999</doc>
  134:       </valid>
  135:       <invalid>
  136:         <doc>1.</doc>
  137:       </invalid>
  138:       <invalid>
  139:         <doc>0.</doc>
  140:       </invalid>
  141:     </testCase>
  142:     <testCase>
  143:       <correct>
  144:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  145:           <value type="integer">0</value>
  146:         </element>
  147:       </correct>
  148:       <valid>
  149:         <doc>+0</doc>
  150:       </valid>
  151:       <valid>
  152:         <doc>-0</doc>
  153:       </valid>
  154:       <valid>
  155:         <doc>00</doc>
  156:       </valid>
  157:       <invalid>
  158:         <doc>10</doc>
  159:       </invalid>
  160:       <invalid>
  161:         <doc>+10</doc>
  162:       </invalid>
  163:       <invalid>
  164:         <doc>+0010</doc>
  165:       </invalid>
  166:       <invalid>
  167:         <doc>010</doc>
  168:       </invalid>
  169:       <invalid>
  170:         <doc>-10</doc>
  171:       </invalid>
  172:       <invalid>
  173:         <doc>-0010</doc>
  174:       </invalid>
  175:       <invalid>
  176:         <doc>-010</doc>
  177:       </invalid>
  178:     </testCase>
  179:     <testCase>
  180:       <correct>
  181:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  182:           <value type="integer">10</value>
  183:         </element>
  184:       </correct>
  185:       <valid>
  186:         <doc>+10</doc>
  187:       </valid>
  188:       <valid>
  189:         <doc>+0010</doc>
  190:       </valid>
  191:       <valid>
  192:         <doc>010</doc>
  193:       </valid>
  194:       <invalid>
  195:         <doc>0</doc>
  196:       </invalid>
  197:       <invalid>
  198:         <doc>+0</doc>
  199:       </invalid>
  200:       <invalid>
  201:         <doc>-0</doc>
  202:       </invalid>
  203:       <invalid>
  204:         <doc>00</doc>
  205:       </invalid>
  206:       <invalid>
  207:         <doc>-10</doc>
  208:       </invalid>
  209:       <invalid>
  210:         <doc>-0010</doc>
  211:       </invalid>
  212:       <invalid>
  213:         <doc>-010</doc>
  214:       </invalid>
  215:     </testCase>
  216:     <testCase>
  217:       <correct>
  218:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  219:           <value type="integer">-10</value>
  220:         </element>
  221:       </correct>
  222:       <valid>
  223:         <doc>-0010</doc>
  224:       </valid>
  225:       <valid>
  226:         <doc>-010</doc>
  227:       </valid>
  228:       <invalid>
  229:         <doc>0</doc>
  230:       </invalid>
  231:       <invalid>
  232:         <doc>+0</doc>
  233:       </invalid>
  234:       <invalid>
  235:         <doc>-0</doc>
  236:       </invalid>
  237:       <invalid>
  238:         <doc>00</doc>
  239:       </invalid>
  240:       <invalid>
  241:         <doc>10</doc>
  242:       </invalid>
  243:       <invalid>
  244:         <doc>+10</doc>
  245:       </invalid>
  246:       <invalid>
  247:         <doc>+0010</doc>
  248:       </invalid>
  249:       <invalid>
  250:         <doc>010</doc>
  251:       </invalid>
  252:     </testCase>
  253:   </testSuite>
  254:   <testSuite>
  255:     <documentation>Datatype duration</documentation>
  256:     <testCase>
  257:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
  258:       <correct>
  259:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  260:           <data type="duration"/>
  261:         </element>
  262:       </correct>
  263:       <valid>
  264:         <doc>P1Y</doc>
  265:       </valid>
  266:       <valid>
  267:         <doc>P1Y0M2DT17H5M12S</doc>
  268:       </valid>
  269:       <valid>
  270:         <doc>-P1Y</doc>
  271:       </valid>
  272:       <valid>
  273:         <doc>P60D</doc>
  274:       </valid>
  275:       <valid>
  276:         <doc>PT24H</doc>
  277:       </valid>
  278:       <valid>
  279:         <doc>PT1.2S</doc>
  280:       </valid>
  281:       <invalid>
  282:         <doc>P24h</doc>
  283:       </invalid>
  284:       <invalid>
  285:         <doc>P24H</doc>
  286:       </invalid>
  287:       <invalid>
  288:         <doc>P1YT</doc>
  289:       </invalid>
  290:       <invalid>
  291:         <doc>P</doc>
  292:       </invalid>
  293:       <invalid>
  294:         <doc>-P</doc>
  295:       </invalid>
  296:     </testCase>
  297:     <testCase>
  298:       <correct>
  299:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  300:           <value type="duration">-P6M</value>
  301:         </element>
  302:       </correct>
  303:       <invalid>
  304:         <doc>P0Y</doc>
  305:       </invalid>
  306:       <invalid>
  307:         <doc>-P0Y</doc>
  308:       </invalid>
  309:       <invalid>
  310:         <doc>P1Y</doc>
  311:       </invalid>
  312:       <invalid>
  313:         <doc>P001Y</doc>
  314:       </invalid>
  315:       <invalid>
  316:         <doc>P001Y0M</doc>
  317:       </invalid>
  318:       <invalid>
  319:         <doc>P1Y0M0DT0H0M0.0S</doc>
  320:       </invalid>
  321:       <invalid>
  322:         <doc>P6M</doc>
  323:       </invalid>
  324:       <invalid>
  325:         <doc>PT6M</doc>
  326:       </invalid>
  327:       <invalid>
  328:         <doc>PT1S</doc>
  329:       </invalid>
  330:       <invalid>
  331:         <doc>PT1.0S</doc>
  332:       </invalid>
  333:     </testCase>
  334:     <testCase>
  335:       <correct>
  336:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  337:           <value type="duration">P0Y</value>
  338:         </element>
  339:       </correct>
  340:       <valid>
  341:         <doc>-P0Y</doc>
  342:       </valid>
  343:       <invalid>
  344:         <doc>-P6M</doc>
  345:       </invalid>
  346:       <invalid>
  347:         <doc>P1Y</doc>
  348:       </invalid>
  349:       <invalid>
  350:         <doc>P001Y</doc>
  351:       </invalid>
  352:       <invalid>
  353:         <doc>P001Y0M</doc>
  354:       </invalid>
  355:       <invalid>
  356:         <doc>P1Y0M0DT0H0M0.0S</doc>
  357:       </invalid>
  358:       <invalid>
  359:         <doc>P6M</doc>
  360:       </invalid>
  361:       <invalid>
  362:         <doc>PT6M</doc>
  363:       </invalid>
  364:       <invalid>
  365:         <doc>PT1S</doc>
  366:       </invalid>
  367:       <invalid>
  368:         <doc>PT1.0S</doc>
  369:       </invalid>
  370:     </testCase>
  371:     <testCase>
  372:       <correct>
  373:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  374:           <value type="duration">P1Y</value>
  375:         </element>
  376:       </correct>
  377:       <valid>
  378:         <doc>P001Y</doc>
  379:       </valid>
  380:       <valid>
  381:         <doc>P001Y0M</doc>
  382:       </valid>
  383:       <valid>
  384:         <doc>P1Y0M0DT0H0M0.0S</doc>
  385:       </valid>
  386:       <invalid>
  387:         <doc>-P6M</doc>
  388:       </invalid>
  389:       <invalid>
  390:         <doc>P0Y</doc>
  391:       </invalid>
  392:       <invalid>
  393:         <doc>-P0Y</doc>
  394:       </invalid>
  395:       <invalid>
  396:         <doc>P6M</doc>
  397:       </invalid>
  398:       <invalid>
  399:         <doc>PT6M</doc>
  400:       </invalid>
  401:       <invalid>
  402:         <doc>PT1S</doc>
  403:       </invalid>
  404:       <invalid>
  405:         <doc>PT1.0S</doc>
  406:       </invalid>
  407:     </testCase>
  408:     <testCase>
  409:       <correct>
  410:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  411:           <value type="duration">P6M</value>
  412:         </element>
  413:       </correct>
  414:       <invalid>
  415:         <doc>-P6M</doc>
  416:       </invalid>
  417:       <invalid>
  418:         <doc>P0Y</doc>
  419:       </invalid>
  420:       <invalid>
  421:         <doc>-P0Y</doc>
  422:       </invalid>
  423:       <invalid>
  424:         <doc>P1Y</doc>
  425:       </invalid>
  426:       <invalid>
  427:         <doc>P001Y</doc>
  428:       </invalid>
  429:       <invalid>
  430:         <doc>P001Y0M</doc>
  431:       </invalid>
  432:       <invalid>
  433:         <doc>P1Y0M0DT0H0M0.0S</doc>
  434:       </invalid>
  435:       <invalid>
  436:         <doc>PT6M</doc>
  437:       </invalid>
  438:       <invalid>
  439:         <doc>PT1S</doc>
  440:       </invalid>
  441:       <invalid>
  442:         <doc>PT1.0S</doc>
  443:       </invalid>
  444:     </testCase>
  445:     <testCase>
  446:       <correct>
  447:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  448:           <value type="duration">PT6M</value>
  449:         </element>
  450:       </correct>
  451:       <invalid>
  452:         <doc>-P6M</doc>
  453:       </invalid>
  454:       <invalid>
  455:         <doc>P0Y</doc>
  456:       </invalid>
  457:       <invalid>
  458:         <doc>-P0Y</doc>
  459:       </invalid>
  460:       <invalid>
  461:         <doc>P1Y</doc>
  462:       </invalid>
  463:       <invalid>
  464:         <doc>P001Y</doc>
  465:       </invalid>
  466:       <invalid>
  467:         <doc>P001Y0M</doc>
  468:       </invalid>
  469:       <invalid>
  470:         <doc>P1Y0M0DT0H0M0.0S</doc>
  471:       </invalid>
  472:       <invalid>
  473:         <doc>P6M</doc>
  474:       </invalid>
  475:       <invalid>
  476:         <doc>PT1S</doc>
  477:       </invalid>
  478:       <invalid>
  479:         <doc>PT1.0S</doc>
  480:       </invalid>
  481:     </testCase>
  482:     <testCase>
  483:       <correct>
  484:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  485:           <value type="duration">PT1S</value>
  486:         </element>
  487:       </correct>
  488:       <valid>
  489:         <doc>PT1.0S</doc>
  490:       </valid>
  491:       <invalid>
  492:         <doc>-P6M</doc>
  493:       </invalid>
  494:       <invalid>
  495:         <doc>P0Y</doc>
  496:       </invalid>
  497:       <invalid>
  498:         <doc>-P0Y</doc>
  499:       </invalid>
  500:       <invalid>
  501:         <doc>P1Y</doc>
  502:       </invalid>
  503:       <invalid>
  504:         <doc>P001Y</doc>
  505:       </invalid>
  506:       <invalid>
  507:         <doc>P001Y0M</doc>
  508:       </invalid>
  509:       <invalid>
  510:         <doc>P1Y0M0DT0H0M0.0S</doc>
  511:       </invalid>
  512:       <invalid>
  513:         <doc>P6M</doc>
  514:       </invalid>
  515:       <invalid>
  516:         <doc>PT6M</doc>
  517:       </invalid>
  518:     </testCase>
  519:     <testCase>
  520:       <correct>
  521:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  522:           <data type="duration">
  523:             <param name="minExclusive">PT1M</param>
  524:           </data>
  525:         </element>
  526:       </correct>
  527:       <valid>
  528:         <doc>PT61S</doc>
  529:       </valid>
  530:       <invalid>
  531:         <doc>PT1M</doc>
  532:       </invalid>
  533:     </testCase>
  534:     <testCase>
  535:       <correct>
  536:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  537:           <data type="duration">
  538:             <param name="minExclusive">PT61S</param>
  539:           </data>
  540:         </element>
  541:       </correct>
  542:       <invalid>
  543:         <doc>PT1M</doc>
  544:       </invalid>
  545:       <invalid>
  546:         <doc>PT61S</doc>
  547:       </invalid>
  548:     </testCase>
  549:     <testCase>
  550:       <correct>
  551:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  552:           <data type="duration">
  553:             <param name="minExclusive">PT59S</param>
  554:           </data>
  555:         </element>
  556:       </correct>
  557:       <valid>
  558:         <doc>PT1M</doc>
  559:       </valid>
  560:       <invalid>
  561:         <doc>PT59S</doc>
  562:       </invalid>
  563:     </testCase>
  564:     <testCase>
  565:       <correct>
  566:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  567:           <data type="duration">
  568:             <param name="minExclusive">PT1M</param>
  569:           </data>
  570:         </element>
  571:       </correct>
  572:       <invalid>
  573:         <doc>PT59S</doc>
  574:       </invalid>
  575:       <invalid>
  576:         <doc>PT1M</doc>
  577:       </invalid>
  578:     </testCase>
  579:     <testCase>
  580:       <correct>
  581:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  582:           <data type="duration">
  583:             <param name="minExclusive">PT60S</param>
  584:           </data>
  585:         </element>
  586:       </correct>
  587:       <invalid>
  588:         <doc>PT1M</doc>
  589:       </invalid>
  590:       <invalid>
  591:         <doc>PT60S</doc>
  592:       </invalid>
  593:     </testCase>
  594:     <testCase>
  595:       <correct>
  596:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  597:           <data type="duration">
  598:             <param name="minExclusive">PT1M</param>
  599:           </data>
  600:         </element>
  601:       </correct>
  602:       <invalid>
  603:         <doc>PT60S</doc>
  604:       </invalid>
  605:       <invalid>
  606:         <doc>PT1M</doc>
  607:       </invalid>
  608:     </testCase>
  609:     <testCase>
  610:       <correct>
  611:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  612:           <data type="duration">
  613:             <param name="minExclusive">PT1H</param>
  614:           </data>
  615:         </element>
  616:       </correct>
  617:       <valid>
  618:         <doc>PT61M</doc>
  619:       </valid>
  620:       <invalid>
  621:         <doc>PT1H</doc>
  622:       </invalid>
  623:     </testCase>
  624:     <testCase>
  625:       <correct>
  626:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  627:           <data type="duration">
  628:             <param name="minExclusive">PT61M</param>
  629:           </data>
  630:         </element>
  631:       </correct>
  632:       <invalid>
  633:         <doc>PT1H</doc>
  634:       </invalid>
  635:       <invalid>
  636:         <doc>PT61M</doc>
  637:       </invalid>
  638:     </testCase>
  639:     <testCase>
  640:       <correct>
  641:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  642:           <data type="duration">
  643:             <param name="minExclusive">PT59M</param>
  644:           </data>
  645:         </element>
  646:       </correct>
  647:       <valid>
  648:         <doc>PT1H</doc>
  649:       </valid>
  650:       <invalid>
  651:         <doc>PT59M</doc>
  652:       </invalid>
  653:     </testCase>
  654:     <testCase>
  655:       <correct>
  656:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  657:           <data type="duration">
  658:             <param name="minExclusive">PT1H</param>
  659:           </data>
  660:         </element>
  661:       </correct>
  662:       <invalid>
  663:         <doc>PT59M</doc>
  664:       </invalid>
  665:       <invalid>
  666:         <doc>PT1H</doc>
  667:       </invalid>
  668:     </testCase>
  669:     <testCase>
  670:       <correct>
  671:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  672:           <data type="duration">
  673:             <param name="minExclusive">PT60M</param>
  674:           </data>
  675:         </element>
  676:       </correct>
  677:       <invalid>
  678:         <doc>PT1H</doc>
  679:       </invalid>
  680:       <invalid>
  681:         <doc>PT60M</doc>
  682:       </invalid>
  683:     </testCase>
  684:     <testCase>
  685:       <correct>
  686:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  687:           <data type="duration">
  688:             <param name="minExclusive">PT1H</param>
  689:           </data>
  690:         </element>
  691:       </correct>
  692:       <invalid>
  693:         <doc>PT60M</doc>
  694:       </invalid>
  695:       <invalid>
  696:         <doc>PT1H</doc>
  697:       </invalid>
  698:     </testCase>
  699:     <testCase>
  700:       <correct>
  701:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  702:           <data type="duration">
  703:             <param name="minExclusive">P1D</param>
  704:           </data>
  705:         </element>
  706:       </correct>
  707:       <valid>
  708:         <doc>PT25H</doc>
  709:       </valid>
  710:       <invalid>
  711:         <doc>P1D</doc>
  712:       </invalid>
  713:     </testCase>
  714:     <testCase>
  715:       <correct>
  716:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  717:           <data type="duration">
  718:             <param name="minExclusive">PT25H</param>
  719:           </data>
  720:         </element>
  721:       </correct>
  722:       <invalid>
  723:         <doc>P1D</doc>
  724:       </invalid>
  725:       <invalid>
  726:         <doc>PT25H</doc>
  727:       </invalid>
  728:     </testCase>
  729:     <testCase>
  730:       <correct>
  731:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  732:           <data type="duration">
  733:             <param name="minExclusive">PT23H</param>
  734:           </data>
  735:         </element>
  736:       </correct>
  737:       <valid>
  738:         <doc>P1D</doc>
  739:       </valid>
  740:       <invalid>
  741:         <doc>PT23H</doc>
  742:       </invalid>
  743:     </testCase>
  744:     <testCase>
  745:       <correct>
  746:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  747:           <data type="duration">
  748:             <param name="minExclusive">P1D</param>
  749:           </data>
  750:         </element>
  751:       </correct>
  752:       <invalid>
  753:         <doc>PT23H</doc>
  754:       </invalid>
  755:       <invalid>
  756:         <doc>P1D</doc>
  757:       </invalid>
  758:     </testCase>
  759:     <testCase>
  760:       <correct>
  761:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  762:           <data type="duration">
  763:             <param name="minExclusive">P1D</param>
  764:           </data>
  765:         </element>
  766:       </correct>
  767:       <invalid>
  768:         <doc>PT24H</doc>
  769:       </invalid>
  770:       <invalid>
  771:         <doc>P1D</doc>
  772:       </invalid>
  773:     </testCase>
  774:     <testCase>
  775:       <correct>
  776:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  777:           <data type="duration">
  778:             <param name="minExclusive">PT24H</param>
  779:           </data>
  780:         </element>
  781:       </correct>
  782:       <invalid>
  783:         <doc>P1D</doc>
  784:       </invalid>
  785:       <invalid>
  786:         <doc>PT24H</doc>
  787:       </invalid>
  788:     </testCase>
  789:     <testCase>
  790:       <correct>
  791:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  792:           <data type="duration">
  793:             <param name="minExclusive">P1Y</param>
  794:           </data>
  795:         </element>
  796:       </correct>
  797:       <valid>
  798:         <doc>P13M</doc>
  799:       </valid>
  800:       <invalid>
  801:         <doc>P1Y</doc>
  802:       </invalid>
  803:     </testCase>
  804:     <testCase>
  805:       <correct>
  806:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  807:           <data type="duration">
  808:             <param name="minExclusive">P13M</param>
  809:           </data>
  810:         </element>
  811:       </correct>
  812:       <invalid>
  813:         <doc>P1Y</doc>
  814:       </invalid>
  815:       <invalid>
  816:         <doc>P13M</doc>
  817:       </invalid>
  818:     </testCase>
  819:     <testCase>
  820:       <correct>
  821:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  822:           <data type="duration">
  823:             <param name="minExclusive">P11M</param>
  824:           </data>
  825:         </element>
  826:       </correct>
  827:       <valid>
  828:         <doc>P1Y</doc>
  829:       </valid>
  830:       <invalid>
  831:         <doc>P11M</doc>
  832:       </invalid>
  833:     </testCase>
  834:     <testCase>
  835:       <correct>
  836:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  837:           <data type="duration">
  838:             <param name="minExclusive">P1Y</param>
  839:           </data>
  840:         </element>
  841:       </correct>
  842:       <invalid>
  843:         <doc>P11M</doc>
  844:       </invalid>
  845:       <invalid>
  846:         <doc>P1Y</doc>
  847:       </invalid>
  848:     </testCase>
  849:     <testCase>
  850:       <correct>
  851:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  852:           <data type="duration">
  853:             <param name="minExclusive">P12M</param>
  854:           </data>
  855:         </element>
  856:       </correct>
  857:       <invalid>
  858:         <doc>P1Y</doc>
  859:       </invalid>
  860:       <invalid>
  861:         <doc>P12M</doc>
  862:       </invalid>
  863:     </testCase>
  864:     <testCase>
  865:       <correct>
  866:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  867:           <data type="duration">
  868:             <param name="minExclusive">P1Y</param>
  869:           </data>
  870:         </element>
  871:       </correct>
  872:       <invalid>
  873:         <doc>P12M</doc>
  874:       </invalid>
  875:       <invalid>
  876:         <doc>P1Y</doc>
  877:       </invalid>
  878:     </testCase>
  879:     <testCase>
  880:       <correct>
  881:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  882:           <data type="duration">
  883:             <param name="minExclusive">P364D</param>
  884:           </data>
  885:         </element>
  886:       </correct>
  887:       <valid>
  888:         <doc>P1Y</doc>
  889:       </valid>
  890:       <invalid>
  891:         <doc>P364D</doc>
  892:       </invalid>
  893:     </testCase>
  894:     <testCase>
  895:       <correct>
  896:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  897:           <data type="duration">
  898:             <param name="minExclusive">P1Y</param>
  899:           </data>
  900:         </element>
  901:       </correct>
  902:       <invalid>
  903:         <doc>P364D</doc>
  904:       </invalid>
  905:       <invalid>
  906:         <doc>P1Y</doc>
  907:       </invalid>
  908:     </testCase>
  909:     <testCase>
  910:       <correct>
  911:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  912:           <data type="duration">
  913:             <param name="minExclusive">P1Y</param>
  914:           </data>
  915:         </element>
  916:       </correct>
  917:       <invalid>
  918:         <doc>P365D</doc>
  919:       </invalid>
  920:       <invalid>
  921:         <doc>P1Y</doc>
  922:       </invalid>
  923:     </testCase>
  924:     <testCase>
  925:       <correct>
  926:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  927:           <data type="duration">
  928:             <param name="minExclusive">P365D</param>
  929:           </data>
  930:         </element>
  931:       </correct>
  932:       <invalid>
  933:         <doc>P1Y</doc>
  934:       </invalid>
  935:       <invalid>
  936:         <doc>P365D</doc>
  937:       </invalid>
  938:     </testCase>
  939:     <testCase>
  940:       <correct>
  941:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  942:           <data type="duration">
  943:             <param name="minExclusive">P1Y</param>
  944:           </data>
  945:         </element>
  946:       </correct>
  947:       <invalid>
  948:         <doc>P366D</doc>
  949:       </invalid>
  950:       <invalid>
  951:         <doc>P1Y</doc>
  952:       </invalid>
  953:     </testCase>
  954:     <testCase>
  955:       <correct>
  956:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  957:           <data type="duration">
  958:             <param name="minExclusive">P366D</param>
  959:           </data>
  960:         </element>
  961:       </correct>
  962:       <invalid>
  963:         <doc>P1Y</doc>
  964:       </invalid>
  965:       <invalid>
  966:         <doc>P366D</doc>
  967:       </invalid>
  968:     </testCase>
  969:     <testCase>
  970:       <correct>
  971:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  972:           <data type="duration">
  973:             <param name="minExclusive">P1Y</param>
  974:           </data>
  975:         </element>
  976:       </correct>
  977:       <valid>
  978:         <doc>P367D</doc>
  979:       </valid>
  980:       <invalid>
  981:         <doc>P1Y</doc>
  982:       </invalid>
  983:     </testCase>
  984:     <testCase>
  985:       <correct>
  986:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  987:           <data type="duration">
  988:             <param name="minExclusive">P367D</param>
  989:           </data>
  990:         </element>
  991:       </correct>
  992:       <invalid>
  993:         <doc>P1Y</doc>
  994:       </invalid>
  995:       <invalid>
  996:         <doc>P367D</doc>
  997:       </invalid>
  998:     </testCase>
  999:     <testCase>
 1000:       <correct>
 1001:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1002:           <data type="duration">
 1003:             <param name="minExclusive">P149D</param>
 1004:           </data>
 1005:         </element>
 1006:       </correct>
 1007:       <valid>
 1008:         <doc>P5M</doc>
 1009:       </valid>
 1010:       <invalid>
 1011:         <doc>P149D</doc>
 1012:       </invalid>
 1013:     </testCase>
 1014:     <testCase>
 1015:       <correct>
 1016:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1017:           <data type="duration">
 1018:             <param name="minExclusive">P5M</param>
 1019:           </data>
 1020:         </element>
 1021:       </correct>
 1022:       <invalid>
 1023:         <doc>P149D</doc>
 1024:       </invalid>
 1025:       <invalid>
 1026:         <doc>P5M</doc>
 1027:       </invalid>
 1028:     </testCase>
 1029:     <testCase>
 1030:       <correct>
 1031:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1032:           <data type="duration">
 1033:             <param name="minExclusive">P150D</param>
 1034:           </data>
 1035:         </element>
 1036:       </correct>
 1037:       <invalid>
 1038:         <doc>P5M</doc>
 1039:       </invalid>
 1040:       <invalid>
 1041:         <doc>P150D</doc>
 1042:       </invalid>
 1043:     </testCase>
 1044:     <testCase>
 1045:       <correct>
 1046:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1047:           <data type="duration">
 1048:             <param name="minExclusive">P5M</param>
 1049:           </data>
 1050:         </element>
 1051:       </correct>
 1052:       <invalid>
 1053:         <doc>P150D</doc>
 1054:       </invalid>
 1055:       <invalid>
 1056:         <doc>P5M</doc>
 1057:       </invalid>
 1058:     </testCase>
 1059:     <testCase>
 1060:       <correct>
 1061:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1062:           <data type="duration">
 1063:             <param name="minExclusive">P151D</param>
 1064:           </data>
 1065:         </element>
 1066:       </correct>
 1067:       <invalid>
 1068:         <doc>P5M</doc>
 1069:       </invalid>
 1070:       <invalid>
 1071:         <doc>P151D</doc>
 1072:       </invalid>
 1073:     </testCase>
 1074:     <testCase>
 1075:       <correct>
 1076:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1077:           <data type="duration">
 1078:             <param name="minExclusive">P5M</param>
 1079:           </data>
 1080:         </element>
 1081:       </correct>
 1082:       <invalid>
 1083:         <doc>P151D</doc>
 1084:       </invalid>
 1085:       <invalid>
 1086:         <doc>P5M</doc>
 1087:       </invalid>
 1088:     </testCase>
 1089:     <testCase>
 1090:       <correct>
 1091:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1092:           <data type="duration">
 1093:             <param name="minExclusive">P152D</param>
 1094:           </data>
 1095:         </element>
 1096:       </correct>
 1097:       <invalid>
 1098:         <doc>P5M</doc>
 1099:       </invalid>
 1100:       <invalid>
 1101:         <doc>P152D</doc>
 1102:       </invalid>
 1103:     </testCase>
 1104:     <testCase>
 1105:       <correct>
 1106:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1107:           <data type="duration">
 1108:             <param name="minExclusive">P5M</param>
 1109:           </data>
 1110:         </element>
 1111:       </correct>
 1112:       <invalid>
 1113:         <doc>P152D</doc>
 1114:       </invalid>
 1115:       <invalid>
 1116:         <doc>P5M</doc>
 1117:       </invalid>
 1118:     </testCase>
 1119:     <testCase>
 1120:       <correct>
 1121:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1122:           <data type="duration">
 1123:             <param name="minExclusive">P153D</param>
 1124:           </data>
 1125:         </element>
 1126:       </correct>
 1127:       <invalid>
 1128:         <doc>P5M</doc>
 1129:       </invalid>
 1130:       <invalid>
 1131:         <doc>P153D</doc>
 1132:       </invalid>
 1133:     </testCase>
 1134:     <testCase>
 1135:       <correct>
 1136:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1137:           <data type="duration">
 1138:             <param name="minExclusive">P5M</param>
 1139:           </data>
 1140:         </element>
 1141:       </correct>
 1142:       <invalid>
 1143:         <doc>P153D</doc>
 1144:       </invalid>
 1145:       <invalid>
 1146:         <doc>P5M</doc>
 1147:       </invalid>
 1148:     </testCase>
 1149:     <testCase>
 1150:       <correct>
 1151:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1152:           <data type="duration">
 1153:             <param name="minExclusive">P5M</param>
 1154:           </data>
 1155:         </element>
 1156:       </correct>
 1157:       <valid>
 1158:         <doc>P154D</doc>
 1159:       </valid>
 1160:       <invalid>
 1161:         <doc>P5M</doc>
 1162:       </invalid>
 1163:     </testCase>
 1164:     <testCase>
 1165:       <correct>
 1166:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1167:           <data type="duration">
 1168:             <param name="minExclusive">P154D</param>
 1169:           </data>
 1170:         </element>
 1171:       </correct>
 1172:       <invalid>
 1173:         <doc>P5M</doc>
 1174:       </invalid>
 1175:       <invalid>
 1176:         <doc>P154D</doc>
 1177:       </invalid>
 1178:     </testCase>
 1179:     <testCase>
 1180:       <correct>
 1181:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1182:           <data type="duration">
 1183:             <param name="minExclusive">P27D</param>
 1184:           </data>
 1185:         </element>
 1186:       </correct>
 1187:       <valid>
 1188:         <doc>P1M</doc>
 1189:       </valid>
 1190:       <invalid>
 1191:         <doc>P27D</doc>
 1192:       </invalid>
 1193:     </testCase>
 1194:     <testCase>
 1195:       <correct>
 1196:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1197:           <data type="duration">
 1198:             <param name="minExclusive">P1M</param>
 1199:           </data>
 1200:         </element>
 1201:       </correct>
 1202:       <invalid>
 1203:         <doc>P27D</doc>
 1204:       </invalid>
 1205:       <invalid>
 1206:         <doc>P1M</doc>
 1207:       </invalid>
 1208:     </testCase>
 1209:     <testCase>
 1210:       <correct>
 1211:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1212:           <data type="duration">
 1213:             <param name="minExclusive">P28D</param>
 1214:           </data>
 1215:         </element>
 1216:       </correct>
 1217:       <invalid>
 1218:         <doc>P1M</doc>
 1219:       </invalid>
 1220:       <invalid>
 1221:         <doc>P28D</doc>
 1222:       </invalid>
 1223:     </testCase>
 1224:     <testCase>
 1225:       <correct>
 1226:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1227:           <data type="duration">
 1228:             <param name="minExclusive">P1M</param>
 1229:           </data>
 1230:         </element>
 1231:       </correct>
 1232:       <invalid>
 1233:         <doc>P28D</doc>
 1234:       </invalid>
 1235:       <invalid>
 1236:         <doc>P1M</doc>
 1237:       </invalid>
 1238:     </testCase>
 1239:     <testCase>
 1240:       <correct>
 1241:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1242:           <data type="duration">
 1243:             <param name="minExclusive">P29D</param>
 1244:           </data>
 1245:         </element>
 1246:       </correct>
 1247:       <invalid>
 1248:         <doc>P1M</doc>
 1249:       </invalid>
 1250:       <invalid>
 1251:         <doc>P29D</doc>
 1252:       </invalid>
 1253:     </testCase>
 1254:     <testCase>
 1255:       <correct>
 1256:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1257:           <data type="duration">
 1258:             <param name="minExclusive">P1M</param>
 1259:           </data>
 1260:         </element>
 1261:       </correct>
 1262:       <invalid>
 1263:         <doc>P29D</doc>
 1264:       </invalid>
 1265:       <invalid>
 1266:         <doc>P1M</doc>
 1267:       </invalid>
 1268:     </testCase>
 1269:     <testCase>
 1270:       <correct>
 1271:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1272:           <data type="duration">
 1273:             <param name="minExclusive">P30D</param>
 1274:           </data>
 1275:         </element>
 1276:       </correct>
 1277:       <invalid>
 1278:         <doc>P1M</doc>
 1279:       </invalid>
 1280:       <invalid>
 1281:         <doc>P30D</doc>
 1282:       </invalid>
 1283:     </testCase>
 1284:     <testCase>
 1285:       <correct>
 1286:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1287:           <data type="duration">
 1288:             <param name="minExclusive">P1M</param>
 1289:           </data>
 1290:         </element>
 1291:       </correct>
 1292:       <invalid>
 1293:         <doc>P30D</doc>
 1294:       </invalid>
 1295:       <invalid>
 1296:         <doc>P1M</doc>
 1297:       </invalid>
 1298:     </testCase>
 1299:     <testCase>
 1300:       <correct>
 1301:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1302:           <data type="duration">
 1303:             <param name="minExclusive">P31D</param>
 1304:           </data>
 1305:         </element>
 1306:       </correct>
 1307:       <invalid>
 1308:         <doc>P1M</doc>
 1309:       </invalid>
 1310:       <invalid>
 1311:         <doc>P31D</doc>
 1312:       </invalid>
 1313:     </testCase>
 1314:     <testCase>
 1315:       <correct>
 1316:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1317:           <data type="duration">
 1318:             <param name="minExclusive">P1M</param>
 1319:           </data>
 1320:         </element>
 1321:       </correct>
 1322:       <invalid>
 1323:         <doc>P31D</doc>
 1324:       </invalid>
 1325:       <invalid>
 1326:         <doc>P1M</doc>
 1327:       </invalid>
 1328:     </testCase>
 1329:     <testCase>
 1330:       <correct>
 1331:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1332:           <data type="duration">
 1333:             <param name="minExclusive">P1M</param>
 1334:           </data>
 1335:         </element>
 1336:       </correct>
 1337:       <valid>
 1338:         <doc>P32D</doc>
 1339:       </valid>
 1340:       <invalid>
 1341:         <doc>P1M</doc>
 1342:       </invalid>
 1343:     </testCase>
 1344:     <testCase>
 1345:       <correct>
 1346:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1347:           <data type="duration">
 1348:             <param name="minExclusive">P32D</param>
 1349:           </data>
 1350:         </element>
 1351:       </correct>
 1352:       <invalid>
 1353:         <doc>P1M</doc>
 1354:       </invalid>
 1355:       <invalid>
 1356:         <doc>P32D</doc>
 1357:       </invalid>
 1358:     </testCase>
 1359:   </testSuite>
 1360:   <testSuite>
 1361:     <documentation>Datatype time</documentation>
 1362:     <testCase>
 1363:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 1364:       <correct>
 1365:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1366:           <data type="time"/>
 1367:         </element>
 1368:       </correct>
 1369:       <valid>
 1370:         <doc>12:45:00</doc>
 1371:       </valid>
 1372:       <valid>
 1373:         <doc>12:45:00Z</doc>
 1374:       </valid>
 1375:     </testCase>
 1376:   </testSuite>
 1377:   <testSuite>
 1378:     <documentation>Datatype date</documentation>
 1379:     <testCase>
 1380:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 1381:       <correct>
 1382:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1383:           <data type="date"/>
 1384:         </element>
 1385:       </correct>
 1386:       <valid>
 1387:         <doc>1886-12-01</doc>
 1388:       </valid>
 1389:       <valid>
 1390:         <doc>1886-12-01Z</doc>
 1391:       </valid>
 1392:     </testCase>
 1393:     <testCase>
 1394:       <correct>
 1395:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1396:           <data type="date">
 1397:             <param name="minExclusive">1066-12-31</param>
 1398:           </data>
 1399:         </element>
 1400:       </correct>
 1401:       <valid>
 1402:         <doc>1900-01-01</doc>
 1403:       </valid>
 1404:       <invalid>
 1405:         <doc>1066-12-31</doc>
 1406:       </invalid>
 1407:     </testCase>
 1408:     <testCase>
 1409:       <correct>
 1410:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1411:           <data type="date">
 1412:             <param name="minExclusive">1900-01-01</param>
 1413:           </data>
 1414:         </element>
 1415:       </correct>
 1416:       <invalid>
 1417:         <doc>1066-12-31</doc>
 1418:       </invalid>
 1419:       <invalid>
 1420:         <doc>1900-01-01</doc>
 1421:       </invalid>
 1422:     </testCase>
 1423:     <testCase>
 1424:       <correct>
 1425:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1426:           <data type="date">
 1427:             <param name="minExclusive">1900-01-01</param>
 1428:           </data>
 1429:         </element>
 1430:       </correct>
 1431:       <valid>
 1432:         <doc>1900-01-02</doc>
 1433:       </valid>
 1434:       <invalid>
 1435:         <doc>1900-01-01</doc>
 1436:       </invalid>
 1437:     </testCase>
 1438:     <testCase>
 1439:       <correct>
 1440:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1441:           <data type="date">
 1442:             <param name="minExclusive">1900-01-02</param>
 1443:           </data>
 1444:         </element>
 1445:       </correct>
 1446:       <invalid>
 1447:         <doc>1900-01-01</doc>
 1448:       </invalid>
 1449:       <invalid>
 1450:         <doc>1900-01-02</doc>
 1451:       </invalid>
 1452:     </testCase>
 1453:   </testSuite>
 1454:   <testSuite>
 1455:     <documentation>Datatype gYearMonth</documentation>
 1456:     <testCase>
 1457:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 1458:       <correct>
 1459:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1460:           <data type="gYearMonth"/>
 1461:         </element>
 1462:       </correct>
 1463:       <valid>
 1464:         <doc>1996-12</doc>
 1465:       </valid>
 1466:       <valid>
 1467:         <doc>1996-01</doc>
 1468:       </valid>
 1469:       <valid>
 1470:         <doc>1996-01Z</doc>
 1471:       </valid>
 1472:       <invalid>
 1473:         <doc>1996-00</doc>
 1474:       </invalid>
 1475:     </testCase>
 1476:     <testCase>
 1477:       <correct>
 1478:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1479:           <value type="gYearMonth">1996-01</value>
 1480:         </element>
 1481:       </correct>
 1482:       <invalid>
 1483:         <doc>1996-01Z</doc>
 1484:       </invalid>
 1485:       <invalid>
 1486:         <doc>1996-01+00:00</doc>
 1487:       </invalid>
 1488:       <invalid>
 1489:         <doc>1996-01-00:00</doc>
 1490:       </invalid>
 1491:       <invalid>
 1492:         <doc>1996-01+01:00</doc>
 1493:       </invalid>
 1494:       <invalid>
 1495:         <doc>1996-01-01:00</doc>
 1496:       </invalid>
 1497:     </testCase>
 1498:     <testCase>
 1499:       <correct>
 1500:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1501:           <value type="gYearMonth">1996-01Z</value>
 1502:         </element>
 1503:       </correct>
 1504:       <valid>
 1505:         <doc>1996-01+00:00</doc>
 1506:       </valid>
 1507:       <valid>
 1508:         <doc>1996-01-00:00</doc>
 1509:       </valid>
 1510:       <invalid>
 1511:         <doc>1996-01</doc>
 1512:       </invalid>
 1513:       <invalid>
 1514:         <doc>1996-01+01:00</doc>
 1515:       </invalid>
 1516:       <invalid>
 1517:         <doc>1996-01-01:00</doc>
 1518:       </invalid>
 1519:     </testCase>
 1520:     <testCase>
 1521:       <correct>
 1522:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1523:           <value type="gYearMonth">1996-01+01:00</value>
 1524:         </element>
 1525:       </correct>
 1526:       <invalid>
 1527:         <doc>1996-01</doc>
 1528:       </invalid>
 1529:       <invalid>
 1530:         <doc>1996-01Z</doc>
 1531:       </invalid>
 1532:       <invalid>
 1533:         <doc>1996-01+00:00</doc>
 1534:       </invalid>
 1535:       <invalid>
 1536:         <doc>1996-01-00:00</doc>
 1537:       </invalid>
 1538:       <invalid>
 1539:         <doc>1996-01-01:00</doc>
 1540:       </invalid>
 1541:     </testCase>
 1542:     <testCase>
 1543:       <correct>
 1544:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1545:           <value type="gYearMonth">1996-01-01:00</value>
 1546:         </element>
 1547:       </correct>
 1548:       <invalid>
 1549:         <doc>1996-01</doc>
 1550:       </invalid>
 1551:       <invalid>
 1552:         <doc>1996-01Z</doc>
 1553:       </invalid>
 1554:       <invalid>
 1555:         <doc>1996-01+00:00</doc>
 1556:       </invalid>
 1557:       <invalid>
 1558:         <doc>1996-01-00:00</doc>
 1559:       </invalid>
 1560:       <invalid>
 1561:         <doc>1996-01+01:00</doc>
 1562:       </invalid>
 1563:     </testCase>
 1564:   </testSuite>
 1565:   <testSuite>
 1566:     <documentation>Datatype gYear</documentation>
 1567:     <testCase>
 1568:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 1569:       <correct>
 1570:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1571:           <data type="gYear"/>
 1572:         </element>
 1573:       </correct>
 1574:       <valid>
 1575:         <doc>2001</doc>
 1576:       </valid>
 1577:       <valid>
 1578:         <doc>2001Z</doc>
 1579:       </valid>
 1580:     </testCase>
 1581:     <testCase>
 1582:       <correct>
 1583:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1584:           <data type="gYear">
 1585:             <param name="minExclusive">1999</param>
 1586:           </data>
 1587:         </element>
 1588:       </correct>
 1589:       <valid>
 1590:         <doc>2000</doc>
 1591:       </valid>
 1592:       <invalid>
 1593:         <doc>1999</doc>
 1594:       </invalid>
 1595:     </testCase>
 1596:     <testCase>
 1597:       <correct>
 1598:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1599:           <data type="gYear">
 1600:             <param name="minExclusive">2000</param>
 1601:           </data>
 1602:         </element>
 1603:       </correct>
 1604:       <invalid>
 1605:         <doc>1999</doc>
 1606:       </invalid>
 1607:       <invalid>
 1608:         <doc>2000</doc>
 1609:       </invalid>
 1610:     </testCase>
 1611:     <testCase>
 1612:       <correct>
 1613:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1614:           <data type="gYear">
 1615:             <param name="minExclusive">1999+07:00</param>
 1616:           </data>
 1617:         </element>
 1618:       </correct>
 1619:       <valid>
 1620:         <doc>2000+07:00</doc>
 1621:       </valid>
 1622:       <invalid>
 1623:         <doc>1999+07:00</doc>
 1624:       </invalid>
 1625:     </testCase>
 1626:     <testCase>
 1627:       <correct>
 1628:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1629:           <data type="gYear">
 1630:             <param name="minExclusive">2000+07:00</param>
 1631:           </data>
 1632:         </element>
 1633:       </correct>
 1634:       <invalid>
 1635:         <doc>1999+07:00</doc>
 1636:       </invalid>
 1637:       <invalid>
 1638:         <doc>2000+07:00</doc>
 1639:       </invalid>
 1640:     </testCase>
 1641:   </testSuite>
 1642:   <testSuite>
 1643:     <documentation>Datatype gMonthDay</documentation>
 1644:     <testCase>
 1645:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 1646:       <correct>
 1647:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1648:           <data type="gMonthDay"/>
 1649:         </element>
 1650:       </correct>
 1651:       <valid>
 1652:         <doc>--12-01</doc>
 1653:       </valid>
 1654:       <valid>
 1655:         <doc>--12-01Z</doc>
 1656:       </valid>
 1657:     </testCase>
 1658:     <testCase>
 1659:       <correct>
 1660:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1661:           <data type="gMonthDay">
 1662:             <param name="minExclusive">--12-01</param>
 1663:           </data>
 1664:         </element>
 1665:       </correct>
 1666:       <valid>
 1667:         <doc>--12-04</doc>
 1668:       </valid>
 1669:       <invalid>
 1670:         <doc>--12-01</doc>
 1671:       </invalid>
 1672:     </testCase>
 1673:     <testCase>
 1674:       <correct>
 1675:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1676:           <data type="gMonthDay">
 1677:             <param name="minExclusive">--12-04</param>
 1678:           </data>
 1679:         </element>
 1680:       </correct>
 1681:       <invalid>
 1682:         <doc>--12-01</doc>
 1683:       </invalid>
 1684:       <invalid>
 1685:         <doc>--12-04</doc>
 1686:       </invalid>
 1687:     </testCase>
 1688:     <testCase>
 1689:       <correct>
 1690:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1691:           <data type="gMonthDay">
 1692:             <param name="minExclusive">--11-17</param>
 1693:           </data>
 1694:         </element>
 1695:       </correct>
 1696:       <valid>
 1697:         <doc>--12-04</doc>
 1698:       </valid>
 1699:       <invalid>
 1700:         <doc>--11-17</doc>
 1701:       </invalid>
 1702:     </testCase>
 1703:     <testCase>
 1704:       <correct>
 1705:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1706:           <data type="gMonthDay">
 1707:             <param name="minExclusive">--12-04</param>
 1708:           </data>
 1709:         </element>
 1710:       </correct>
 1711:       <invalid>
 1712:         <doc>--11-17</doc>
 1713:       </invalid>
 1714:       <invalid>
 1715:         <doc>--12-04</doc>
 1716:       </invalid>
 1717:     </testCase>
 1718:   </testSuite>
 1719:   <testSuite>
 1720:     <documentation>Datatype gDay</documentation>
 1721:     <testCase>
 1722:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 1723:       <correct>
 1724:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1725:           <data type="gDay"/>
 1726:         </element>
 1727:       </correct>
 1728:       <valid>
 1729:         <doc>---20</doc>
 1730:       </valid>
 1731:       <valid>
 1732:         <doc>---20Z</doc>
 1733:       </valid>
 1734:     </testCase>
 1735:     <testCase>
 1736:       <correct>
 1737:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1738:           <data type="gDay">
 1739:             <param name="minExclusive">---01</param>
 1740:           </data>
 1741:         </element>
 1742:       </correct>
 1743:       <valid>
 1744:         <doc>---31</doc>
 1745:       </valid>
 1746:       <invalid>
 1747:         <doc>---01</doc>
 1748:       </invalid>
 1749:     </testCase>
 1750:     <testCase>
 1751:       <correct>
 1752:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1753:           <data type="gDay">
 1754:             <param name="minExclusive">---31</param>
 1755:           </data>
 1756:         </element>
 1757:       </correct>
 1758:       <invalid>
 1759:         <doc>---01</doc>
 1760:       </invalid>
 1761:       <invalid>
 1762:         <doc>---31</doc>
 1763:       </invalid>
 1764:     </testCase>
 1765:   </testSuite>
 1766:   <testSuite>
 1767:     <documentation>Datatype gMonth</documentation>
 1768:     <testCase>
 1769:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 1770:       <correct>
 1771:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1772:           <data type="gMonth"/>
 1773:         </element>
 1774:       </correct>
 1775:       <valid>
 1776:         <doc>--12</doc>
 1777:       </valid>
 1778:       <valid>
 1779:         <doc>--01</doc>
 1780:       </valid>
 1781:       <valid>
 1782:         <doc>--01Z</doc>
 1783:       </valid>
 1784:       <valid>
 1785:         <doc> --12 </doc>
 1786:       </valid>
 1787:       <invalid>
 1788:         <doc>---01</doc>
 1789:       </invalid>
 1790:       <invalid>
 1791:         <doc>--00</doc>
 1792:       </invalid>
 1793:       <invalid>
 1794:         <doc>--13</doc>
 1795:       </invalid>
 1796:       <invalid>
 1797:         <doc>- -13</doc>
 1798:       </invalid>
 1799:     </testCase>
 1800:     <testCase>
 1801:       <correct>
 1802:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1803:           <data type="gMonth">
 1804:             <param name="minExclusive">--01</param>
 1805:           </data>
 1806:         </element>
 1807:       </correct>
 1808:       <valid>
 1809:         <doc>--12</doc>
 1810:       </valid>
 1811:       <invalid>
 1812:         <doc>--01</doc>
 1813:       </invalid>
 1814:     </testCase>
 1815:     <testCase>
 1816:       <correct>
 1817:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1818:           <data type="gMonth">
 1819:             <param name="minExclusive">--12</param>
 1820:           </data>
 1821:         </element>
 1822:       </correct>
 1823:       <invalid>
 1824:         <doc>--01</doc>
 1825:       </invalid>
 1826:       <invalid>
 1827:         <doc>--12</doc>
 1828:       </invalid>
 1829:     </testCase>
 1830:     <testCase>
 1831:       <correct>
 1832:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1833:           <data type="gMonth">
 1834:             <param name="minExclusive">--01</param>
 1835:           </data>
 1836:         </element>
 1837:       </correct>
 1838:       <valid>
 1839:         <doc>--02</doc>
 1840:       </valid>
 1841:       <invalid>
 1842:         <doc>--01</doc>
 1843:       </invalid>
 1844:     </testCase>
 1845:     <testCase>
 1846:       <correct>
 1847:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1848:           <data type="gMonth">
 1849:             <param name="minExclusive">--02</param>
 1850:           </data>
 1851:         </element>
 1852:       </correct>
 1853:       <invalid>
 1854:         <doc>--01</doc>
 1855:       </invalid>
 1856:       <invalid>
 1857:         <doc>--02</doc>
 1858:       </invalid>
 1859:     </testCase>
 1860:   </testSuite>
 1861:   <testSuite>
 1862:     <documentation>Datatype boolean</documentation>
 1863:     <testCase>
 1864:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 1865:       <correct>
 1866:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1867:           <data type="boolean"/>
 1868:         </element>
 1869:       </correct>
 1870:       <valid>
 1871:         <doc>true</doc>
 1872:       </valid>
 1873:       <valid>
 1874:         <doc>false</doc>
 1875:       </valid>
 1876:       <valid>
 1877:         <doc>0</doc>
 1878:       </valid>
 1879:       <valid>
 1880:         <doc>1</doc>
 1881:       </valid>
 1882:       <invalid>
 1883:         <doc>00</doc>
 1884:       </invalid>
 1885:       <invalid>
 1886:         <doc>00</doc>
 1887:       </invalid>
 1888:       <invalid>
 1889:         <doc>01</doc>
 1890:       </invalid>
 1891:     </testCase>
 1892:     <testCase>
 1893:       <correct>
 1894:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1895:           <value type="boolean">true</value>
 1896:         </element>
 1897:       </correct>
 1898:       <valid>
 1899:         <doc>1</doc>
 1900:       </valid>
 1901:       <invalid>
 1902:         <doc>false</doc>
 1903:       </invalid>
 1904:       <invalid>
 1905:         <doc>0</doc>
 1906:       </invalid>
 1907:     </testCase>
 1908:     <testCase>
 1909:       <correct>
 1910:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1911:           <value type="boolean">false</value>
 1912:         </element>
 1913:       </correct>
 1914:       <valid>
 1915:         <doc>0</doc>
 1916:       </valid>
 1917:       <invalid>
 1918:         <doc>true</doc>
 1919:       </invalid>
 1920:       <invalid>
 1921:         <doc>1</doc>
 1922:       </invalid>
 1923:     </testCase>
 1924:   </testSuite>
 1925:   <testSuite>
 1926:     <documentation>Datatype base64Binary</documentation>
 1927:     <testCase>
 1928:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 1929:       <correct>
 1930:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 1931:           <data type="base64Binary"/>
 1932:         </element>
 1933:       </correct>
 1934:       <valid>
 1935:         <doc>AAAA</doc>
 1936:       </valid>
 1937:       <valid>
 1938:         <doc>abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR
 1939: STUV WXYZ 0123 4567 89+/</doc>
 1940:       </valid>
 1941:       <valid>
 1942:         <doc>BA==</doc>
 1943:       </valid>
 1944:       <valid>
 1945:         <doc></doc>
 1946:       </valid>
 1947:       <valid>
 1948:         <doc>BA==</doc>
 1949:       </valid>
 1950:       <valid>
 1951:         <doc>BQ==</doc>
 1952:       </valid>
 1953:       <valid>
 1954:         <doc>Bg==</doc>
 1955:       </valid>
 1956:       <valid>
 1957:         <doc>Bw==</doc>
 1958:       </valid>
 1959:       <valid>
 1960:         <doc>BBA=</doc>
 1961:       </valid>
 1962:       <valid>
 1963:         <doc>BBA=</doc>
 1964:       </valid>
 1965:       <valid>
 1966:         <doc>BBE=</doc>
 1967:       </valid>
 1968:       <valid>
 1969:         <doc>BBI=</doc>
 1970:       </valid>
 1971:       <valid>
 1972:         <doc>BBM=</doc>
 1973:       </valid>
 1974:       <valid>
 1975:         <doc>BBQ=</doc>
 1976:       </valid>
 1977:       <valid>
 1978:         <doc>BBU=</doc>
 1979:       </valid>
 1980:       <valid>
 1981:         <doc>BBY=</doc>
 1982:       </valid>
 1983:       <valid>
 1984:         <doc>BBc=</doc>
 1985:       </valid>
 1986:       <valid>
 1987:         <doc>BBg=</doc>
 1988:       </valid>
 1989:       <valid>
 1990:         <doc>BBk=</doc>
 1991:       </valid>
 1992:       <valid>
 1993:         <doc>BBo=</doc>
 1994:       </valid>
 1995:       <valid>
 1996:         <doc>BBs=</doc>
 1997:       </valid>
 1998:       <valid>
 1999:         <doc>BBw=</doc>
 2000:       </valid>
 2001:       <valid>
 2002:         <doc>BB0=</doc>
 2003:       </valid>
 2004:       <valid>
 2005:         <doc>BB4=</doc>
 2006:       </valid>
 2007:       <valid>
 2008:         <doc>BB8=</doc>
 2009:       </valid>
 2010:       <invalid>
 2011:         <doc>====</doc>
 2012:       </invalid>
 2013:       <invalid>
 2014:         <doc>BB==</doc>
 2015:       </invalid>
 2016:       <invalid>
 2017:         <doc>BBB=</doc>
 2018:       </invalid>
 2019:       <invalid>
 2020:         <doc>B===</doc>
 2021:       </invalid>
 2022:       <invalid>
 2023:         <doc>B</doc>
 2024:       </invalid>
 2025:     </testCase>
 2026:     <testCase>
 2027:       <correct>
 2028:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2029:           <value type="base64Binary">deadbeef</value>
 2030:         </element>
 2031:       </correct>
 2032:       <valid>
 2033:         <doc>d
 2034: &#13;	e a d
 2035: b eef </doc>
 2036:       </valid>
 2037:       <invalid>
 2038:         <doc>DEADBEEF</doc>
 2039:       </invalid>
 2040:       <invalid>
 2041:         <doc>D
 2042: &#13;	E A D
 2043: B EEF </doc>
 2044:       </invalid>
 2045:     </testCase>
 2046:     <testCase>
 2047:       <correct>
 2048:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2049:           <value type="base64Binary">DEADBEEF</value>
 2050:         </element>
 2051:       </correct>
 2052:       <valid>
 2053:         <doc>D
 2054: &#13;	E A D
 2055: B EEF </doc>
 2056:       </valid>
 2057:       <invalid>
 2058:         <doc>deadbeef</doc>
 2059:       </invalid>
 2060:       <invalid>
 2061:         <doc>d
 2062: &#13;	e a d
 2063: b eef </doc>
 2064:       </invalid>
 2065:     </testCase>
 2066:     <testCase>
 2067:       <correct>
 2068:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2069:           <data type="base64Binary">
 2070:             <param name="length">0</param>
 2071:           </data>
 2072:         </element>
 2073:       </correct>
 2074:       <valid>
 2075:         <doc></doc>
 2076:       </valid>
 2077:     </testCase>
 2078:     <testCase>
 2079:       <correct>
 2080:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2081:           <data type="base64Binary">
 2082:             <param name="length">1</param>
 2083:           </data>
 2084:         </element>
 2085:       </correct>
 2086:       <invalid>
 2087:         <doc></doc>
 2088:       </invalid>
 2089:     </testCase>
 2090:     <testCase>
 2091:       <correct>
 2092:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2093:           <data type="base64Binary">
 2094:             <param name="length">6</param>
 2095:           </data>
 2096:         </element>
 2097:       </correct>
 2098:       <valid>
 2099:         <doc>deadbeef</doc>
 2100:       </valid>
 2101:     </testCase>
 2102:     <testCase>
 2103:       <correct>
 2104:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2105:           <data type="base64Binary">
 2106:             <param name="length">7</param>
 2107:           </data>
 2108:         </element>
 2109:       </correct>
 2110:       <invalid>
 2111:         <doc>deadbeef</doc>
 2112:       </invalid>
 2113:     </testCase>
 2114:     <testCase>
 2115:       <correct>
 2116:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2117:           <data type="base64Binary">
 2118:             <param name="length">5</param>
 2119:           </data>
 2120:         </element>
 2121:       </correct>
 2122:       <invalid>
 2123:         <doc>deadbeef</doc>
 2124:       </invalid>
 2125:     </testCase>
 2126:     <testCase>
 2127:       <correct>
 2128:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2129:           <data type="base64Binary">
 2130:             <param name="length">1</param>
 2131:           </data>
 2132:         </element>
 2133:       </correct>
 2134:       <valid>
 2135:         <doc>BA==</doc>
 2136:       </valid>
 2137:     </testCase>
 2138:     <testCase>
 2139:       <correct>
 2140:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2141:           <data type="base64Binary">
 2142:             <param name="length">2</param>
 2143:           </data>
 2144:         </element>
 2145:       </correct>
 2146:       <invalid>
 2147:         <doc>BA==</doc>
 2148:       </invalid>
 2149:     </testCase>
 2150:     <testCase>
 2151:       <correct>
 2152:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2153:           <data type="base64Binary">
 2154:             <param name="length">0</param>
 2155:           </data>
 2156:         </element>
 2157:       </correct>
 2158:       <invalid>
 2159:         <doc>BA==</doc>
 2160:       </invalid>
 2161:     </testCase>
 2162:     <testCase>
 2163:       <correct>
 2164:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2165:           <data type="base64Binary">
 2166:             <param name="length">2</param>
 2167:           </data>
 2168:         </element>
 2169:       </correct>
 2170:       <valid>
 2171:         <doc>BBA=</doc>
 2172:       </valid>
 2173:     </testCase>
 2174:     <testCase>
 2175:       <correct>
 2176:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2177:           <data type="base64Binary">
 2178:             <param name="length">3</param>
 2179:           </data>
 2180:         </element>
 2181:       </correct>
 2182:       <invalid>
 2183:         <doc>BBA=</doc>
 2184:       </invalid>
 2185:     </testCase>
 2186:     <testCase>
 2187:       <correct>
 2188:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2189:           <data type="base64Binary">
 2190:             <param name="length">1</param>
 2191:           </data>
 2192:         </element>
 2193:       </correct>
 2194:       <invalid>
 2195:         <doc>BBA=</doc>
 2196:       </invalid>
 2197:     </testCase>
 2198:     <testCase>
 2199:       <correct>
 2200:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2201:           <data type="base64Binary">
 2202:             <param name="length">3</param>
 2203:           </data>
 2204:         </element>
 2205:       </correct>
 2206:       <valid>
 2207:         <doc>dead</doc>
 2208:       </valid>
 2209:     </testCase>
 2210:     <testCase>
 2211:       <correct>
 2212:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2213:           <data type="base64Binary">
 2214:             <param name="length">4</param>
 2215:           </data>
 2216:         </element>
 2217:       </correct>
 2218:       <invalid>
 2219:         <doc>dead</doc>
 2220:       </invalid>
 2221:     </testCase>
 2222:     <testCase>
 2223:       <correct>
 2224:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2225:           <data type="base64Binary">
 2226:             <param name="length">2</param>
 2227:           </data>
 2228:         </element>
 2229:       </correct>
 2230:       <invalid>
 2231:         <doc>dead</doc>
 2232:       </invalid>
 2233:     </testCase>
 2234:     <testCase>
 2235:       <correct>
 2236:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2237:           <data type="base64Binary">
 2238:             <param name="length">4</param>
 2239:           </data>
 2240:         </element>
 2241:       </correct>
 2242:       <valid>
 2243:         <doc>deadBA==</doc>
 2244:       </valid>
 2245:     </testCase>
 2246:     <testCase>
 2247:       <correct>
 2248:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2249:           <data type="base64Binary">
 2250:             <param name="length">5</param>
 2251:           </data>
 2252:         </element>
 2253:       </correct>
 2254:       <invalid>
 2255:         <doc>deadBA==</doc>
 2256:       </invalid>
 2257:     </testCase>
 2258:     <testCase>
 2259:       <correct>
 2260:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2261:           <data type="base64Binary">
 2262:             <param name="length">3</param>
 2263:           </data>
 2264:         </element>
 2265:       </correct>
 2266:       <invalid>
 2267:         <doc>deadBA==</doc>
 2268:       </invalid>
 2269:     </testCase>
 2270:   </testSuite>
 2271:   <testSuite>
 2272:     <documentation>Datatype hexBinary</documentation>
 2273:     <testCase>
 2274:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 2275:       <correct>
 2276:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2277:           <data type="hexBinary"/>
 2278:         </element>
 2279:       </correct>
 2280:       <valid>
 2281:         <doc>deadbeef</doc>
 2282:       </valid>
 2283:       <valid>
 2284:         <doc></doc>
 2285:       </valid>
 2286:       <valid>
 2287:         <doc>0123456789ABCDEFabcdef</doc>
 2288:       </valid>
 2289:       <invalid>
 2290:         <doc>00 00</doc>
 2291:       </invalid>
 2292:       <invalid>
 2293:         <doc>00.00</doc>
 2294:       </invalid>
 2295:       <invalid>
 2296:         <doc>0G</doc>
 2297:       </invalid>
 2298:     </testCase>
 2299:     <testCase>
 2300:       <correct>
 2301:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2302:           <value type="hexBinary">00</value>
 2303:         </element>
 2304:       </correct>
 2305:       <valid>
 2306:         <doc>
 2307: 	00
 2308:    </doc>
 2309:       </valid>
 2310:       <invalid>
 2311:         <doc>01</doc>
 2312:       </invalid>
 2313:       <invalid>
 2314:         <doc>10</doc>
 2315:       </invalid>
 2316:       <invalid>
 2317:         <doc>0a</doc>
 2318:       </invalid>
 2319:       <invalid>
 2320:         <doc>0A</doc>
 2321:       </invalid>
 2322:     </testCase>
 2323:     <testCase>
 2324:       <correct>
 2325:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2326:           <value type="hexBinary">01</value>
 2327:         </element>
 2328:       </correct>
 2329:       <invalid>
 2330:         <doc>00</doc>
 2331:       </invalid>
 2332:       <invalid>
 2333:         <doc>
 2334: 	00
 2335:    </doc>
 2336:       </invalid>
 2337:       <invalid>
 2338:         <doc>10</doc>
 2339:       </invalid>
 2340:       <invalid>
 2341:         <doc>0a</doc>
 2342:       </invalid>
 2343:       <invalid>
 2344:         <doc>0A</doc>
 2345:       </invalid>
 2346:     </testCase>
 2347:     <testCase>
 2348:       <correct>
 2349:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2350:           <value type="hexBinary">10</value>
 2351:         </element>
 2352:       </correct>
 2353:       <invalid>
 2354:         <doc>00</doc>
 2355:       </invalid>
 2356:       <invalid>
 2357:         <doc>
 2358: 	00
 2359:    </doc>
 2360:       </invalid>
 2361:       <invalid>
 2362:         <doc>01</doc>
 2363:       </invalid>
 2364:       <invalid>
 2365:         <doc>0a</doc>
 2366:       </invalid>
 2367:       <invalid>
 2368:         <doc>0A</doc>
 2369:       </invalid>
 2370:     </testCase>
 2371:     <testCase>
 2372:       <correct>
 2373:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2374:           <value type="hexBinary">0a</value>
 2375:         </element>
 2376:       </correct>
 2377:       <valid>
 2378:         <doc>0A</doc>
 2379:       </valid>
 2380:       <invalid>
 2381:         <doc>00</doc>
 2382:       </invalid>
 2383:       <invalid>
 2384:         <doc>
 2385: 	00
 2386:    </doc>
 2387:       </invalid>
 2388:       <invalid>
 2389:         <doc>01</doc>
 2390:       </invalid>
 2391:       <invalid>
 2392:         <doc>10</doc>
 2393:       </invalid>
 2394:     </testCase>
 2395:     <testCase>
 2396:       <correct>
 2397:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2398:           <data type="hexBinary">
 2399:             <param name="length">0</param>
 2400:           </data>
 2401:         </element>
 2402:       </correct>
 2403:       <valid>
 2404:         <doc></doc>
 2405:       </valid>
 2406:     </testCase>
 2407:     <testCase>
 2408:       <correct>
 2409:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2410:           <data type="hexBinary">
 2411:             <param name="length">1</param>
 2412:           </data>
 2413:         </element>
 2414:       </correct>
 2415:       <invalid>
 2416:         <doc></doc>
 2417:       </invalid>
 2418:     </testCase>
 2419:     <testCase>
 2420:       <correct>
 2421:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2422:           <data type="hexBinary">
 2423:             <param name="length">1</param>
 2424:           </data>
 2425:         </element>
 2426:       </correct>
 2427:       <valid>
 2428:         <doc>00</doc>
 2429:       </valid>
 2430:     </testCase>
 2431:     <testCase>
 2432:       <correct>
 2433:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2434:           <data type="hexBinary">
 2435:             <param name="length">2</param>
 2436:           </data>
 2437:         </element>
 2438:       </correct>
 2439:       <invalid>
 2440:         <doc>00</doc>
 2441:       </invalid>
 2442:     </testCase>
 2443:     <testCase>
 2444:       <correct>
 2445:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2446:           <data type="hexBinary">
 2447:             <param name="length">0</param>
 2448:           </data>
 2449:         </element>
 2450:       </correct>
 2451:       <invalid>
 2452:         <doc>00</doc>
 2453:       </invalid>
 2454:     </testCase>
 2455:     <testCase>
 2456:       <correct>
 2457:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2458:           <data type="hexBinary">
 2459:             <param name="length">2</param>
 2460:           </data>
 2461:         </element>
 2462:       </correct>
 2463:       <valid>
 2464:         <doc>0000</doc>
 2465:       </valid>
 2466:     </testCase>
 2467:     <testCase>
 2468:       <correct>
 2469:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2470:           <data type="hexBinary">
 2471:             <param name="length">3</param>
 2472:           </data>
 2473:         </element>
 2474:       </correct>
 2475:       <invalid>
 2476:         <doc>0000</doc>
 2477:       </invalid>
 2478:     </testCase>
 2479:     <testCase>
 2480:       <correct>
 2481:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2482:           <data type="hexBinary">
 2483:             <param name="length">1</param>
 2484:           </data>
 2485:         </element>
 2486:       </correct>
 2487:       <invalid>
 2488:         <doc>0000</doc>
 2489:       </invalid>
 2490:     </testCase>
 2491:     <testCase>
 2492:       <correct>
 2493:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2494:           <data type="hexBinary">
 2495:             <param name="length">2</param>
 2496:           </data>
 2497:         </element>
 2498:       </correct>
 2499:       <valid>
 2500:         <doc> 0000 </doc>
 2501:       </valid>
 2502:     </testCase>
 2503:     <testCase>
 2504:       <correct>
 2505:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2506:           <data type="hexBinary">
 2507:             <param name="length">3</param>
 2508:           </data>
 2509:         </element>
 2510:       </correct>
 2511:       <invalid>
 2512:         <doc> 0000 </doc>
 2513:       </invalid>
 2514:     </testCase>
 2515:     <testCase>
 2516:       <correct>
 2517:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2518:           <data type="hexBinary">
 2519:             <param name="length">1</param>
 2520:           </data>
 2521:         </element>
 2522:       </correct>
 2523:       <invalid>
 2524:         <doc> 0000 </doc>
 2525:       </invalid>
 2526:     </testCase>
 2527:     <testCase>
 2528:       <correct>
 2529:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2530:           <data type="hexBinary">
 2531:             <param name="length">2</param>
 2532:           </data>
 2533:         </element>
 2534:       </correct>
 2535:       <valid>
 2536:         <doc>AAAA</doc>
 2537:       </valid>
 2538:     </testCase>
 2539:     <testCase>
 2540:       <correct>
 2541:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2542:           <data type="hexBinary">
 2543:             <param name="length">3</param>
 2544:           </data>
 2545:         </element>
 2546:       </correct>
 2547:       <invalid>
 2548:         <doc>AAAA</doc>
 2549:       </invalid>
 2550:     </testCase>
 2551:     <testCase>
 2552:       <correct>
 2553:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2554:           <data type="hexBinary">
 2555:             <param name="length">1</param>
 2556:           </data>
 2557:         </element>
 2558:       </correct>
 2559:       <invalid>
 2560:         <doc>AAAA</doc>
 2561:       </invalid>
 2562:     </testCase>
 2563:   </testSuite>
 2564:   <testSuite>
 2565:     <documentation>Datatype float</documentation>
 2566:     <testCase>
 2567:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 2568:       <correct>
 2569:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2570:           <data type="float"/>
 2571:         </element>
 2572:       </correct>
 2573:       <valid>
 2574:         <doc>1.0</doc>
 2575:       </valid>
 2576:       <valid>
 2577:         <doc>1.</doc>
 2578:       </valid>
 2579:       <valid>
 2580:         <doc>.1</doc>
 2581:       </valid>
 2582:       <invalid>
 2583:         <doc>- 1</doc>
 2584:       </invalid>
 2585:       <invalid>
 2586:         <doc>1 .0</doc>
 2587:       </invalid>
 2588:       <invalid>
 2589:         <doc>+INF</doc>
 2590:       </invalid>
 2591:       <invalid>
 2592:         <doc>+NaN</doc>
 2593:       </invalid>
 2594:       <invalid>
 2595:         <doc>-NaN</doc>
 2596:       </invalid>
 2597:     </testCase>
 2598:     <testCase>
 2599:       <correct>
 2600:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2601:           <value type="float">0</value>
 2602:         </element>
 2603:       </correct>
 2604:       <valid>
 2605:         <doc>-0</doc>
 2606:       </valid>
 2607:       <valid>
 2608:         <doc>+0</doc>
 2609:       </valid>
 2610:       <valid>
 2611:         <doc> 0 </doc>
 2612:       </valid>
 2613:       <valid>
 2614:         <doc> 0. </doc>
 2615:       </valid>
 2616:       <valid>
 2617:         <doc> .0 </doc>
 2618:       </valid>
 2619:       <valid>
 2620:         <doc> 0.0 </doc>
 2621:       </valid>
 2622:       <valid>
 2623:         <doc> 0e0 </doc>
 2624:       </valid>
 2625:       <valid>
 2626:         <doc> 0E0 </doc>
 2627:       </valid>
 2628:       <valid>
 2629:         <doc> 0E+0 </doc>
 2630:       </valid>
 2631:       <valid>
 2632:         <doc> 0E-0 </doc>
 2633:       </valid>
 2634:       <invalid>
 2635:         <doc>1E0</doc>
 2636:       </invalid>
 2637:       <invalid>
 2638:         <doc>0.1E1</doc>
 2639:       </invalid>
 2640:       <invalid>
 2641:         <doc>10E-1</doc>
 2642:       </invalid>
 2643:       <invalid>
 2644:         <doc>+1</doc>
 2645:       </invalid>
 2646:       <invalid>
 2647:         <doc>-1</doc>
 2648:       </invalid>
 2649:       <invalid>
 2650:         <doc>INF</doc>
 2651:       </invalid>
 2652:       <invalid>
 2653:         <doc>INF </doc>
 2654:       </invalid>
 2655:       <invalid>
 2656:         <doc>-INF</doc>
 2657:       </invalid>
 2658:       <invalid>
 2659:         <doc>-INF </doc>
 2660:       </invalid>
 2661:       <invalid>
 2662:         <doc>NaN</doc>
 2663:       </invalid>
 2664:       <invalid>
 2665:         <doc> NaN </doc>
 2666:       </invalid>
 2667:     </testCase>
 2668:     <testCase>
 2669:       <correct>
 2670:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2671:           <value type="float">1E0</value>
 2672:         </element>
 2673:       </correct>
 2674:       <valid>
 2675:         <doc>0.1E1</doc>
 2676:       </valid>
 2677:       <valid>
 2678:         <doc>10E-1</doc>
 2679:       </valid>
 2680:       <valid>
 2681:         <doc>+1</doc>
 2682:       </valid>
 2683:       <invalid>
 2684:         <doc>0</doc>
 2685:       </invalid>
 2686:       <invalid>
 2687:         <doc>-0</doc>
 2688:       </invalid>
 2689:       <invalid>
 2690:         <doc>+0</doc>
 2691:       </invalid>
 2692:       <invalid>
 2693:         <doc> 0 </doc>
 2694:       </invalid>
 2695:       <invalid>
 2696:         <doc> 0. </doc>
 2697:       </invalid>
 2698:       <invalid>
 2699:         <doc> .0 </doc>
 2700:       </invalid>
 2701:       <invalid>
 2702:         <doc> 0.0 </doc>
 2703:       </invalid>
 2704:       <invalid>
 2705:         <doc> 0e0 </doc>
 2706:       </invalid>
 2707:       <invalid>
 2708:         <doc> 0E0 </doc>
 2709:       </invalid>
 2710:       <invalid>
 2711:         <doc> 0E+0 </doc>
 2712:       </invalid>
 2713:       <invalid>
 2714:         <doc> 0E-0 </doc>
 2715:       </invalid>
 2716:       <invalid>
 2717:         <doc>-1</doc>
 2718:       </invalid>
 2719:       <invalid>
 2720:         <doc>INF</doc>
 2721:       </invalid>
 2722:       <invalid>
 2723:         <doc>INF </doc>
 2724:       </invalid>
 2725:       <invalid>
 2726:         <doc>-INF</doc>
 2727:       </invalid>
 2728:       <invalid>
 2729:         <doc>-INF </doc>
 2730:       </invalid>
 2731:       <invalid>
 2732:         <doc>NaN</doc>
 2733:       </invalid>
 2734:       <invalid>
 2735:         <doc> NaN </doc>
 2736:       </invalid>
 2737:     </testCase>
 2738:     <testCase>
 2739:       <correct>
 2740:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2741:           <value type="float">-1</value>
 2742:         </element>
 2743:       </correct>
 2744:       <invalid>
 2745:         <doc>0</doc>
 2746:       </invalid>
 2747:       <invalid>
 2748:         <doc>-0</doc>
 2749:       </invalid>
 2750:       <invalid>
 2751:         <doc>+0</doc>
 2752:       </invalid>
 2753:       <invalid>
 2754:         <doc> 0 </doc>
 2755:       </invalid>
 2756:       <invalid>
 2757:         <doc> 0. </doc>
 2758:       </invalid>
 2759:       <invalid>
 2760:         <doc> .0 </doc>
 2761:       </invalid>
 2762:       <invalid>
 2763:         <doc> 0.0 </doc>
 2764:       </invalid>
 2765:       <invalid>
 2766:         <doc> 0e0 </doc>
 2767:       </invalid>
 2768:       <invalid>
 2769:         <doc> 0E0 </doc>
 2770:       </invalid>
 2771:       <invalid>
 2772:         <doc> 0E+0 </doc>
 2773:       </invalid>
 2774:       <invalid>
 2775:         <doc> 0E-0 </doc>
 2776:       </invalid>
 2777:       <invalid>
 2778:         <doc>1E0</doc>
 2779:       </invalid>
 2780:       <invalid>
 2781:         <doc>0.1E1</doc>
 2782:       </invalid>
 2783:       <invalid>
 2784:         <doc>10E-1</doc>
 2785:       </invalid>
 2786:       <invalid>
 2787:         <doc>+1</doc>
 2788:       </invalid>
 2789:       <invalid>
 2790:         <doc>INF</doc>
 2791:       </invalid>
 2792:       <invalid>
 2793:         <doc>INF </doc>
 2794:       </invalid>
 2795:       <invalid>
 2796:         <doc>-INF</doc>
 2797:       </invalid>
 2798:       <invalid>
 2799:         <doc>-INF </doc>
 2800:       </invalid>
 2801:       <invalid>
 2802:         <doc>NaN</doc>
 2803:       </invalid>
 2804:       <invalid>
 2805:         <doc> NaN </doc>
 2806:       </invalid>
 2807:     </testCase>
 2808:     <testCase>
 2809:       <correct>
 2810:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2811:           <value type="float">INF</value>
 2812:         </element>
 2813:       </correct>
 2814:       <valid>
 2815:         <doc>INF </doc>
 2816:       </valid>
 2817:       <invalid>
 2818:         <doc>0</doc>
 2819:       </invalid>
 2820:       <invalid>
 2821:         <doc>-0</doc>
 2822:       </invalid>
 2823:       <invalid>
 2824:         <doc>+0</doc>
 2825:       </invalid>
 2826:       <invalid>
 2827:         <doc> 0 </doc>
 2828:       </invalid>
 2829:       <invalid>
 2830:         <doc> 0. </doc>
 2831:       </invalid>
 2832:       <invalid>
 2833:         <doc> .0 </doc>
 2834:       </invalid>
 2835:       <invalid>
 2836:         <doc> 0.0 </doc>
 2837:       </invalid>
 2838:       <invalid>
 2839:         <doc> 0e0 </doc>
 2840:       </invalid>
 2841:       <invalid>
 2842:         <doc> 0E0 </doc>
 2843:       </invalid>
 2844:       <invalid>
 2845:         <doc> 0E+0 </doc>
 2846:       </invalid>
 2847:       <invalid>
 2848:         <doc> 0E-0 </doc>
 2849:       </invalid>
 2850:       <invalid>
 2851:         <doc>1E0</doc>
 2852:       </invalid>
 2853:       <invalid>
 2854:         <doc>0.1E1</doc>
 2855:       </invalid>
 2856:       <invalid>
 2857:         <doc>10E-1</doc>
 2858:       </invalid>
 2859:       <invalid>
 2860:         <doc>+1</doc>
 2861:       </invalid>
 2862:       <invalid>
 2863:         <doc>-1</doc>
 2864:       </invalid>
 2865:       <invalid>
 2866:         <doc>-INF</doc>
 2867:       </invalid>
 2868:       <invalid>
 2869:         <doc>-INF </doc>
 2870:       </invalid>
 2871:       <invalid>
 2872:         <doc>NaN</doc>
 2873:       </invalid>
 2874:       <invalid>
 2875:         <doc> NaN </doc>
 2876:       </invalid>
 2877:     </testCase>
 2878:     <testCase>
 2879:       <correct>
 2880:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2881:           <value type="float">-INF</value>
 2882:         </element>
 2883:       </correct>
 2884:       <valid>
 2885:         <doc>-INF </doc>
 2886:       </valid>
 2887:       <invalid>
 2888:         <doc>0</doc>
 2889:       </invalid>
 2890:       <invalid>
 2891:         <doc>-0</doc>
 2892:       </invalid>
 2893:       <invalid>
 2894:         <doc>+0</doc>
 2895:       </invalid>
 2896:       <invalid>
 2897:         <doc> 0 </doc>
 2898:       </invalid>
 2899:       <invalid>
 2900:         <doc> 0. </doc>
 2901:       </invalid>
 2902:       <invalid>
 2903:         <doc> .0 </doc>
 2904:       </invalid>
 2905:       <invalid>
 2906:         <doc> 0.0 </doc>
 2907:       </invalid>
 2908:       <invalid>
 2909:         <doc> 0e0 </doc>
 2910:       </invalid>
 2911:       <invalid>
 2912:         <doc> 0E0 </doc>
 2913:       </invalid>
 2914:       <invalid>
 2915:         <doc> 0E+0 </doc>
 2916:       </invalid>
 2917:       <invalid>
 2918:         <doc> 0E-0 </doc>
 2919:       </invalid>
 2920:       <invalid>
 2921:         <doc>1E0</doc>
 2922:       </invalid>
 2923:       <invalid>
 2924:         <doc>0.1E1</doc>
 2925:       </invalid>
 2926:       <invalid>
 2927:         <doc>10E-1</doc>
 2928:       </invalid>
 2929:       <invalid>
 2930:         <doc>+1</doc>
 2931:       </invalid>
 2932:       <invalid>
 2933:         <doc>-1</doc>
 2934:       </invalid>
 2935:       <invalid>
 2936:         <doc>INF</doc>
 2937:       </invalid>
 2938:       <invalid>
 2939:         <doc>INF </doc>
 2940:       </invalid>
 2941:       <invalid>
 2942:         <doc>NaN</doc>
 2943:       </invalid>
 2944:       <invalid>
 2945:         <doc> NaN </doc>
 2946:       </invalid>
 2947:     </testCase>
 2948:     <testCase>
 2949:       <correct>
 2950:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 2951:           <value type="float">NaN</value>
 2952:         </element>
 2953:       </correct>
 2954:       <valid>
 2955:         <doc> NaN </doc>
 2956:       </valid>
 2957:       <invalid>
 2958:         <doc>0</doc>
 2959:       </invalid>
 2960:       <invalid>
 2961:         <doc>-0</doc>
 2962:       </invalid>
 2963:       <invalid>
 2964:         <doc>+0</doc>
 2965:       </invalid>
 2966:       <invalid>
 2967:         <doc> 0 </doc>
 2968:       </invalid>
 2969:       <invalid>
 2970:         <doc> 0. </doc>
 2971:       </invalid>
 2972:       <invalid>
 2973:         <doc> .0 </doc>
 2974:       </invalid>
 2975:       <invalid>
 2976:         <doc> 0.0 </doc>
 2977:       </invalid>
 2978:       <invalid>
 2979:         <doc> 0e0 </doc>
 2980:       </invalid>
 2981:       <invalid>
 2982:         <doc> 0E0 </doc>
 2983:       </invalid>
 2984:       <invalid>
 2985:         <doc> 0E+0 </doc>
 2986:       </invalid>
 2987:       <invalid>
 2988:         <doc> 0E-0 </doc>
 2989:       </invalid>
 2990:       <invalid>
 2991:         <doc>1E0</doc>
 2992:       </invalid>
 2993:       <invalid>
 2994:         <doc>0.1E1</doc>
 2995:       </invalid>
 2996:       <invalid>
 2997:         <doc>10E-1</doc>
 2998:       </invalid>
 2999:       <invalid>
 3000:         <doc>+1</doc>
 3001:       </invalid>
 3002:       <invalid>
 3003:         <doc>-1</doc>
 3004:       </invalid>
 3005:       <invalid>
 3006:         <doc>INF</doc>
 3007:       </invalid>
 3008:       <invalid>
 3009:         <doc>INF </doc>
 3010:       </invalid>
 3011:       <invalid>
 3012:         <doc>-INF</doc>
 3013:       </invalid>
 3014:       <invalid>
 3015:         <doc>-INF </doc>
 3016:       </invalid>
 3017:     </testCase>
 3018:     <testCase>
 3019:       <correct>
 3020:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3021:           <data type="float">
 3022:             <param name="minExclusive">-INF</param>
 3023:           </data>
 3024:         </element>
 3025:       </correct>
 3026:       <valid>
 3027:         <doc>-1000</doc>
 3028:       </valid>
 3029:       <invalid>
 3030:         <doc>-INF</doc>
 3031:       </invalid>
 3032:     </testCase>
 3033:     <testCase>
 3034:       <correct>
 3035:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3036:           <data type="float">
 3037:             <param name="minExclusive">-1000</param>
 3038:           </data>
 3039:         </element>
 3040:       </correct>
 3041:       <invalid>
 3042:         <doc>-INF</doc>
 3043:       </invalid>
 3044:       <invalid>
 3045:         <doc>-1000</doc>
 3046:       </invalid>
 3047:     </testCase>
 3048:     <testCase>
 3049:       <correct>
 3050:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3051:           <data type="float">
 3052:             <param name="minExclusive">1000</param>
 3053:           </data>
 3054:         </element>
 3055:       </correct>
 3056:       <valid>
 3057:         <doc>INF</doc>
 3058:       </valid>
 3059:       <invalid>
 3060:         <doc>1000</doc>
 3061:       </invalid>
 3062:     </testCase>
 3063:     <testCase>
 3064:       <correct>
 3065:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3066:           <data type="float">
 3067:             <param name="minExclusive">INF</param>
 3068:           </data>
 3069:         </element>
 3070:       </correct>
 3071:       <invalid>
 3072:         <doc>1000</doc>
 3073:       </invalid>
 3074:       <invalid>
 3075:         <doc>INF</doc>
 3076:       </invalid>
 3077:     </testCase>
 3078:     <testCase>
 3079:       <correct>
 3080:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3081:           <data type="float">
 3082:             <param name="minExclusive">-1</param>
 3083:           </data>
 3084:         </element>
 3085:       </correct>
 3086:       <valid>
 3087:         <doc>1</doc>
 3088:       </valid>
 3089:       <invalid>
 3090:         <doc>-1</doc>
 3091:       </invalid>
 3092:     </testCase>
 3093:     <testCase>
 3094:       <correct>
 3095:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3096:           <data type="float">
 3097:             <param name="minExclusive">1</param>
 3098:           </data>
 3099:         </element>
 3100:       </correct>
 3101:       <invalid>
 3102:         <doc>-1</doc>
 3103:       </invalid>
 3104:       <invalid>
 3105:         <doc>1</doc>
 3106:       </invalid>
 3107:     </testCase>
 3108:     <testCase>
 3109:       <correct>
 3110:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3111:           <data type="float">
 3112:             <param name="minExclusive">0</param>
 3113:           </data>
 3114:         </element>
 3115:       </correct>
 3116:       <valid>
 3117:         <doc>1</doc>
 3118:       </valid>
 3119:       <invalid>
 3120:         <doc>0</doc>
 3121:       </invalid>
 3122:     </testCase>
 3123:     <testCase>
 3124:       <correct>
 3125:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3126:           <data type="float">
 3127:             <param name="minExclusive">1</param>
 3128:           </data>
 3129:         </element>
 3130:       </correct>
 3131:       <invalid>
 3132:         <doc>0</doc>
 3133:       </invalid>
 3134:       <invalid>
 3135:         <doc>1</doc>
 3136:       </invalid>
 3137:     </testCase>
 3138:     <testCase>
 3139:       <correct>
 3140:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3141:           <data type="float">
 3142:             <param name="minExclusive">-1</param>
 3143:           </data>
 3144:         </element>
 3145:       </correct>
 3146:       <valid>
 3147:         <doc>0</doc>
 3148:       </valid>
 3149:       <invalid>
 3150:         <doc>-1</doc>
 3151:       </invalid>
 3152:     </testCase>
 3153:     <testCase>
 3154:       <correct>
 3155:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3156:           <data type="float">
 3157:             <param name="minExclusive">0</param>
 3158:           </data>
 3159:         </element>
 3160:       </correct>
 3161:       <invalid>
 3162:         <doc>-1</doc>
 3163:       </invalid>
 3164:       <invalid>
 3165:         <doc>0</doc>
 3166:       </invalid>
 3167:     </testCase>
 3168:   </testSuite>
 3169:   <testSuite>
 3170:     <documentation>Datatype double</documentation>
 3171:     <testCase>
 3172:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 3173:       <correct>
 3174:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3175:           <data type="double"/>
 3176:         </element>
 3177:       </correct>
 3178:       <valid>
 3179:         <doc>1.0</doc>
 3180:       </valid>
 3181:       <valid>
 3182:         <doc>1.</doc>
 3183:       </valid>
 3184:       <valid>
 3185:         <doc>.1</doc>
 3186:       </valid>
 3187:       <invalid>
 3188:         <doc>- 1</doc>
 3189:       </invalid>
 3190:       <invalid>
 3191:         <doc>1 .0</doc>
 3192:       </invalid>
 3193:       <invalid>
 3194:         <doc>+INF</doc>
 3195:       </invalid>
 3196:       <invalid>
 3197:         <doc>+NaN</doc>
 3198:       </invalid>
 3199:       <invalid>
 3200:         <doc>-NaN</doc>
 3201:       </invalid>
 3202:     </testCase>
 3203:     <testCase>
 3204:       <correct>
 3205:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3206:           <value type="double">0</value>
 3207:         </element>
 3208:       </correct>
 3209:       <valid>
 3210:         <doc>-0</doc>
 3211:       </valid>
 3212:       <valid>
 3213:         <doc>+0</doc>
 3214:       </valid>
 3215:       <valid>
 3216:         <doc> 0 </doc>
 3217:       </valid>
 3218:       <valid>
 3219:         <doc> 0. </doc>
 3220:       </valid>
 3221:       <valid>
 3222:         <doc> .0 </doc>
 3223:       </valid>
 3224:       <valid>
 3225:         <doc> 0.0 </doc>
 3226:       </valid>
 3227:       <valid>
 3228:         <doc> 0e0 </doc>
 3229:       </valid>
 3230:       <valid>
 3231:         <doc> 0E0 </doc>
 3232:       </valid>
 3233:       <valid>
 3234:         <doc> 0E+0 </doc>
 3235:       </valid>
 3236:       <valid>
 3237:         <doc> 0E-0 </doc>
 3238:       </valid>
 3239:       <invalid>
 3240:         <doc>1E0</doc>
 3241:       </invalid>
 3242:       <invalid>
 3243:         <doc>0.1E1</doc>
 3244:       </invalid>
 3245:       <invalid>
 3246:         <doc>10E-1</doc>
 3247:       </invalid>
 3248:       <invalid>
 3249:         <doc>+1</doc>
 3250:       </invalid>
 3251:       <invalid>
 3252:         <doc>-1</doc>
 3253:       </invalid>
 3254:       <invalid>
 3255:         <doc>INF</doc>
 3256:       </invalid>
 3257:       <invalid>
 3258:         <doc>INF </doc>
 3259:       </invalid>
 3260:       <invalid>
 3261:         <doc>-INF</doc>
 3262:       </invalid>
 3263:       <invalid>
 3264:         <doc>-INF </doc>
 3265:       </invalid>
 3266:       <invalid>
 3267:         <doc>NaN</doc>
 3268:       </invalid>
 3269:       <invalid>
 3270:         <doc> NaN </doc>
 3271:       </invalid>
 3272:     </testCase>
 3273:     <testCase>
 3274:       <correct>
 3275:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3276:           <value type="double">1E0</value>
 3277:         </element>
 3278:       </correct>
 3279:       <valid>
 3280:         <doc>0.1E1</doc>
 3281:       </valid>
 3282:       <valid>
 3283:         <doc>10E-1</doc>
 3284:       </valid>
 3285:       <valid>
 3286:         <doc>+1</doc>
 3287:       </valid>
 3288:       <invalid>
 3289:         <doc>0</doc>
 3290:       </invalid>
 3291:       <invalid>
 3292:         <doc>-0</doc>
 3293:       </invalid>
 3294:       <invalid>
 3295:         <doc>+0</doc>
 3296:       </invalid>
 3297:       <invalid>
 3298:         <doc> 0 </doc>
 3299:       </invalid>
 3300:       <invalid>
 3301:         <doc> 0. </doc>
 3302:       </invalid>
 3303:       <invalid>
 3304:         <doc> .0 </doc>
 3305:       </invalid>
 3306:       <invalid>
 3307:         <doc> 0.0 </doc>
 3308:       </invalid>
 3309:       <invalid>
 3310:         <doc> 0e0 </doc>
 3311:       </invalid>
 3312:       <invalid>
 3313:         <doc> 0E0 </doc>
 3314:       </invalid>
 3315:       <invalid>
 3316:         <doc> 0E+0 </doc>
 3317:       </invalid>
 3318:       <invalid>
 3319:         <doc> 0E-0 </doc>
 3320:       </invalid>
 3321:       <invalid>
 3322:         <doc>-1</doc>
 3323:       </invalid>
 3324:       <invalid>
 3325:         <doc>INF</doc>
 3326:       </invalid>
 3327:       <invalid>
 3328:         <doc>INF </doc>
 3329:       </invalid>
 3330:       <invalid>
 3331:         <doc>-INF</doc>
 3332:       </invalid>
 3333:       <invalid>
 3334:         <doc>-INF </doc>
 3335:       </invalid>
 3336:       <invalid>
 3337:         <doc>NaN</doc>
 3338:       </invalid>
 3339:       <invalid>
 3340:         <doc> NaN </doc>
 3341:       </invalid>
 3342:     </testCase>
 3343:     <testCase>
 3344:       <correct>
 3345:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3346:           <value type="double">-1</value>
 3347:         </element>
 3348:       </correct>
 3349:       <invalid>
 3350:         <doc>0</doc>
 3351:       </invalid>
 3352:       <invalid>
 3353:         <doc>-0</doc>
 3354:       </invalid>
 3355:       <invalid>
 3356:         <doc>+0</doc>
 3357:       </invalid>
 3358:       <invalid>
 3359:         <doc> 0 </doc>
 3360:       </invalid>
 3361:       <invalid>
 3362:         <doc> 0. </doc>
 3363:       </invalid>
 3364:       <invalid>
 3365:         <doc> .0 </doc>
 3366:       </invalid>
 3367:       <invalid>
 3368:         <doc> 0.0 </doc>
 3369:       </invalid>
 3370:       <invalid>
 3371:         <doc> 0e0 </doc>
 3372:       </invalid>
 3373:       <invalid>
 3374:         <doc> 0E0 </doc>
 3375:       </invalid>
 3376:       <invalid>
 3377:         <doc> 0E+0 </doc>
 3378:       </invalid>
 3379:       <invalid>
 3380:         <doc> 0E-0 </doc>
 3381:       </invalid>
 3382:       <invalid>
 3383:         <doc>1E0</doc>
 3384:       </invalid>
 3385:       <invalid>
 3386:         <doc>0.1E1</doc>
 3387:       </invalid>
 3388:       <invalid>
 3389:         <doc>10E-1</doc>
 3390:       </invalid>
 3391:       <invalid>
 3392:         <doc>+1</doc>
 3393:       </invalid>
 3394:       <invalid>
 3395:         <doc>INF</doc>
 3396:       </invalid>
 3397:       <invalid>
 3398:         <doc>INF </doc>
 3399:       </invalid>
 3400:       <invalid>
 3401:         <doc>-INF</doc>
 3402:       </invalid>
 3403:       <invalid>
 3404:         <doc>-INF </doc>
 3405:       </invalid>
 3406:       <invalid>
 3407:         <doc>NaN</doc>
 3408:       </invalid>
 3409:       <invalid>
 3410:         <doc> NaN </doc>
 3411:       </invalid>
 3412:     </testCase>
 3413:     <testCase>
 3414:       <correct>
 3415:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3416:           <value type="double">INF</value>
 3417:         </element>
 3418:       </correct>
 3419:       <valid>
 3420:         <doc>INF </doc>
 3421:       </valid>
 3422:       <invalid>
 3423:         <doc>0</doc>
 3424:       </invalid>
 3425:       <invalid>
 3426:         <doc>-0</doc>
 3427:       </invalid>
 3428:       <invalid>
 3429:         <doc>+0</doc>
 3430:       </invalid>
 3431:       <invalid>
 3432:         <doc> 0 </doc>
 3433:       </invalid>
 3434:       <invalid>
 3435:         <doc> 0. </doc>
 3436:       </invalid>
 3437:       <invalid>
 3438:         <doc> .0 </doc>
 3439:       </invalid>
 3440:       <invalid>
 3441:         <doc> 0.0 </doc>
 3442:       </invalid>
 3443:       <invalid>
 3444:         <doc> 0e0 </doc>
 3445:       </invalid>
 3446:       <invalid>
 3447:         <doc> 0E0 </doc>
 3448:       </invalid>
 3449:       <invalid>
 3450:         <doc> 0E+0 </doc>
 3451:       </invalid>
 3452:       <invalid>
 3453:         <doc> 0E-0 </doc>
 3454:       </invalid>
 3455:       <invalid>
 3456:         <doc>1E0</doc>
 3457:       </invalid>
 3458:       <invalid>
 3459:         <doc>0.1E1</doc>
 3460:       </invalid>
 3461:       <invalid>
 3462:         <doc>10E-1</doc>
 3463:       </invalid>
 3464:       <invalid>
 3465:         <doc>+1</doc>
 3466:       </invalid>
 3467:       <invalid>
 3468:         <doc>-1</doc>
 3469:       </invalid>
 3470:       <invalid>
 3471:         <doc>-INF</doc>
 3472:       </invalid>
 3473:       <invalid>
 3474:         <doc>-INF </doc>
 3475:       </invalid>
 3476:       <invalid>
 3477:         <doc>NaN</doc>
 3478:       </invalid>
 3479:       <invalid>
 3480:         <doc> NaN </doc>
 3481:       </invalid>
 3482:     </testCase>
 3483:     <testCase>
 3484:       <correct>
 3485:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3486:           <value type="double">-INF</value>
 3487:         </element>
 3488:       </correct>
 3489:       <valid>
 3490:         <doc>-INF </doc>
 3491:       </valid>
 3492:       <invalid>
 3493:         <doc>0</doc>
 3494:       </invalid>
 3495:       <invalid>
 3496:         <doc>-0</doc>
 3497:       </invalid>
 3498:       <invalid>
 3499:         <doc>+0</doc>
 3500:       </invalid>
 3501:       <invalid>
 3502:         <doc> 0 </doc>
 3503:       </invalid>
 3504:       <invalid>
 3505:         <doc> 0. </doc>
 3506:       </invalid>
 3507:       <invalid>
 3508:         <doc> .0 </doc>
 3509:       </invalid>
 3510:       <invalid>
 3511:         <doc> 0.0 </doc>
 3512:       </invalid>
 3513:       <invalid>
 3514:         <doc> 0e0 </doc>
 3515:       </invalid>
 3516:       <invalid>
 3517:         <doc> 0E0 </doc>
 3518:       </invalid>
 3519:       <invalid>
 3520:         <doc> 0E+0 </doc>
 3521:       </invalid>
 3522:       <invalid>
 3523:         <doc> 0E-0 </doc>
 3524:       </invalid>
 3525:       <invalid>
 3526:         <doc>1E0</doc>
 3527:       </invalid>
 3528:       <invalid>
 3529:         <doc>0.1E1</doc>
 3530:       </invalid>
 3531:       <invalid>
 3532:         <doc>10E-1</doc>
 3533:       </invalid>
 3534:       <invalid>
 3535:         <doc>+1</doc>
 3536:       </invalid>
 3537:       <invalid>
 3538:         <doc>-1</doc>
 3539:       </invalid>
 3540:       <invalid>
 3541:         <doc>INF</doc>
 3542:       </invalid>
 3543:       <invalid>
 3544:         <doc>INF </doc>
 3545:       </invalid>
 3546:       <invalid>
 3547:         <doc>NaN</doc>
 3548:       </invalid>
 3549:       <invalid>
 3550:         <doc> NaN </doc>
 3551:       </invalid>
 3552:     </testCase>
 3553:     <testCase>
 3554:       <correct>
 3555:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3556:           <value type="double">NaN</value>
 3557:         </element>
 3558:       </correct>
 3559:       <valid>
 3560:         <doc> NaN </doc>
 3561:       </valid>
 3562:       <invalid>
 3563:         <doc>0</doc>
 3564:       </invalid>
 3565:       <invalid>
 3566:         <doc>-0</doc>
 3567:       </invalid>
 3568:       <invalid>
 3569:         <doc>+0</doc>
 3570:       </invalid>
 3571:       <invalid>
 3572:         <doc> 0 </doc>
 3573:       </invalid>
 3574:       <invalid>
 3575:         <doc> 0. </doc>
 3576:       </invalid>
 3577:       <invalid>
 3578:         <doc> .0 </doc>
 3579:       </invalid>
 3580:       <invalid>
 3581:         <doc> 0.0 </doc>
 3582:       </invalid>
 3583:       <invalid>
 3584:         <doc> 0e0 </doc>
 3585:       </invalid>
 3586:       <invalid>
 3587:         <doc> 0E0 </doc>
 3588:       </invalid>
 3589:       <invalid>
 3590:         <doc> 0E+0 </doc>
 3591:       </invalid>
 3592:       <invalid>
 3593:         <doc> 0E-0 </doc>
 3594:       </invalid>
 3595:       <invalid>
 3596:         <doc>1E0</doc>
 3597:       </invalid>
 3598:       <invalid>
 3599:         <doc>0.1E1</doc>
 3600:       </invalid>
 3601:       <invalid>
 3602:         <doc>10E-1</doc>
 3603:       </invalid>
 3604:       <invalid>
 3605:         <doc>+1</doc>
 3606:       </invalid>
 3607:       <invalid>
 3608:         <doc>-1</doc>
 3609:       </invalid>
 3610:       <invalid>
 3611:         <doc>INF</doc>
 3612:       </invalid>
 3613:       <invalid>
 3614:         <doc>INF </doc>
 3615:       </invalid>
 3616:       <invalid>
 3617:         <doc>-INF</doc>
 3618:       </invalid>
 3619:       <invalid>
 3620:         <doc>-INF </doc>
 3621:       </invalid>
 3622:     </testCase>
 3623:     <testCase>
 3624:       <correct>
 3625:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3626:           <data type="double">
 3627:             <param name="minExclusive">-INF</param>
 3628:           </data>
 3629:         </element>
 3630:       </correct>
 3631:       <valid>
 3632:         <doc>-1000</doc>
 3633:       </valid>
 3634:       <invalid>
 3635:         <doc>-INF</doc>
 3636:       </invalid>
 3637:     </testCase>
 3638:     <testCase>
 3639:       <correct>
 3640:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3641:           <data type="double">
 3642:             <param name="minExclusive">-1000</param>
 3643:           </data>
 3644:         </element>
 3645:       </correct>
 3646:       <invalid>
 3647:         <doc>-INF</doc>
 3648:       </invalid>
 3649:       <invalid>
 3650:         <doc>-1000</doc>
 3651:       </invalid>
 3652:     </testCase>
 3653:     <testCase>
 3654:       <correct>
 3655:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3656:           <data type="double">
 3657:             <param name="minExclusive">1000</param>
 3658:           </data>
 3659:         </element>
 3660:       </correct>
 3661:       <valid>
 3662:         <doc>INF</doc>
 3663:       </valid>
 3664:       <invalid>
 3665:         <doc>1000</doc>
 3666:       </invalid>
 3667:     </testCase>
 3668:     <testCase>
 3669:       <correct>
 3670:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3671:           <data type="double">
 3672:             <param name="minExclusive">INF</param>
 3673:           </data>
 3674:         </element>
 3675:       </correct>
 3676:       <invalid>
 3677:         <doc>1000</doc>
 3678:       </invalid>
 3679:       <invalid>
 3680:         <doc>INF</doc>
 3681:       </invalid>
 3682:     </testCase>
 3683:     <testCase>
 3684:       <correct>
 3685:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3686:           <data type="double">
 3687:             <param name="minExclusive">-1</param>
 3688:           </data>
 3689:         </element>
 3690:       </correct>
 3691:       <valid>
 3692:         <doc>1</doc>
 3693:       </valid>
 3694:       <invalid>
 3695:         <doc>-1</doc>
 3696:       </invalid>
 3697:     </testCase>
 3698:     <testCase>
 3699:       <correct>
 3700:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3701:           <data type="double">
 3702:             <param name="minExclusive">1</param>
 3703:           </data>
 3704:         </element>
 3705:       </correct>
 3706:       <invalid>
 3707:         <doc>-1</doc>
 3708:       </invalid>
 3709:       <invalid>
 3710:         <doc>1</doc>
 3711:       </invalid>
 3712:     </testCase>
 3713:     <testCase>
 3714:       <correct>
 3715:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3716:           <data type="double">
 3717:             <param name="minExclusive">0</param>
 3718:           </data>
 3719:         </element>
 3720:       </correct>
 3721:       <valid>
 3722:         <doc>1</doc>
 3723:       </valid>
 3724:       <invalid>
 3725:         <doc>0</doc>
 3726:       </invalid>
 3727:     </testCase>
 3728:     <testCase>
 3729:       <correct>
 3730:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3731:           <data type="double">
 3732:             <param name="minExclusive">1</param>
 3733:           </data>
 3734:         </element>
 3735:       </correct>
 3736:       <invalid>
 3737:         <doc>0</doc>
 3738:       </invalid>
 3739:       <invalid>
 3740:         <doc>1</doc>
 3741:       </invalid>
 3742:     </testCase>
 3743:     <testCase>
 3744:       <correct>
 3745:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3746:           <data type="double">
 3747:             <param name="minExclusive">-1</param>
 3748:           </data>
 3749:         </element>
 3750:       </correct>
 3751:       <valid>
 3752:         <doc>0</doc>
 3753:       </valid>
 3754:       <invalid>
 3755:         <doc>-1</doc>
 3756:       </invalid>
 3757:     </testCase>
 3758:     <testCase>
 3759:       <correct>
 3760:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3761:           <data type="double">
 3762:             <param name="minExclusive">0</param>
 3763:           </data>
 3764:         </element>
 3765:       </correct>
 3766:       <invalid>
 3767:         <doc>-1</doc>
 3768:       </invalid>
 3769:       <invalid>
 3770:         <doc>0</doc>
 3771:       </invalid>
 3772:     </testCase>
 3773:   </testSuite>
 3774:   <testSuite>
 3775:     <documentation>Datatype QName</documentation>
 3776:     <testCase>
 3777:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 3778:       <correct>
 3779:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3780:           <data type="QName"/>
 3781:         </element>
 3782:       </correct>
 3783:       <valid>
 3784:         <doc>foo</doc>
 3785:       </valid>
 3786:       <valid>
 3787:         <doc xmlns:x="http://www.example.com">x:foo</doc>
 3788:       </valid>
 3789:       <invalid>
 3790:         <doc>y:foo</doc>
 3791:       </invalid>
 3792:     </testCase>
 3793:     <testCase>
 3794:       <correct>
 3795:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3796:           <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">foo</value>
 3797:         </element>
 3798:       </correct>
 3799:       <valid>
 3800:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc>
 3801:       </valid>
 3802:       <invalid>
 3803:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc>
 3804:       </invalid>
 3805:       <invalid>
 3806:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc>
 3807:       </invalid>
 3808:       <invalid>
 3809:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc>
 3810:       </invalid>
 3811:       <invalid>
 3812:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc>
 3813:       </invalid>
 3814:       <invalid>
 3815:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc>
 3816:       </invalid>
 3817:       <invalid>
 3818:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc>
 3819:       </invalid>
 3820:       <invalid>
 3821:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc>
 3822:       </invalid>
 3823:     </testCase>
 3824:     <testCase>
 3825:       <correct>
 3826:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3827:           <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">x:foo</value>
 3828:         </element>
 3829:       </correct>
 3830:       <valid>
 3831:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc>
 3832:       </valid>
 3833:       <valid>
 3834:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc>
 3835:       </valid>
 3836:       <invalid>
 3837:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc>
 3838:       </invalid>
 3839:       <invalid>
 3840:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc>
 3841:       </invalid>
 3842:       <invalid>
 3843:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc>
 3844:       </invalid>
 3845:       <invalid>
 3846:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc>
 3847:       </invalid>
 3848:       <invalid>
 3849:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc>
 3850:       </invalid>
 3851:       <invalid>
 3852:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc>
 3853:       </invalid>
 3854:     </testCase>
 3855:     <testCase>
 3856:       <correct>
 3857:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3858:           <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">x:bar</value>
 3859:         </element>
 3860:       </correct>
 3861:       <valid>
 3862:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc>
 3863:       </valid>
 3864:       <invalid>
 3865:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc>
 3866:       </invalid>
 3867:       <invalid>
 3868:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc>
 3869:       </invalid>
 3870:       <invalid>
 3871:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc>
 3872:       </invalid>
 3873:       <invalid>
 3874:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc>
 3875:       </invalid>
 3876:       <invalid>
 3877:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc>
 3878:       </invalid>
 3879:       <invalid>
 3880:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc>
 3881:       </invalid>
 3882:       <invalid>
 3883:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc>
 3884:       </invalid>
 3885:     </testCase>
 3886:     <testCase>
 3887:       <correct>
 3888:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3889:           <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">y:foo</value>
 3890:         </element>
 3891:       </correct>
 3892:       <invalid>
 3893:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc>
 3894:       </invalid>
 3895:       <invalid>
 3896:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc>
 3897:       </invalid>
 3898:       <invalid>
 3899:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc>
 3900:       </invalid>
 3901:       <invalid>
 3902:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc>
 3903:       </invalid>
 3904:       <invalid>
 3905:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc>
 3906:       </invalid>
 3907:       <invalid>
 3908:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc>
 3909:       </invalid>
 3910:       <invalid>
 3911:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc>
 3912:       </invalid>
 3913:       <invalid>
 3914:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc>
 3915:       </invalid>
 3916:     </testCase>
 3917:     <testCase>
 3918:       <correct>
 3919:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3920:           <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">y:bar</value>
 3921:         </element>
 3922:       </correct>
 3923:       <invalid>
 3924:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc>
 3925:       </invalid>
 3926:       <invalid>
 3927:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc>
 3928:       </invalid>
 3929:       <invalid>
 3930:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc>
 3931:       </invalid>
 3932:       <invalid>
 3933:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc>
 3934:       </invalid>
 3935:       <invalid>
 3936:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc>
 3937:       </invalid>
 3938:       <invalid>
 3939:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc>
 3940:       </invalid>
 3941:       <invalid>
 3942:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc>
 3943:       </invalid>
 3944:       <invalid>
 3945:         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc>
 3946:       </invalid>
 3947:     </testCase>
 3948:   </testSuite>
 3949:   <testSuite>
 3950:     <documentation>Datatype NOTATION</documentation>
 3951:     <testCase>
 3952:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 3953:       <correct>
 3954:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3955:           <data type="NOTATION"/>
 3956:         </element>
 3957:       </correct>
 3958:       <valid>
 3959:         <doc>foo</doc>
 3960:       </valid>
 3961:       <valid>
 3962:         <doc xmlns:x="http://www.example.com">x:foo</doc>
 3963:       </valid>
 3964:       <invalid>
 3965:         <doc>y:foo</doc>
 3966:       </invalid>
 3967:     </testCase>
 3968:   </testSuite>
 3969:   <testSuite>
 3970:     <documentation>Datatype decimal</documentation>
 3971:     <testCase>
 3972:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 3973:       <correct>
 3974:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 3975:           <data type="decimal"/>
 3976:         </element>
 3977:       </correct>
 3978:       <valid>
 3979:         <doc>1.0</doc>
 3980:       </valid>
 3981:       <valid>
 3982:         <doc>1.</doc>
 3983:       </valid>
 3984:       <valid>
 3985:         <doc>.1</doc>
 3986:       </valid>
 3987:       <valid>
 3988:         <doc>+1.0</doc>
 3989:       </valid>
 3990:       <valid>
 3991:         <doc>-1.0</doc>
 3992:       </valid>
 3993:       <valid>
 3994:         <doc> 1 </doc>
 3995:       </valid>
 3996:       <valid>
 3997:         <doc>99999999999999999999999999999999999999999999999999999999999999999</doc>
 3998:       </valid>
 3999:       <valid>
 4000:         <doc>-99999999999999999999999999999999999999999999999999999999999999999</doc>
 4001:       </valid>
 4002:       <invalid>
 4003:         <doc>junk</doc>
 4004:       </invalid>
 4005:       <invalid>
 4006:         <doc>--1</doc>
 4007:       </invalid>
 4008:       <invalid>
 4009:         <doc>++1</doc>
 4010:       </invalid>
 4011:       <invalid>
 4012:         <doc>+-1</doc>
 4013:       </invalid>
 4014:       <invalid>
 4015:         <doc>1.2.</doc>
 4016:       </invalid>
 4017:       <invalid>
 4018:         <doc>..1</doc>
 4019:       </invalid>
 4020:       <invalid>
 4021:         <doc>1..</doc>
 4022:       </invalid>
 4023:       <invalid>
 4024:         <doc>1 .2</doc>
 4025:       </invalid>
 4026:       <invalid>
 4027:         <doc>1+</doc>
 4028:       </invalid>
 4029:       <invalid>
 4030:         <doc>+ 1</doc>
 4031:       </invalid>
 4032:     </testCase>
 4033:     <testCase>
 4034:       <correct>
 4035:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4036:           <data type="decimal">
 4037:             <param name="minExclusive">0</param>
 4038:           </data>
 4039:         </element>
 4040:       </correct>
 4041:       <valid>
 4042:         <doc>1</doc>
 4043:       </valid>
 4044:       <invalid>
 4045:         <doc>0</doc>
 4046:       </invalid>
 4047:     </testCase>
 4048:     <testCase>
 4049:       <correct>
 4050:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4051:           <data type="decimal">
 4052:             <param name="minExclusive">1</param>
 4053:           </data>
 4054:         </element>
 4055:       </correct>
 4056:       <invalid>
 4057:         <doc>0</doc>
 4058:       </invalid>
 4059:       <invalid>
 4060:         <doc>1</doc>
 4061:       </invalid>
 4062:     </testCase>
 4063:   </testSuite>
 4064:   <testSuite>
 4065:     <documentation>Datatype nonPositiveInteger</documentation>
 4066:     <testCase>
 4067:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4068:       <correct>
 4069:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4070:           <data type="nonPositiveInteger"/>
 4071:         </element>
 4072:       </correct>
 4073:       <valid>
 4074:         <doc>-1</doc>
 4075:       </valid>
 4076:       <valid>
 4077:         <doc>0</doc>
 4078:       </valid>
 4079:       <valid>
 4080:         <doc>-0</doc>
 4081:       </valid>
 4082:       <invalid>
 4083:         <doc>1</doc>
 4084:       </invalid>
 4085:     </testCase>
 4086:   </testSuite>
 4087:   <testSuite>
 4088:     <documentation>Datatype nonNegativeInteger</documentation>
 4089:     <testCase>
 4090:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4091:       <correct>
 4092:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4093:           <data type="nonNegativeInteger"/>
 4094:         </element>
 4095:       </correct>
 4096:       <valid>
 4097:         <doc>1</doc>
 4098:       </valid>
 4099:       <valid>
 4100:         <doc>0</doc>
 4101:       </valid>
 4102:       <valid>
 4103:         <doc>+1</doc>
 4104:       </valid>
 4105:       <valid>
 4106:         <doc>+0</doc>
 4107:       </valid>
 4108:       <invalid>
 4109:         <doc>-1</doc>
 4110:       </invalid>
 4111:     </testCase>
 4112:   </testSuite>
 4113:   <testSuite>
 4114:     <documentation>Datatype positiveInteger</documentation>
 4115:     <testCase>
 4116:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4117:       <correct>
 4118:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4119:           <data type="positiveInteger"/>
 4120:         </element>
 4121:       </correct>
 4122:       <valid>
 4123:         <doc>+1</doc>
 4124:       </valid>
 4125:       <valid>
 4126:         <doc>1</doc>
 4127:       </valid>
 4128:       <invalid>
 4129:         <doc>0</doc>
 4130:       </invalid>
 4131:       <invalid>
 4132:         <doc>-1</doc>
 4133:       </invalid>
 4134:     </testCase>
 4135:   </testSuite>
 4136:   <testSuite>
 4137:     <documentation>Datatype negativeInteger</documentation>
 4138:     <testCase>
 4139:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4140:       <correct>
 4141:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4142:           <data type="negativeInteger"/>
 4143:         </element>
 4144:       </correct>
 4145:       <valid>
 4146:         <doc>-1</doc>
 4147:       </valid>
 4148:       <invalid>
 4149:         <doc>+1</doc>
 4150:       </invalid>
 4151:       <invalid>
 4152:         <doc>0</doc>
 4153:       </invalid>
 4154:     </testCase>
 4155:   </testSuite>
 4156:   <testSuite>
 4157:     <documentation>Datatype long</documentation>
 4158:     <testCase>
 4159:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4160:       <correct>
 4161:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4162:           <data type="long"/>
 4163:         </element>
 4164:       </correct>
 4165:       <valid>
 4166:         <doc>1</doc>
 4167:       </valid>
 4168:       <valid>
 4169:         <doc>+1</doc>
 4170:       </valid>
 4171:       <valid>
 4172:         <doc>0</doc>
 4173:       </valid>
 4174:       <valid>
 4175:         <doc> 0 </doc>
 4176:       </valid>
 4177:       <invalid>
 4178:         <doc>1 2</doc>
 4179:       </invalid>
 4180:       <invalid>
 4181:         <doc>9999999999999999999999999999999999999999999999999999999999999999999999999</doc>
 4182:       </invalid>
 4183:       <valid>
 4184:         <doc>9223372036854775807</doc>
 4185:       </valid>
 4186:       <valid>
 4187:         <doc>-9223372036854775808</doc>
 4188:       </valid>
 4189:       <invalid>
 4190:         <doc>9223372036854775808</doc>
 4191:       </invalid>
 4192:       <invalid>
 4193:         <doc>-9223372036854775809</doc>
 4194:       </invalid>
 4195:       <invalid>
 4196:         <doc></doc>
 4197:       </invalid>
 4198:     </testCase>
 4199:   </testSuite>
 4200:   <testSuite>
 4201:     <documentation>Datatype int</documentation>
 4202:     <testCase>
 4203:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4204:       <correct>
 4205:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4206:           <data type="int"/>
 4207:         </element>
 4208:       </correct>
 4209:       <valid>
 4210:         <doc>1</doc>
 4211:       </valid>
 4212:       <valid>
 4213:         <doc>01</doc>
 4214:       </valid>
 4215:       <valid>
 4216:         <doc> 1 </doc>
 4217:       </valid>
 4218:       <valid>
 4219:         <doc>2147483647</doc>
 4220:       </valid>
 4221:       <valid>
 4222:         <doc>-2147483648</doc>
 4223:       </valid>
 4224:       <invalid>
 4225:         <doc>2147483648</doc>
 4226:       </invalid>
 4227:       <invalid>
 4228:         <doc>-2147483649</doc>
 4229:       </invalid>
 4230:       <invalid>
 4231:         <doc>9999999999999999999999999999999999999999999999999999999999999999999999999</doc>
 4232:       </invalid>
 4233:     </testCase>
 4234:     <testCase>
 4235:       <correct>
 4236:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4237:           <value type="int">1</value>
 4238:         </element>
 4239:       </correct>
 4240:       <valid>
 4241:         <doc>+1</doc>
 4242:       </valid>
 4243:       <valid>
 4244:         <doc> 1 </doc>
 4245:       </valid>
 4246:       <valid>
 4247:         <doc>001</doc>
 4248:       </valid>
 4249:       <invalid>
 4250:         <doc>-1</doc>
 4251:       </invalid>
 4252:       <invalid>
 4253:         <doc> -1 </doc>
 4254:       </invalid>
 4255:       <invalid>
 4256:         <doc>-001</doc>
 4257:       </invalid>
 4258:     </testCase>
 4259:     <testCase>
 4260:       <correct>
 4261:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4262:           <value type="int">-1</value>
 4263:         </element>
 4264:       </correct>
 4265:       <valid>
 4266:         <doc> -1 </doc>
 4267:       </valid>
 4268:       <valid>
 4269:         <doc>-001</doc>
 4270:       </valid>
 4271:       <invalid>
 4272:         <doc>1</doc>
 4273:       </invalid>
 4274:       <invalid>
 4275:         <doc>+1</doc>
 4276:       </invalid>
 4277:       <invalid>
 4278:         <doc> 1 </doc>
 4279:       </invalid>
 4280:       <invalid>
 4281:         <doc>001</doc>
 4282:       </invalid>
 4283:     </testCase>
 4284:   </testSuite>
 4285:   <testSuite>
 4286:     <documentation>Datatype short</documentation>
 4287:     <testCase>
 4288:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4289:       <correct>
 4290:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4291:           <data type="short"/>
 4292:         </element>
 4293:       </correct>
 4294:       <valid>
 4295:         <doc>1</doc>
 4296:       </valid>
 4297:       <valid>
 4298:         <doc>32767</doc>
 4299:       </valid>
 4300:       <valid>
 4301:         <doc>-32768</doc>
 4302:       </valid>
 4303:       <invalid>
 4304:         <doc>32768</doc>
 4305:       </invalid>
 4306:       <invalid>
 4307:         <doc>-32769</doc>
 4308:       </invalid>
 4309:       <invalid>
 4310:         <doc>9999999999999999999999999999999999999999999999999999999999999999999999999</doc>
 4311:       </invalid>
 4312:     </testCase>
 4313:     <testCase>
 4314:       <correct>
 4315:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4316:           <value type="short">1</value>
 4317:         </element>
 4318:       </correct>
 4319:       <valid>
 4320:         <doc>+1</doc>
 4321:       </valid>
 4322:       <valid>
 4323:         <doc> 1 </doc>
 4324:       </valid>
 4325:       <valid>
 4326:         <doc>001</doc>
 4327:       </valid>
 4328:       <invalid>
 4329:         <doc>-1</doc>
 4330:       </invalid>
 4331:       <invalid>
 4332:         <doc> -1 </doc>
 4333:       </invalid>
 4334:       <invalid>
 4335:         <doc>-001</doc>
 4336:       </invalid>
 4337:     </testCase>
 4338:     <testCase>
 4339:       <correct>
 4340:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4341:           <value type="short">-1</value>
 4342:         </element>
 4343:       </correct>
 4344:       <valid>
 4345:         <doc> -1 </doc>
 4346:       </valid>
 4347:       <valid>
 4348:         <doc>-001</doc>
 4349:       </valid>
 4350:       <invalid>
 4351:         <doc>1</doc>
 4352:       </invalid>
 4353:       <invalid>
 4354:         <doc>+1</doc>
 4355:       </invalid>
 4356:       <invalid>
 4357:         <doc> 1 </doc>
 4358:       </invalid>
 4359:       <invalid>
 4360:         <doc>001</doc>
 4361:       </invalid>
 4362:     </testCase>
 4363:   </testSuite>
 4364:   <testSuite>
 4365:     <documentation>Datatype byte</documentation>
 4366:     <testCase>
 4367:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4368:       <correct>
 4369:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4370:           <data type="byte"/>
 4371:         </element>
 4372:       </correct>
 4373:       <valid>
 4374:         <doc>1</doc>
 4375:       </valid>
 4376:       <valid>
 4377:         <doc>127</doc>
 4378:       </valid>
 4379:       <valid>
 4380:         <doc>-128</doc>
 4381:       </valid>
 4382:       <invalid>
 4383:         <doc>128</doc>
 4384:       </invalid>
 4385:       <invalid>
 4386:         <doc>-129</doc>
 4387:       </invalid>
 4388:     </testCase>
 4389:   </testSuite>
 4390:   <testSuite>
 4391:     <documentation>Datatype unsignedLong</documentation>
 4392:     <testCase>
 4393:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4394:       <correct>
 4395:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4396:           <data type="unsignedLong"/>
 4397:         </element>
 4398:       </correct>
 4399:       <valid>
 4400:         <doc>1</doc>
 4401:       </valid>
 4402:       <valid>
 4403:         <doc>+1</doc>
 4404:       </valid>
 4405:       <invalid>
 4406:         <doc>-1</doc>
 4407:       </invalid>
 4408:       <valid>
 4409:         <doc>0</doc>
 4410:       </valid>
 4411:       <valid>
 4412:         <doc>18446744073709551615</doc>
 4413:       </valid>
 4414:       <invalid>
 4415:         <doc>18446744073709551616</doc>
 4416:       </invalid>
 4417:       <invalid>
 4418:         <doc>-1</doc>
 4419:       </invalid>
 4420:     </testCase>
 4421:   </testSuite>
 4422:   <testSuite>
 4423:     <documentation>Datatype unsignedInt</documentation>
 4424:     <testCase>
 4425:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4426:       <correct>
 4427:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4428:           <data type="unsignedInt"/>
 4429:         </element>
 4430:       </correct>
 4431:       <valid>
 4432:         <doc>1</doc>
 4433:       </valid>
 4434:       <valid>
 4435:         <doc>+1</doc>
 4436:       </valid>
 4437:       <valid>
 4438:         <doc>0</doc>
 4439:       </valid>
 4440:       <valid>
 4441:         <doc>4294967295</doc>
 4442:       </valid>
 4443:       <invalid>
 4444:         <doc>4294967296</doc>
 4445:       </invalid>
 4446:       <invalid>
 4447:         <doc>-1</doc>
 4448:       </invalid>
 4449:     </testCase>
 4450:   </testSuite>
 4451:   <testSuite>
 4452:     <documentation>Datatype unsignedShort</documentation>
 4453:     <testCase>
 4454:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4455:       <correct>
 4456:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4457:           <data type="unsignedShort"/>
 4458:         </element>
 4459:       </correct>
 4460:       <valid>
 4461:         <doc>1</doc>
 4462:       </valid>
 4463:       <valid>
 4464:         <doc>+1</doc>
 4465:       </valid>
 4466:       <valid>
 4467:         <doc>0</doc>
 4468:       </valid>
 4469:       <valid>
 4470:         <doc>65535</doc>
 4471:       </valid>
 4472:       <invalid>
 4473:         <doc>65536</doc>
 4474:       </invalid>
 4475:       <invalid>
 4476:         <doc>-1</doc>
 4477:       </invalid>
 4478:     </testCase>
 4479:   </testSuite>
 4480:   <testSuite>
 4481:     <documentation>Datatype unsignedByte</documentation>
 4482:     <testCase>
 4483:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4484:       <correct>
 4485:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4486:           <data type="unsignedByte"/>
 4487:         </element>
 4488:       </correct>
 4489:       <valid>
 4490:         <doc>1</doc>
 4491:       </valid>
 4492:       <valid>
 4493:         <doc>+1</doc>
 4494:       </valid>
 4495:       <valid>
 4496:         <doc>0</doc>
 4497:       </valid>
 4498:       <valid>
 4499:         <doc>255</doc>
 4500:       </valid>
 4501:       <invalid>
 4502:         <doc>256</doc>
 4503:       </invalid>
 4504:       <invalid>
 4505:         <doc>-1</doc>
 4506:       </invalid>
 4507:     </testCase>
 4508:   </testSuite>
 4509:   <testSuite>
 4510:     <documentation>Datatype string</documentation>
 4511:     <testCase>
 4512:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4513:       <correct>
 4514:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4515:           <data type="string"/>
 4516:         </element>
 4517:       </correct>
 4518:       <valid>
 4519:         <doc>any thing at all!</doc>
 4520:       </valid>
 4521:     </testCase>
 4522:   </testSuite>
 4523:   <testSuite>
 4524:     <documentation>Datatype normalizedString</documentation>
 4525:     <testCase>
 4526:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4527:       <correct>
 4528:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4529:           <data type="normalizedString"/>
 4530:         </element>
 4531:       </correct>
 4532:       <valid>
 4533:         <doc>any thing at all!</doc>
 4534:       </valid>
 4535:     </testCase>
 4536:   </testSuite>
 4537:   <testSuite>
 4538:     <documentation>Datatype token</documentation>
 4539:     <testCase>
 4540:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4541:       <correct>
 4542:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4543:           <data type="token"/>
 4544:         </element>
 4545:       </correct>
 4546:       <valid>
 4547:         <doc>any thing at all!</doc>
 4548:       </valid>
 4549:     </testCase>
 4550:     <testCase>
 4551:       <correct>
 4552:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4553:           <value type="token"></value>
 4554:         </element>
 4555:       </correct>
 4556:       <valid>
 4557:         <doc> </doc>
 4558:       </valid>
 4559:       <valid>
 4560:         <doc>	
 4561: &#13; </doc>
 4562:       </valid>
 4563:       <invalid>
 4564:         <doc>x </doc>
 4565:       </invalid>
 4566:       <invalid>
 4567:         <doc>x
 4568: </doc>
 4569:       </invalid>
 4570:       <invalid>
 4571:         <doc>x&#13;</doc>
 4572:       </invalid>
 4573:       <invalid>
 4574:         <doc>x	</doc>
 4575:       </invalid>
 4576:       <invalid>
 4577:         <doc> x</doc>
 4578:       </invalid>
 4579:       <invalid>
 4580:         <doc>
 4581: x</doc>
 4582:       </invalid>
 4583:       <invalid>
 4584:         <doc>&#13;x</doc>
 4585:       </invalid>
 4586:       <invalid>
 4587:         <doc>	x</doc>
 4588:       </invalid>
 4589:       <invalid>
 4590:         <doc>	
 4591: &#13; x	
 4592: &#13; </doc>
 4593:       </invalid>
 4594:       <invalid>
 4595:         <doc>x y </doc>
 4596:       </invalid>
 4597:       <invalid>
 4598:         <doc>x y
 4599: </doc>
 4600:       </invalid>
 4601:       <invalid>
 4602:         <doc>x y&#13;</doc>
 4603:       </invalid>
 4604:       <invalid>
 4605:         <doc>x y	</doc>
 4606:       </invalid>
 4607:       <invalid>
 4608:         <doc>x y</doc>
 4609:       </invalid>
 4610:       <invalid>
 4611:         <doc>x
 4612: y</doc>
 4613:       </invalid>
 4614:       <invalid>
 4615:         <doc>x&#13;y</doc>
 4616:       </invalid>
 4617:       <invalid>
 4618:         <doc>x	y</doc>
 4619:       </invalid>
 4620:       <invalid>
 4621:         <doc> x y</doc>
 4622:       </invalid>
 4623:       <invalid>
 4624:         <doc>
 4625: x y</doc>
 4626:       </invalid>
 4627:       <invalid>
 4628:         <doc>&#13;x y</doc>
 4629:       </invalid>
 4630:       <invalid>
 4631:         <doc>	x y</doc>
 4632:       </invalid>
 4633:       <invalid>
 4634:         <doc>	
 4635: &#13; x	
 4636: &#13; y	
 4637: &#13; </doc>
 4638:       </invalid>
 4639:     </testCase>
 4640:     <testCase>
 4641:       <correct>
 4642:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4643:           <value type="token">x </value>
 4644:         </element>
 4645:       </correct>
 4646:       <valid>
 4647:         <doc>x
 4648: </doc>
 4649:       </valid>
 4650:       <valid>
 4651:         <doc>x&#13;</doc>
 4652:       </valid>
 4653:       <valid>
 4654:         <doc>x	</doc>
 4655:       </valid>
 4656:       <valid>
 4657:         <doc> x</doc>
 4658:       </valid>
 4659:       <valid>
 4660:         <doc>
 4661: x</doc>
 4662:       </valid>
 4663:       <valid>
 4664:         <doc>&#13;x</doc>
 4665:       </valid>
 4666:       <valid>
 4667:         <doc>	x</doc>
 4668:       </valid>
 4669:       <valid>
 4670:         <doc>	
 4671: &#13; x	
 4672: &#13; </doc>
 4673:       </valid>
 4674:       <invalid>
 4675:         <doc></doc>
 4676:       </invalid>
 4677:       <invalid>
 4678:         <doc> </doc>
 4679:       </invalid>
 4680:       <invalid>
 4681:         <doc>	
 4682: &#13; </doc>
 4683:       </invalid>
 4684:       <invalid>
 4685:         <doc>x y </doc>
 4686:       </invalid>
 4687:       <invalid>
 4688:         <doc>x y
 4689: </doc>
 4690:       </invalid>
 4691:       <invalid>
 4692:         <doc>x y&#13;</doc>
 4693:       </invalid>
 4694:       <invalid>
 4695:         <doc>x y	</doc>
 4696:       </invalid>
 4697:       <invalid>
 4698:         <doc>x y</doc>
 4699:       </invalid>
 4700:       <invalid>
 4701:         <doc>x
 4702: y</doc>
 4703:       </invalid>
 4704:       <invalid>
 4705:         <doc>x&#13;y</doc>
 4706:       </invalid>
 4707:       <invalid>
 4708:         <doc>x	y</doc>
 4709:       </invalid>
 4710:       <invalid>
 4711:         <doc> x y</doc>
 4712:       </invalid>
 4713:       <invalid>
 4714:         <doc>
 4715: x y</doc>
 4716:       </invalid>
 4717:       <invalid>
 4718:         <doc>&#13;x y</doc>
 4719:       </invalid>
 4720:       <invalid>
 4721:         <doc>	x y</doc>
 4722:       </invalid>
 4723:       <invalid>
 4724:         <doc>	
 4725: &#13; x	
 4726: &#13; y	
 4727: &#13; </doc>
 4728:       </invalid>
 4729:     </testCase>
 4730:     <testCase>
 4731:       <correct>
 4732:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4733:           <value type="token">x y </value>
 4734:         </element>
 4735:       </correct>
 4736:       <valid>
 4737:         <doc>x y
 4738: </doc>
 4739:       </valid>
 4740:       <valid>
 4741:         <doc>x y&#13;</doc>
 4742:       </valid>
 4743:       <valid>
 4744:         <doc>x y	</doc>
 4745:       </valid>
 4746:       <valid>
 4747:         <doc>x y</doc>
 4748:       </valid>
 4749:       <valid>
 4750:         <doc>x
 4751: y</doc>
 4752:       </valid>
 4753:       <valid>
 4754:         <doc>x&#13;y</doc>
 4755:       </valid>
 4756:       <valid>
 4757:         <doc>x	y</doc>
 4758:       </valid>
 4759:       <valid>
 4760:         <doc> x y</doc>
 4761:       </valid>
 4762:       <valid>
 4763:         <doc>
 4764: x y</doc>
 4765:       </valid>
 4766:       <valid>
 4767:         <doc>&#13;x y</doc>
 4768:       </valid>
 4769:       <valid>
 4770:         <doc>	x y</doc>
 4771:       </valid>
 4772:       <valid>
 4773:         <doc>	
 4774: &#13; x	
 4775: &#13; y	
 4776: &#13; </doc>
 4777:       </valid>
 4778:       <invalid>
 4779:         <doc></doc>
 4780:       </invalid>
 4781:       <invalid>
 4782:         <doc> </doc>
 4783:       </invalid>
 4784:       <invalid>
 4785:         <doc>	
 4786: &#13; </doc>
 4787:       </invalid>
 4788:       <invalid>
 4789:         <doc>x </doc>
 4790:       </invalid>
 4791:       <invalid>
 4792:         <doc>x
 4793: </doc>
 4794:       </invalid>
 4795:       <invalid>
 4796:         <doc>x&#13;</doc>
 4797:       </invalid>
 4798:       <invalid>
 4799:         <doc>x	</doc>
 4800:       </invalid>
 4801:       <invalid>
 4802:         <doc> x</doc>
 4803:       </invalid>
 4804:       <invalid>
 4805:         <doc>
 4806: x</doc>
 4807:       </invalid>
 4808:       <invalid>
 4809:         <doc>&#13;x</doc>
 4810:       </invalid>
 4811:       <invalid>
 4812:         <doc>	x</doc>
 4813:       </invalid>
 4814:       <invalid>
 4815:         <doc>	
 4816: &#13; x	
 4817: &#13; </doc>
 4818:       </invalid>
 4819:     </testCase>
 4820:     <testCase>
 4821:       <correct>
 4822:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4823:           <data type="token">
 4824:             <param name="length">0</param>
 4825:           </data>
 4826:         </element>
 4827:       </correct>
 4828:       <valid>
 4829:         <doc></doc>
 4830:       </valid>
 4831:     </testCase>
 4832:     <testCase>
 4833:       <correct>
 4834:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4835:           <data type="token">
 4836:             <param name="length">1</param>
 4837:           </data>
 4838:         </element>
 4839:       </correct>
 4840:       <invalid>
 4841:         <doc></doc>
 4842:       </invalid>
 4843:     </testCase>
 4844:     <testCase>
 4845:       <correct>
 4846:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4847:           <data type="token">
 4848:             <param name="length">1</param>
 4849:           </data>
 4850:         </element>
 4851:       </correct>
 4852:       <valid>
 4853:         <doc>x</doc>
 4854:       </valid>
 4855:     </testCase>
 4856:     <testCase>
 4857:       <correct>
 4858:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4859:           <data type="token">
 4860:             <param name="length">2</param>
 4861:           </data>
 4862:         </element>
 4863:       </correct>
 4864:       <invalid>
 4865:         <doc>x</doc>
 4866:       </invalid>
 4867:     </testCase>
 4868:     <testCase>
 4869:       <correct>
 4870:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4871:           <data type="token">
 4872:             <param name="length">0</param>
 4873:           </data>
 4874:         </element>
 4875:       </correct>
 4876:       <invalid>
 4877:         <doc>x</doc>
 4878:       </invalid>
 4879:     </testCase>
 4880:     <testCase>
 4881:       <correct>
 4882:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4883:           <data type="token">
 4884:             <param name="length">1</param>
 4885:           </data>
 4886:         </element>
 4887:       </correct>
 4888:       <valid>
 4889:         <doc> x </doc>
 4890:       </valid>
 4891:     </testCase>
 4892:     <testCase>
 4893:       <correct>
 4894:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4895:           <data type="token">
 4896:             <param name="length">2</param>
 4897:           </data>
 4898:         </element>
 4899:       </correct>
 4900:       <invalid>
 4901:         <doc> x </doc>
 4902:       </invalid>
 4903:     </testCase>
 4904:     <testCase>
 4905:       <correct>
 4906:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4907:           <data type="token">
 4908:             <param name="length">0</param>
 4909:           </data>
 4910:         </element>
 4911:       </correct>
 4912:       <invalid>
 4913:         <doc> x </doc>
 4914:       </invalid>
 4915:     </testCase>
 4916:     <testCase>
 4917:       <correct>
 4918:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4919:           <data type="token">
 4920:             <param name="length">1</param>
 4921:           </data>
 4922:         </element>
 4923:       </correct>
 4924:       <valid>
 4925:         <doc>𐠀</doc>
 4926:       </valid>
 4927:     </testCase>
 4928:     <testCase>
 4929:       <correct>
 4930:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4931:           <data type="token">
 4932:             <param name="length">2</param>
 4933:           </data>
 4934:         </element>
 4935:       </correct>
 4936:       <invalid>
 4937:         <doc>𐠀</doc>
 4938:       </invalid>
 4939:     </testCase>
 4940:     <testCase>
 4941:       <correct>
 4942:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4943:           <data type="token">
 4944:             <param name="length">0</param>
 4945:           </data>
 4946:         </element>
 4947:       </correct>
 4948:       <invalid>
 4949:         <doc>𐠀</doc>
 4950:       </invalid>
 4951:     </testCase>
 4952:   </testSuite>
 4953:   <testSuite>
 4954:     <documentation>Datatype language</documentation>
 4955:     <testCase>
 4956:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4957:       <correct>
 4958:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4959:           <data type="language"/>
 4960:         </element>
 4961:       </correct>
 4962:       <valid>
 4963:         <doc>en</doc>
 4964:       </valid>
 4965:       <valid>
 4966:         <doc>en-UK</doc>
 4967:       </valid>
 4968:       <valid>
 4969:         <doc>i-cherokee</doc>
 4970:       </valid>
 4971:       <valid>
 4972:         <doc>x-klingon</doc>
 4973:       </valid>
 4974:       <valid>
 4975:         <doc>en-uk-scotland</doc>
 4976:       </valid>
 4977:       <invalid>
 4978:         <doc>en.UK</doc>
 4979:       </invalid>
 4980:     </testCase>
 4981:   </testSuite>
 4982:   <testSuite>
 4983:     <documentation>Datatype Name</documentation>
 4984:     <testCase>
 4985:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 4986:       <correct>
 4987:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4988:           <data type="Name"/>
 4989:         </element>
 4990:       </correct>
 4991:       <valid>
 4992:         <doc>foo</doc>
 4993:       </valid>
 4994:       <valid>
 4995:         <doc>_0123456789</doc>
 4996:       </valid>
 4997:       <invalid>
 4998:         <doc>.</doc>
 4999:       </invalid>
 5000:       <valid>
 5001:         <doc>:</doc>
 5002:       </valid>
 5003:       <invalid>
 5004:         <doc>-</doc>
 5005:       </invalid>
 5006:       <invalid>
 5007:         <doc>1234</doc>
 5008:       </invalid>
 5009:       <valid>
 5010:         <doc> foo </doc>
 5011:       </valid>
 5012:     </testCase>
 5013:   </testSuite>
 5014:   <testSuite>
 5015:     <documentation>Datatype NCName</documentation>
 5016:     <testCase>
 5017:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 5018:       <correct>
 5019:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5020:           <data type="NCName"/>
 5021:         </element>
 5022:       </correct>
 5023:       <valid>
 5024:         <doc>foo</doc>
 5025:       </valid>
 5026:       <invalid>
 5027:         <doc>foo:bar</doc>
 5028:       </invalid>
 5029:       <invalid>
 5030:         <doc>0foo</doc>
 5031:       </invalid>
 5032:     </testCase>
 5033:     <testCase>
 5034:       <correct>
 5035:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5036:           <value type="NCName">foo</value>
 5037:         </element>
 5038:       </correct>
 5039:       <valid>
 5040:         <doc> foo </doc>
 5041:       </valid>
 5042:       <invalid>
 5043:         <doc>FOO</doc>
 5044:       </invalid>
 5045:       <invalid>
 5046:         <doc> FOO </doc>
 5047:       </invalid>
 5048:     </testCase>
 5049:     <testCase>
 5050:       <correct>
 5051:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5052:           <value type="NCName">FOO</value>
 5053:         </element>
 5054:       </correct>
 5055:       <valid>
 5056:         <doc> FOO </doc>
 5057:       </valid>
 5058:       <invalid>
 5059:         <doc>foo</doc>
 5060:       </invalid>
 5061:       <invalid>
 5062:         <doc> foo </doc>
 5063:       </invalid>
 5064:     </testCase>
 5065:   </testSuite>
 5066:   <testSuite>
 5067:     <documentation>Datatype NMTOKEN</documentation>
 5068:     <testCase>
 5069:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 5070:       <correct>
 5071:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5072:           <data type="NMTOKEN"/>
 5073:         </element>
 5074:       </correct>
 5075:       <valid>
 5076:         <doc>foo</doc>
 5077:       </valid>
 5078:       <valid>
 5079:         <doc>_</doc>
 5080:       </valid>
 5081:       <valid>
 5082:         <doc>.</doc>
 5083:       </valid>
 5084:       <valid>
 5085:         <doc>:</doc>
 5086:       </valid>
 5087:       <valid>
 5088:         <doc>-</doc>
 5089:       </valid>
 5090:       <valid>
 5091:         <doc>1234</doc>
 5092:       </valid>
 5093:       <valid>
 5094:         <doc> foo </doc>
 5095:       </valid>
 5096:     </testCase>
 5097:     <testCase>
 5098:       <correct>
 5099:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5100:           <data type="NMTOKEN">
 5101:             <param name="length">3</param>
 5102:           </data>
 5103:         </element>
 5104:       </correct>
 5105:       <valid>
 5106:         <doc> foo </doc>
 5107:       </valid>
 5108:     </testCase>
 5109:     <testCase>
 5110:       <correct>
 5111:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5112:           <data type="NMTOKEN">
 5113:             <param name="length">4</param>
 5114:           </data>
 5115:         </element>
 5116:       </correct>
 5117:       <invalid>
 5118:         <doc> foo </doc>
 5119:       </invalid>
 5120:     </testCase>
 5121:     <testCase>
 5122:       <correct>
 5123:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5124:           <data type="NMTOKEN">
 5125:             <param name="length">2</param>
 5126:           </data>
 5127:         </element>
 5128:       </correct>
 5129:       <invalid>
 5130:         <doc> foo </doc>
 5131:       </invalid>
 5132:     </testCase>
 5133:     <testCase>
 5134:       <correct>
 5135:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5136:           <data type="NMTOKEN">
 5137:             <param name="length">2</param>
 5138:           </data>
 5139:         </element>
 5140:       </correct>
 5141:       <valid>
 5142:         <doc>fo</doc>
 5143:       </valid>
 5144:     </testCase>
 5145:     <testCase>
 5146:       <correct>
 5147:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5148:           <data type="NMTOKEN">
 5149:             <param name="length">3</param>
 5150:           </data>
 5151:         </element>
 5152:       </correct>
 5153:       <invalid>
 5154:         <doc>fo</doc>
 5155:       </invalid>
 5156:     </testCase>
 5157:     <testCase>
 5158:       <correct>
 5159:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5160:           <data type="NMTOKEN">
 5161:             <param name="length">1</param>
 5162:           </data>
 5163:         </element>
 5164:       </correct>
 5165:       <invalid>
 5166:         <doc>fo</doc>
 5167:       </invalid>
 5168:     </testCase>
 5169:     <testCase>
 5170:       <correct>
 5171:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5172:           <data type="NMTOKEN">
 5173:             <param name="length">1</param>
 5174:           </data>
 5175:         </element>
 5176:       </correct>
 5177:       <valid>
 5178:         <doc>f</doc>
 5179:       </valid>
 5180:     </testCase>
 5181:     <testCase>
 5182:       <correct>
 5183:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5184:           <data type="NMTOKEN">
 5185:             <param name="length">2</param>
 5186:           </data>
 5187:         </element>
 5188:       </correct>
 5189:       <invalid>
 5190:         <doc>f</doc>
 5191:       </invalid>
 5192:     </testCase>
 5193:     <testCase>
 5194:       <correct>
 5195:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5196:           <data type="NMTOKEN">
 5197:             <param name="length">0</param>
 5198:           </data>
 5199:         </element>
 5200:       </correct>
 5201:       <invalid>
 5202:         <doc>f</doc>
 5203:       </invalid>
 5204:     </testCase>
 5205:   </testSuite>
 5206:   <testSuite>
 5207:     <documentation>Datatype NMTOKENS</documentation>
 5208:     <testCase>
 5209:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 5210:       <correct>
 5211:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5212:           <data type="NMTOKENS"/>
 5213:         </element>
 5214:       </correct>
 5215:       <valid>
 5216:         <doc>foo bar</doc>
 5217:       </valid>
 5218:       <invalid>
 5219:         <doc></doc>
 5220:       </invalid>
 5221:       <valid>
 5222:         <doc>1 2 3 4</doc>
 5223:       </valid>
 5224:     </testCase>
 5225:   </testSuite>
 5226:   <testSuite>
 5227:     <documentation>Datatype ID</documentation>
 5228:     <testCase>
 5229:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 5230:       <correct>
 5231:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5232:           <data type="ID"/>
 5233:         </element>
 5234:       </correct>
 5235:       <valid>
 5236:         <doc>foobar</doc>
 5237:       </valid>
 5238:       <invalid>
 5239:         <doc>foo:bar</doc>
 5240:       </invalid>
 5241:       <invalid>
 5242:         <doc>foo bar</doc>
 5243:       </invalid>
 5244:     </testCase>
 5245:   </testSuite>
 5246:   <testSuite>
 5247:     <documentation>Datatype ENTITY</documentation>
 5248:     <testCase>
 5249:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 5250:       <correct>
 5251:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5252:           <data type="ENTITY"/>
 5253:         </element>
 5254:       </correct>
 5255:       <invalid>
 5256:         <doc></doc>
 5257:       </invalid>
 5258:       <invalid>
 5259:         <doc>foo</doc>
 5260:       </invalid>
 5261:       <valid dtd="&#10;&lt;!DOCTYPE doc [&#10;&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg&gt;&#10;]&gt;">
 5262:         <doc>foo</doc>
 5263:       </valid>
 5264:     </testCase>
 5265:   </testSuite>
 5266:   <testSuite>
 5267:     <documentation>Datatype ENTITIES</documentation>
 5268:     <testCase>
 5269:       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
 5270:       <correct>
 5271:         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 5272:           <data type="ENTITIES"/>
 5273:         </element>
 5274:       </correct>
 5275:       <invalid>
 5276:         <doc></doc>
 5277:       </invalid>
 5278:       <invalid>
 5279:         <doc>foo</doc>
 5280:       </invalid>
 5281:       <valid dtd="&#10;&lt;!DOCTYPE doc [&#10;&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg&gt; &#10;&lt;!ENTITY bar SYSTEM 'whatever' NDATA jpeg&gt; &#10;]&gt;">
 5282:         <doc> foo bar </doc>
 5283:       </valid>
 5284:     </testCase>
 5285:   </testSuite>
 5286: </testSuite>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>