libxml2 2.9.1 clean sources
[tomato.git] / release / src / router / libxml2 / test / xsdtest / xsdtestsuite.xml
blob1c91cb9d3d1165d8f9386617a3c52c2a2b5cb47f
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>