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> 807