Annotation of embedaddon/libxml2/test/xsdtest/xsdtestsuite.xml, revision 1.1

1.1     ! misho       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>