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
1939STUV 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
2035b eef </doc>
2036      </valid>
2037      <invalid>
2038        <doc>DEADBEEF</doc>
2039      </invalid>
2040      <invalid>
2041        <doc>D
2042&#13;	E A D
2043B 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
2055B EEF </doc>
2056      </valid>
2057      <invalid>
2058        <doc>deadbeef</doc>
2059      </invalid>
2060      <invalid>
2061        <doc>d
2062&#13;	e a d
2063b 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>
4581x</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
4612y</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>
4625x 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>
4661x</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
4702y</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>
4715x 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
4751y</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>
4764x 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>
4806x</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>
5287