1: <xsdtest>
2: <datatype name="dateTime">
3: <valid>2001-12-01T19:45:00</valid>
4: <valid>2001-12-01T19:45:00Z</valid>
5: <valid>2001-12-01T19:45:00-11:59</valid>
6: <valid>0001-01-12T00:00:00+12:00</valid>
7: <invalid>2001-12-1T19:45:00+24:00</invalid>
8: <invalid>2001-12-1T19:45:00</invalid>
9: <equiv>
10: <class>
11: <value>2001-12-01T19:45:00</value>
12: <value>2001-12-01T19:45:00.00</value>
13: </class>
14: <class>
15: <value>2001-12-01T19:45:00Z</value>
16: <value>2001-12-01T19:45:00.00Z</value>
17: <value>2001-12-01T20:45:00+01:00</value>
18: </class>
19: </equiv>
20: </datatype>
21: <datatype name="anyURI">
22: <valid>foobar</valid>
23: <valid>http://www.example.com</valid>
24: <valid>http://ji%6d@www.example.com</valid>
25: <valid>http://www.example.co%6d</valid>
26: <valid>nosuchscheme:stuff</valid>
27: <invalid>foo$bar:stuff</invalid>
28: <invalid>f%oobar</invalid>
29: </datatype>
30: <datatype name="integer">
31: <valid>10</valid>
32: <valid>01</valid>
33: <valid>0123456789</valid>
34: <valid>+10</valid>
35: <valid>-10</valid>
36: <invalid>1.0</invalid>
37: <invalid>.1</invalid>
38: <valid>9999999999999999999999999999999</valid>
39: <invalid>1.</invalid>
40: <invalid>0.</invalid>
41: <equiv>
42: <class>
43: <value>0</value>
44: <value>+0</value>
45: <value>-0</value>
46: <value>00</value>
47: </class>
48: <class>
49: <value>10</value>
50: <value>+10</value>
51: <value>+0010</value>
52: <value>010</value>
53: </class>
54: <class>
55: <value>-10</value>
56: <value>-0010</value>
57: <value>-010</value>
58: </class>
59: </equiv>
60: </datatype>
61: <datatype name="duration">
62: <valid>P1Y</valid>
63: <valid>P1Y0M2DT17H5M12S</valid>
64: <valid>-P1Y</valid>
65: <valid>P60D</valid>
66: <valid>PT24H</valid>
67: <valid>PT1.2S</valid>
68: <invalid>P24h</invalid>
69: <invalid>P24H</invalid>
70: <invalid>P1YT</invalid>
71: <invalid>P</invalid>
72: <invalid>-P</invalid>
73: <equiv>
74: <class>
75: <value>-P6M</value>
76: </class>
77: <class>
78: <value>P0Y</value>
79: <value>-P0Y</value>
80: </class>
81: <class>
82: <value>P1Y</value>
83: <value>P001Y</value>
84: <value>P001Y0M</value>
85: <value>P1Y0M0DT0H0M0.0S</value>
86: </class>
87: <class>
88: <value>P6M</value>
89: </class>
90: <class>
91: <value>PT6M</value>
92: </class>
93: <class>
94: <value>PT1S</value>
95: <value>PT1.0S</value>
96: </class>
97: </equiv>
98: <lessThan>
99: <value>PT1M</value>
100: <value>PT61S</value>
101: </lessThan>
102: <lessThan>
103: <value>PT59S</value>
104: <value>PT1M</value>
105: </lessThan>
106: <incomparable>
107: <value>PT60S</value>
108: <value>PT1M</value>
109: </incomparable>
110: <lessThan>
111: <value>PT1H</value>
112: <value>PT61M</value>
113: </lessThan>
114: <lessThan>
115: <value>PT59M</value>
116: <value>PT1H</value>
117: </lessThan>
118: <incomparable>
119: <value>PT60M</value>
120: <value>PT1H</value>
121: </incomparable>
122: <lessThan>
123: <value>P1D</value>
124: <value>PT25H</value>
125: </lessThan>
126: <lessThan>
127: <value>PT23H</value>
128: <value>P1D</value>
129: </lessThan>
130: <incomparable>
131: <value>P1D</value>
132: <value>PT24H</value>
133: </incomparable>
134: <lessThan>
135: <value>P1Y</value>
136: <value>P13M</value>
137: </lessThan>
138: <lessThan>
139: <value>P11M</value>
140: <value>P1Y</value>
141: </lessThan>
142: <incomparable>
143: <value>P12M</value>
144: <value>P1Y</value>
145: </incomparable>
146: <lessThan>
147: <value>P364D</value>
148: <value>P1Y</value>
149: </lessThan>
150: <incomparable>
151: <value>P1Y</value>
152: <value>P365D</value>
153: </incomparable>
154: <incomparable>
155: <value>P1Y</value>
156: <value>P366D</value>
157: </incomparable>
158: <lessThan>
159: <value>P1Y</value>
160: <value>P367D</value>
161: </lessThan>
162: <lessThan>
163: <value>P149D</value>
164: <value>P5M</value>
165: </lessThan>
166: <incomparable>
167: <value>P150D</value>
168: <value>P5M</value>
169: </incomparable>
170: <incomparable>
171: <value>P151D</value>
172: <value>P5M</value>
173: </incomparable>
174: <incomparable>
175: <value>P152D</value>
176: <value>P5M</value>
177: </incomparable>
178: <incomparable>
179: <value>P153D</value>
180: <value>P5M</value>
181: </incomparable>
182: <lessThan>
183: <value>P5M</value>
184: <value>P154D</value>
185: </lessThan>
186: <lessThan>
187: <value>P27D</value>
188: <value>P1M</value>
189: </lessThan>
190: <incomparable>
191: <value>P28D</value>
192: <value>P1M</value>
193: </incomparable>
194: <incomparable>
195: <value>P29D</value>
196: <value>P1M</value>
197: </incomparable>
198: <incomparable>
199: <value>P30D</value>
200: <value>P1M</value>
201: </incomparable>
202: <incomparable>
203: <value>P31D</value>
204: <value>P1M</value>
205: </incomparable>
206: <lessThan>
207: <value>P1M</value>
208: <value>P32D</value>
209: </lessThan>
210: </datatype>
211: <datatype name="time">
212: <valid>12:45:00</valid>
213: <valid>12:45:00Z</valid>
214: </datatype>
215: <datatype name="date">
216: <valid>1886-12-01</valid>
217: <valid>1886-12-01Z</valid>
218: <lessThan>
219: <value>1066-12-31</value>
220: <value>1900-01-01</value>
221: </lessThan>
222: <lessThan>
223: <value>1900-01-01</value>
224: <value>1900-01-02</value>
225: </lessThan>
226: </datatype>
227: <datatype name="gYearMonth">
228: <valid>1996-12</valid>
229: <valid>1996-01</valid>
230: <valid>1996-01Z</valid>
231: <invalid>1996-00</invalid>
232: <equiv>
233: <class><value>1996-01</value></class>
234: <class>
235: <value>1996-01Z</value>
236: <value>1996-01+00:00</value>
237: <value>1996-01-00:00</value>
238: </class>
239: <class><value>1996-01+01:00</value></class>
240: <class><value>1996-01-01:00</value></class>
241: </equiv>
242: </datatype>
243: <datatype name="gYear">
244: <valid>2001</valid>
245: <valid>2001Z</valid>
246: <lessThan>
247: <value>1999</value>
248: <value>2000</value>
249: </lessThan>
250: <lessThan>
251: <value>1999+07:00</value>
252: <value>2000+07:00</value>
253: </lessThan>
254: </datatype>
255: <datatype name="gMonthDay">
256: <valid>--12-01</valid>
257: <valid>--12-01Z</valid>
258: <lessThan>
259: <value>--12-01</value>
260: <value>--12-04</value>
261: </lessThan>
262: <lessThan>
263: <value>--11-17</value>
264: <value>--12-04</value>
265: </lessThan>
266: </datatype>
267: <datatype name="gDay">
268: <valid>---20</valid>
269: <valid>---20Z</valid>
270: <lessThan>
271: <value>---01</value>
272: <value>---31</value>
273: </lessThan>
274: </datatype>
275: <datatype name="gMonth">
276: <valid>--12</valid>
277: <valid>--01</valid>
278: <valid>--01Z</valid>
279: <valid> --12 </valid>
280: <invalid>---01</invalid>
281: <invalid>--00</invalid>
282: <invalid>--13</invalid>
283: <invalid>- -13</invalid>
284: <lessThan>
285: <value>--01</value>
286: <value>--12</value>
287: </lessThan>
288: <lessThan>
289: <value>--01</value>
290: <value>--02</value>
291: </lessThan>
292: </datatype>
293: <datatype name="boolean">
294: <valid>true</valid>
295: <valid>false</valid>
296: <valid>0</valid>
297: <valid>1</valid>
298: <invalid>00</invalid>
299: <invalid>00</invalid>
300: <invalid>01</invalid>
301: <equiv>
302: <class><value>true</value><value>1</value></class>
303: <class><value>false</value><value>0</value></class>
304: </equiv>
305: </datatype>
306: <datatype name="base64Binary">
307: <valid>AAAA</valid>
308: <valid>abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR
309: STUV WXYZ 0123 4567 89+/</valid>
310: <valid>BA==</valid>
311: <valid></valid>
312: <valid>BA==</valid>
313: <valid>BQ==</valid>
314: <valid>Bg==</valid>
315: <valid>Bw==</valid>
316: <valid>BBA=</valid>
317: <valid>BBA=</valid>
318: <valid>BBE=</valid>
319: <valid>BBI=</valid>
320: <valid>BBM=</valid>
321: <valid>BBQ=</valid>
322: <valid>BBU=</valid>
323: <valid>BBY=</valid>
324: <valid>BBc=</valid>
325: <valid>BBg=</valid>
326: <valid>BBk=</valid>
327: <valid>BBo=</valid>
328: <valid>BBs=</valid>
329: <valid>BBw=</valid>
330: <valid>BB0=</valid>
331: <valid>BB4=</valid>
332: <valid>BB8=</valid>
333: <invalid>====</invalid>
334: <invalid>BB==</invalid>
335: <invalid>BBB=</invalid>
336: <invalid>B===</invalid>
337: <invalid>B</invalid>
338: <equiv>
339: <class>
340: <value>deadbeef</value>
341: <value>d

	e a d
342: b eef </value>
343: </class>
344: <class>
345: <value>DEADBEEF</value>
346: <value>D

	E A D
347: B EEF </value>
348: </class>
349: </equiv>
350: <length value="0"></length>
351: <length value="6">deadbeef</length>
352: <length value="1">BA==</length>
353: <length value="2">BBA=</length>
354: <length value="3">dead</length>
355: <length value="4">deadBA==</length>
356: </datatype>
357: <datatype name="hexBinary">
358: <valid>deadbeef</valid>
359: <valid></valid>
360: <valid>0123456789ABCDEFabcdef</valid>
361: <invalid>00 00</invalid>
362: <invalid>00.00</invalid>
363: <invalid>0G</invalid>
364: <equiv>
365: <class>
366: <value>00</value>
367: <value>
368: 00
369: </value>
370: </class>
371: <class>
372: <value>01</value>
373: </class>
374: <class>
375: <value>10</value>
376: </class>
377: <class>
378: <value>0a</value>
379: <value>0A</value>
380: </class>
381: </equiv>
382: <length value="0"></length>
383: <length value="1">00</length>
384: <length value="2">0000</length>
385: <length value="2"> 0000 </length>
386: <length value="2">AAAA</length>
387: </datatype>
388: <datatype name="float">
389: <valid>1.0</valid>
390: <valid>1.</valid>
391: <valid>.1</valid>
392: <invalid>- 1</invalid>
393: <invalid>1 .0</invalid>
394: <invalid>+INF</invalid>
395: <invalid>+NaN</invalid>
396: <invalid>-NaN</invalid>
397: <equiv>
398: <class>
399: <value>0</value>
400: <value>-0</value>
401: <value>+0</value>
402: <value> 0 </value>
403: <value> 0. </value>
404: <value> .0 </value>
405: <value> 0.0 </value>
406: <value> 0e0 </value>
407: <value> 0E0 </value>
408: <value> 0E+0 </value>
409: <value> 0E-0 </value>
410: </class>
411: <class>
412: <value>1E0</value>
413: <value>0.1E1</value>
414: <value>10E-1</value>
415: <value>+1</value>
416: </class>
417: <class>
418: <value>-1</value>
419: </class>
420: <class>
421: <value>INF</value>
422: <value>INF </value>
423: </class>
424: <class>
425: <value>-INF</value>
426: <value>-INF </value>
427: </class>
428: <class>
429: <value>NaN</value>
430: <value> NaN </value>
431: </class>
432: </equiv>
433: <lessThan>
434: <value>-INF</value>
435: <value>-1000</value>
436: </lessThan>
437: <lessThan>
438: <value>1000</value>
439: <value>INF</value>
440: </lessThan>
441: <lessThan>
442: <value>-1</value>
443: <value>1</value>
444: </lessThan>
445: <lessThan>
446: <value>0</value>
447: <value>1</value>
448: </lessThan>
449: <lessThan>
450: <value>-1</value>
451: <value>0</value>
452: </lessThan>
453: </datatype>
454: <datatype name="double">
455: <valid>1.0</valid>
456: <valid>1.</valid>
457: <valid>.1</valid>
458: <invalid>- 1</invalid>
459: <invalid>1 .0</invalid>
460: <invalid>+INF</invalid>
461: <invalid>+NaN</invalid>
462: <invalid>-NaN</invalid>
463: <equiv>
464: <class>
465: <value>0</value>
466: <value>-0</value>
467: <value>+0</value>
468: <value> 0 </value>
469: <value> 0. </value>
470: <value> .0 </value>
471: <value> 0.0 </value>
472: <value> 0e0 </value>
473: <value> 0E0 </value>
474: <value> 0E+0 </value>
475: <value> 0E-0 </value>
476: </class>
477: <class>
478: <value>1E0</value>
479: <value>0.1E1</value>
480: <value>10E-1</value>
481: <value>+1</value>
482: </class>
483: <class>
484: <value>-1</value>
485: </class>
486: <class>
487: <value>INF</value>
488: <value>INF </value>
489: </class>
490: <class>
491: <value>-INF</value>
492: <value>-INF </value>
493: </class>
494: <class>
495: <value>NaN</value>
496: <value> NaN </value>
497: </class>
498: </equiv>
499: <lessThan>
500: <value>-INF</value>
501: <value>-1000</value>
502: </lessThan>
503: <lessThan>
504: <value>1000</value>
505: <value>INF</value>
506: </lessThan>
507: <lessThan>
508: <value>-1</value>
509: <value>1</value>
510: </lessThan>
511: <lessThan>
512: <value>0</value>
513: <value>1</value>
514: </lessThan>
515: <lessThan>
516: <value>-1</value>
517: <value>0</value>
518: </lessThan>
519: </datatype>
520: <datatype name="QName">
521: <valid>foo</valid>
522: <valid xmlns:x="http://www.example.com">x:foo</valid>
523: <invalid>y:foo</invalid>
524: <equiv xmlns:x="http://www.example.com"
525: xmlns:y="http://www.example.com/"
526: xmlns:z="http://www.example.com">
527: <class>
528: <value>foo</value>
529: <value> foo</value>
530: </class>
531: <class>
532: <value>x:foo</value>
533: <value> x:foo </value>
534: <value>z:foo</value>
535: </class>
536: <class>
537: <value>x:bar</value>
538: <value>z:bar</value>
539: </class>
540: <class>
541: <value>y:foo</value>
542: </class>
543: <class>
544: <value>y:bar</value>
545: </class>
546: </equiv>
547: </datatype>
548: <datatype name="NOTATION">
549: <valid>foo</valid>
550: <valid xmlns:x="http://www.example.com">x:foo</valid>
551: <invalid>y:foo</invalid>
552: </datatype>
553: <datatype name="decimal">
554: <valid>1.0</valid>
555: <valid>1.</valid>
556: <valid>.1</valid>
557: <valid>+1.0</valid>
558: <valid>-1.0</valid>
559: <valid> 1 </valid>
560: <valid>99999999999999999999999999999999999999999999999999999999999999999</valid>
561: <valid>-99999999999999999999999999999999999999999999999999999999999999999</valid>
562: <invalid>junk</invalid>
563: <invalid>--1</invalid>
564: <invalid>++1</invalid>
565: <invalid>+-1</invalid>
566: <invalid>1.2.</invalid>
567: <invalid>..1</invalid>
568: <invalid>1..</invalid>
569: <invalid>1 .2</invalid>
570: <invalid>1+</invalid>
571: <invalid>+ 1</invalid>
572: <lessThan>
573: <value>0</value>
574: <value>1</value>
575: </lessThan>
576: </datatype>
577: <datatype name="nonPositiveInteger">
578: <valid>-1</valid>
579: <valid>0</valid>
580: <valid>-0</valid>
581: <invalid>1</invalid>
582: </datatype>
583: <datatype name="nonNegativeInteger">
584: <valid>1</valid>
585: <valid>0</valid>
586: <valid>+1</valid>
587: <valid>+0</valid>
588: <invalid>-1</invalid>
589: </datatype>
590: <datatype name="positiveInteger">
591: <valid>+1</valid>
592: <valid>1</valid>
593: <invalid>0</invalid>
594: <invalid>-1</invalid>
595: </datatype>
596: <datatype name="negativeInteger">
597: <valid>-1</valid>
598: <invalid>+1</invalid>
599: <invalid>0</invalid>
600: </datatype>
601: <datatype name="long">
602: <valid>1</valid>
603: <valid>+1</valid>
604: <valid>0</valid>
605: <valid> 0 </valid>
606: <invalid>1 2</invalid>
607: <invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid>
608: <valid>9223372036854775807</valid>
609: <valid>-9223372036854775808</valid>
610: <invalid>9223372036854775808</invalid>
611: <invalid>-9223372036854775809</invalid>
612: <invalid/>
613: </datatype>
614: <datatype name="int">
615: <valid>1</valid>
616: <valid>01</valid>
617: <valid> 1 </valid>
618: <valid>2147483647</valid>
619: <valid>-2147483648</valid>
620: <invalid>2147483648</invalid>
621: <invalid>-2147483649</invalid>
622: <invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid>
623: <equiv>
624: <class>
625: <value>1</value>
626: <value>+1</value>
627: <value> 1 </value>
628: <value>001</value>
629: </class>
630: <class>
631: <value>-1</value>
632: <value> -1 </value>
633: <value>-001</value>
634: </class>
635: </equiv>
636: </datatype>
637: <datatype name="short">
638: <valid>1</valid>
639: <valid>32767</valid>
640: <valid>-32768</valid>
641: <invalid>32768</invalid>
642: <invalid>-32769</invalid>
643: <invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid>
644: <equiv>
645: <class>
646: <value>1</value>
647: <value>+1</value>
648: <value> 1 </value>
649: <value>001</value>
650: </class>
651: <class>
652: <value>-1</value>
653: <value> -1 </value>
654: <value>-001</value>
655: </class>
656: </equiv>
657: </datatype>
658: <datatype name="byte">
659: <valid>1</valid>
660: <valid>127</valid>
661: <valid>-128</valid>
662: <invalid>128</invalid>
663: <invalid>-129</invalid>
664: </datatype>
665: <datatype name="unsignedLong">
666: <valid>1</valid>
667: <valid>+1</valid>
668: <invalid>-1</invalid>
669: <valid>0</valid>
670: <valid>18446744073709551615</valid>
671: <invalid>18446744073709551616</invalid>
672: <invalid>-1</invalid>
673: </datatype>
674: <datatype name="unsignedInt">
675: <valid>1</valid>
676: <valid>+1</valid>
677: <valid>0</valid>
678: <valid>4294967295</valid>
679: <invalid>4294967296</invalid>
680: <invalid>-1</invalid>
681: </datatype>
682: <datatype name="unsignedShort">
683: <valid>1</valid>
684: <valid>+1</valid>
685: <valid>0</valid>
686: <valid>65535</valid>
687: <invalid>65536</invalid>
688: <invalid>-1</invalid>
689: </datatype>
690: <datatype name="unsignedByte">
691: <valid>1</valid>
692: <valid>+1</valid>
693: <valid>0</valid>
694: <valid>255</valid>
695: <invalid>256</invalid>
696: <invalid>-1</invalid>
697: </datatype>
698: <datatype name="string">
699: <valid>any thing at all!</valid>
700: </datatype>
701: <datatype name="normalizedString">
702: <valid>any thing at all!</valid>
703: </datatype>
704: <datatype name="token">
705: <valid>any thing at all!</valid>
706: <equiv>
707: <class>
708: <value/>
709: <value> </value>
710: <value>	

 </value>
711: </class>
712: <class>
713: <value>x </value>
714: <value>x
</value>
715: <value>x
</value>
716: <value>x	</value>
717: <value> x</value>
718: <value>
x</value>
719: <value>
x</value>
720: <value>	x</value>
721: <value>	

 x	

 </value>
722: </class>
723: <class>
724: <value>x y </value>
725: <value>x y
</value>
726: <value>x y
</value>
727: <value>x y	</value>
728: <value>x y</value>
729: <value>x
y</value>
730: <value>x
y</value>
731: <value>x	y</value>
732: <value> x y</value>
733: <value>
x y</value>
734: <value>
x y</value>
735: <value>	x y</value>
736: <value>	

 x	

 y	

 </value>
737: </class>
738: </equiv>
739: <length value="0"></length>
740: <length value="1">x</length>
741: <length value="1"> x </length>
742: <length value="1">𐠀</length>
743: </datatype>
744: <datatype name="language">
745: <valid>en</valid>
746: <valid>en-UK</valid>
747: <valid>i-cherokee</valid>
748: <valid>x-klingon</valid>
749: <valid>en-uk-scotland</valid>
750: <invalid>en.UK</invalid>
751: </datatype>
752: <datatype name="Name">
753: <valid>foo</valid>
754: <valid>_0123456789</valid>
755: <invalid>.</invalid>
756: <valid>:</valid>
757: <invalid>-</invalid>
758: <invalid>1234</invalid>
759: <valid> foo </valid>
760: </datatype>
761: <datatype name="NCName">
762: <valid>foo</valid>
763: <invalid>foo:bar</invalid>
764: <invalid>0foo</invalid>
765: <equiv>
766: <class><value>foo</value><value> foo </value></class>
767: <class><value>FOO</value><value> FOO </value></class>
768: </equiv>
769: </datatype>
770: <datatype name="NMTOKEN">
771: <valid>foo</valid>
772: <valid>_</valid>
773: <valid>.</valid>
774: <valid>:</valid>
775: <valid>-</valid>
776: <valid>1234</valid>
777: <valid> foo </valid>
778: <length value="3"> foo </length>
779: <length value="2">fo</length>
780: <length value="1">f</length>
781: </datatype>
782: <datatype name="NMTOKENS">
783: <valid>foo bar</valid>
784: <invalid/>
785: <valid>1 2 3 4</valid>
786: </datatype>
787: <datatype name="ID">
788: <valid>foobar</valid>
789: <invalid>foo:bar</invalid>
790: <invalid>foo bar</invalid>
791: </datatype>
792: <datatype name="ENTITY">
793: <invalid/>
794: <invalid>foo</invalid>
795: <valid internalSubset="<!ENTITY foo SYSTEM 'whatever' NDATA jpeg>"
796: >foo</valid>
797: </datatype>
798: <datatype name="ENTITIES">
799: <invalid></invalid>
800: <invalid>foo</invalid>
801: <valid internalSubset="<!ENTITY foo SYSTEM 'whatever' NDATA jpeg>
802: 
<!ENTITY bar SYSTEM 'whatever' NDATA jpeg>
803: "
804: > foo bar </valid>
805: </datatype>
806: </xsdtest>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>