1 * Summary: internal interfaces for XML Schemas 2 * Description: internal interfaces for the XML Schemas handling 3 * and schema validity checking 4 * The Schemas development is a Work In Progress. 5 * Some of those interfaces are not garanteed to be API or 6 * ABI stable ! 7 * 8 * Copy: See Copyright for the status of this software. 9 * 10 * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. 11 12 /if not defined(XML_SCHEMA_INTERNALS_H__) 13 /define XML_SCHEMA_INTERNALS_H__ 14 15 /include "libxmlrpg/xmlversion" 16 17 /if defined(LIBXML_SCHEMAS_ENABLED) 18 /include "libxmlrpg/xmlregexp" 19 /include "libxmlrpg/hash" 20 /include "libxmlrpg/dict" 21 22 d xmlSchemaValType... 23 d s 10i 0 based(######typedef######) enum 24 d XML_SCHEMAS_UNKNOWN... 25 d c 0 26 d XML_SCHEMAS_STRING... 27 d c 1 28 d XML_SCHEMAS_NORMSTRING... 29 d c 2 30 d XML_SCHEMAS_DECIMAL... 31 d c 3 32 d XML_SCHEMAS_TIME... 33 d c 4 34 d XML_SCHEMAS_GDAY... 35 d c 5 36 d XML_SCHEMAS_GMONTH... 37 d c 6 38 d XML_SCHEMAS_GMONTHDAY... 39 d c 7 40 d XML_SCHEMAS_GYEAR... 41 d c 8 42 d XML_SCHEMAS_GYEARMONTH... 43 d c 9 44 d XML_SCHEMAS_DATE... 45 d c 10 46 d XML_SCHEMAS_DATETIME... 47 d c 11 48 d XML_SCHEMAS_DURATION... 49 d c 12 50 d XML_SCHEMAS_FLOAT... 51 d c 13 52 d XML_SCHEMAS_DOUBLE... 53 d c 14 54 d XML_SCHEMAS_BOOLEAN... 55 d c 15 56 d XML_SCHEMAS_TOKEN... 57 d c 16 58 d XML_SCHEMAS_LANGUAGE... 59 d c 17 60 d XML_SCHEMAS_NMTOKEN... 61 d c 18 62 d XML_SCHEMAS_NMTOKENS... 63 d c 19 64 d XML_SCHEMAS_NAME... 65 d c 20 66 d XML_SCHEMAS_QNAME... 67 d c 21 68 d XML_SCHEMAS_NCNAME... 69 d c 22 70 d XML_SCHEMAS_ID... 71 d c 23 72 d XML_SCHEMAS_IDREF... 73 d c 24 74 d XML_SCHEMAS_IDREFS... 75 d c 25 76 d XML_SCHEMAS_ENTITY... 77 d c 26 78 d XML_SCHEMAS_ENTITIES... 79 d c 27 80 d XML_SCHEMAS_NOTATION... 81 d c 28 82 d XML_SCHEMAS_ANYURI... 83 d c 29 84 d XML_SCHEMAS_INTEGER... 85 d c 30 86 d XML_SCHEMAS_NPINTEGER... 87 d c 31 88 d XML_SCHEMAS_NINTEGER... 89 d c 32 90 d XML_SCHEMAS_NNINTEGER... 91 d c 33 92 d XML_SCHEMAS_PINTEGER... 93 d c 34 94 d XML_SCHEMAS_INT... 95 d c 35 96 d XML_SCHEMAS_UINT... 97 d c 36 98 d XML_SCHEMAS_LONG... 99 d c 37 100 d XML_SCHEMAS_ULONG... 101 d c 38 102 d XML_SCHEMAS_SHORT... 103 d c 39 104 d XML_SCHEMAS_USHORT... 105 d c 40 106 d XML_SCHEMAS_BYTE... 107 d c 41 108 d XML_SCHEMAS_UBYTE... 109 d c 42 110 d XML_SCHEMAS_HEXBINARY... 111 d c 43 112 d XML_SCHEMAS_BASE64BINARY... 113 d c 44 114 d XML_SCHEMAS_ANYTYPE... 115 d c 45 116 d XML_SCHEMAS_ANYSIMPLETYPE... 117 d c 46 118 119 * XML Schemas defines multiple type of types. 120 121 d xmlSchemaTypeType... 122 d s 10i 0 based(######typedef######) enum 123 d XML_SCHEMA_TYPE_BASIC... A builtin datatype 124 d c 1 125 d XML_SCHEMA_TYPE_ANY... 126 d c 2 127 d XML_SCHEMA_TYPE_FACET... 128 d c 3 129 d XML_SCHEMA_TYPE_SIMPLE... 130 d c 4 131 d XML_SCHEMA_TYPE_COMPLEX... 132 d c 5 133 d XML_SCHEMA_TYPE_SEQUENCE... 134 d c 6 135 d XML_SCHEMA_TYPE_CHOICE... 136 d c 7 137 d XML_SCHEMA_TYPE_ALL... 138 d c 8 139 d XML_SCHEMA_TYPE_SIMPLE_CONTENT... 140 d c 9 141 d XML_SCHEMA_TYPE_COMPLEX_CONTENT... 142 d c 10 143 d XML_SCHEMA_TYPE_UR... 144 d c 11 145 d XML_SCHEMA_TYPE_RESTRICTION... 146 d c 12 147 d XML_SCHEMA_TYPE_EXTENSION... 148 d c 13 149 d XML_SCHEMA_TYPE_ELEMENT... 150 d c 14 151 d XML_SCHEMA_TYPE_ATTRIBUTE... 152 d c 15 153 d XML_SCHEMA_TYPE_ATTRIBUTEGROUP... 154 d c 16 155 d XML_SCHEMA_TYPE_GROUP... 156 d c 17 157 d XML_SCHEMA_TYPE_NOTATION... 158 d c 18 159 d XML_SCHEMA_TYPE_LIST... 160 d c 19 161 d XML_SCHEMA_TYPE_UNION... 162 d c 20 163 d XML_SCHEMA_TYPE_ANY_ATTRIBUTE... 164 d c 21 165 d XML_SCHEMA_TYPE_IDC_UNIQUE... 166 d c 22 167 d XML_SCHEMA_TYPE_IDC_KEY... 168 d c 23 169 d XML_SCHEMA_TYPE_IDC_KEYREF... 170 d c 24 171 d XML_SCHEMA_TYPE_PARTICLE... 172 d c 25 173 d XML_SCHEMA_TYPE_ATTRIBUTE_USE... 174 d c 26 175 d XML_SCHEMA_FACET_MININCLUSIVE... 176 d c 1000 177 d XML_SCHEMA_FACET_MINEXCLUSIVE... 178 d c 1001 179 d XML_SCHEMA_FACET_MAXINCLUSIVE... 180 d c 1002 181 d XML_SCHEMA_FACET_MAXEXCLUSIVE... 182 d c 1003 183 d XML_SCHEMA_FACET_TOTALDIGITS... 184 d c 1004 185 d XML_SCHEMA_FACET_FRACTIONDIGITS... 186 d c 1005 187 d XML_SCHEMA_FACET_PATTERN... 188 d c 1006 189 d XML_SCHEMA_FACET_ENUMERATION... 190 d c 1007 191 d XML_SCHEMA_FACET_WHITESPACE... 192 d c 1008 193 d XML_SCHEMA_FACET_LENGTH... 194 d c 1009 195 d XML_SCHEMA_FACET_MAXLENGTH... 196 d c 1010 197 d XML_SCHEMA_FACET_MINLENGTH... 198 d c 1011 199 d XML_SCHEMA_EXTRA_QNAMEREF... 200 d c 2000 201 d XML_SCHEMA_EXTRA_ATTR_USE_PROHIB... 202 d c 2001 203 204 d xmlSchemaContentType... 205 d s 10i 0 based(######typedef######) enum 206 d XML_SCHEMA_CONTENT_UNKNOWN... 207 d c 0 208 d XML_SCHEMA_CONTENT_EMPTY... 209 d c 1 210 d XML_SCHEMA_CONTENT_ELEMENTS... 211 d c 2 212 d XML_SCHEMA_CONTENT_MIXED... 213 d c 3 214 d XML_SCHEMA_CONTENT_SIMPLE... 215 d c 4 216 d XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS... Obsolete 217 d c 5 218 d XML_SCHEMA_CONTENT_BASIC... 219 d c 6 220 d XML_SCHEMA_CONTENT_ANY... 221 d c 7 222 223 d xmlSchemaValPtr... 224 d s * based(######typedef######) 225 226 d xmlSchemaTypePtr... 227 d s * based(######typedef######) 228 229 d xmlSchemaFacetPtr... 230 d s * based(######typedef######) 231 232 * Annotation 233 234 d xmlSchemaAnnotPtr... 235 d s * based(######typedef######) 236 237 d xmlSchemaAnnot ds based(xmlSchemaAnnotPtr) 238 d align qualified 239 d next like(xmlSchemaAnnotPtr) 240 d content like(xmlNodePtr) The annotation 241 242 * XML_SCHEMAS_ANYATTR_SKIP: 243 * 244 * Skip unknown attribute from validation 245 * Obsolete, not used anymore. 246 247 d XML_SCHEMAS_ANYATTR_SKIP... 248 d c 1 249 250 * XML_SCHEMAS_ANYATTR_LAX: 251 * 252 * Ignore validation non definition on attributes 253 * Obsolete, not used anymore. 254 255 d XML_SCHEMAS_ANYATTR_LAX... 256 d c 2 257 258 * XML_SCHEMAS_ANYATTR_STRICT: 259 * 260 * Apply strict validation rules on attributes 261 * Obsolete, not used anymore. 262 263 d XML_SCHEMAS_ANYATTR_STRICT... 264 d c 3 265 266 * XML_SCHEMAS_ANY_SKIP: 267 * 268 * Skip unknown attribute from validation 269 270 d XML_SCHEMAS_ANY_SKIP... 271 d c 1 272 273 * XML_SCHEMAS_ANY_LAX: 274 * 275 * Used by wildcards. 276 * Validate if type found, don't worry if not found 277 278 d XML_SCHEMAS_ANY_LAX... 279 d c 2 280 281 * XML_SCHEMAS_ANY_STRICT: 282 * 283 * Used by wildcards. 284 * Apply strict validation rules 285 286 d XML_SCHEMAS_ANY_STRICT... 287 d c 3 288 289 * XML_SCHEMAS_ATTR_USE_PROHIBITED: 290 * 291 * Used by wildcards. 292 * The attribute is prohibited. 293 294 d XML_SCHEMAS_ATTR_USE_PROHIBITED... 295 d c 0 296 297 * XML_SCHEMAS_ATTR_USE_REQUIRED: 298 * 299 * The attribute is required. 300 301 d XML_SCHEMAS_ATTR_USE_REQUIRED... 302 d c 1 303 304 * XML_SCHEMAS_ATTR_USE_OPTIONAL: 305 * 306 * The attribute is optional. 307 308 d XML_SCHEMAS_ATTR_USE_OPTIONAL... 309 d c 2 310 311 * XML_SCHEMAS_ATTR_GLOBAL: 312 * 313 * allow elements in no namespace 314 315 d XML_SCHEMAS_ATTR_GLOBAL... 316 d c X'0001' 317 318 * XML_SCHEMAS_ATTR_NSDEFAULT: 319 * 320 * allow elements in no namespace 321 322 d XML_SCHEMAS_ATTR_NSDEFAULT... 323 d c X'0080' 324 325 * XML_SCHEMAS_ATTR_INTERNAL_RESOLVED: 326 * 327 * this is set when the "type" and "ref" references 328 * have been resolved. 329 330 d XML_SCHEMAS_ATTR_INTERNAL_RESOLVED... 331 d c X'0100' 332 333 * XML_SCHEMAS_ATTR_FIXED: 334 * 335 * the attribute has a fixed value 336 337 d XML_SCHEMAS_ATTR_FIXED... 338 d c X'0200' 339 340 * xmlSchemaAttribute: 341 * An attribute definition. 342 343 d xmlSchemaAttributePtr... 344 d s * based(######typedef######) 345 346 d xmlSchemaAttribute... 347 d ds based(xmlSchemaAttributePtr) 348 d align qualified 349 d type like(xmlSchemaTypeType) 350 d next like(xmlSchemaAttributePtr) Next attribute 351 d name * const xmlChar * 352 d id * const xmlChar * 353 d ref * const xmlChar * 354 d refNs * const xmlChar * 355 d typeName * const xmlChar * 356 d typeNs * const xmlChar * 357 d annot like(xmlSchemaAnnotPtr) 358 * 359 d base like(xmlSchemaTypePtr) Deprecated 360 d occurs 10i 0 Deprecated 361 d defValue * const xmlChar * 362 d subtypes like(xmlSchemaTypePtr) The type definition 363 d node like(xmlNodePtr) 364 d targetNamespace... const xmlChar * 365 d * 366 d flags 10i 0 367 d refPrefix * const xmlChar * 368 d defVal like(xmlSchemaValPtr) Compiled constraint 369 d refDecl like(xmlSchemaAttributePtr) Deprecated 370 371 * xmlSchemaAttributeLink: 372 * Used to build a list of attribute uses on complexType definitions. 373 * WARNING: Deprecated; not used. 374 375 d xmlSchemaAttributeLinkPtr... 376 d s * based(######typedef######) 377 378 d xmlSchemaAttributeLink... 379 d ds based(xmlSchemaAttributeLinkPtr) 380 d align qualified 381 d next like(xmlSchemaAttributeLinkPtr) The next link 382 d attr like(xmlSchemaAttributePtr) The linked attribute 383 384 * XML_SCHEMAS_WILDCARD_COMPLETE: 385 * 386 * If the wildcard is complete. 387 388 d XML_SCHEMAS_WILDCARD_COMPLETE... 389 d c X'0001' 390 391 * xmlSchemaCharValueLink: 392 * Used to build a list of namespaces on wildcards. 393 394 d xmlSchemaWildcardNsPtr... 395 d s * based(######typedef######) 396 397 d xmlSchemaWildcardNs... 398 d ds based(xmlSchemaWildcardNsPtr) 399 d align qualified 400 d next like(xmlSchemaWildcardNsPtr) The next link 401 d value * const xmlChar * 402 403 * xmlSchemaWildcard. 404 * A wildcard. 405 406 d xmlSchemaWildcardPtr... 407 d s * based(######typedef######) 408 409 d xmlSchemaWildcard... 410 d ds based(xmlSchemaWildcardPtr) 411 d align qualified 412 d type like(xmlSchemaTypeType) Kind of type 413 d id * const xmlChar * 414 d annot like(xmlSchemaAnnotPtr) 415 d node like(xmlNodePtr) 416 d minOccurs 10i 0 Deprecated; not used 417 d maxOccurs 10i 0 Deprecated; not used 418 d processContents... 419 d 10i 0 420 d any 10i 0 Ns constraint ##any? 421 d nsSet like(xmlSchemaWildcardNsPtr) Allowed namspce list 422 d negNsSet like(xmlSchemaWildcardNsPtr) Negated namespace 423 d flags 10i 0 Deprecated; not used 424 425 * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED: 426 * 427 * The attribute wildcard has been already builded. 428 429 d XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED... 430 d c X'0001' 431 432 * XML_SCHEMAS_ATTRGROUP_GLOBAL: 433 * 434 * The attribute wildcard has been already builded. 435 436 d XML_SCHEMAS_ATTRGROUP_GLOBAL... 437 d c X'0002' 438 439 * XML_SCHEMAS_ATTRGROUP_MARKED: 440 * 441 * Marks the attr group as marked; used for circular checks. 442 443 d XML_SCHEMAS_ATTRGROUP_MARKED... 444 d c X'0004' 445 446 * XML_SCHEMAS_ATTRGROUP_REDEFINED: 447 * 448 * The attr group was redefined. 449 450 d XML_SCHEMAS_ATTRGROUP_REDEFINED... 451 d c X'0008' 452 453 * XML_SCHEMAS_ATTRGROUP_HAS_REFS: 454 * 455 * Whether this attr. group contains attr. group references. 456 457 d XML_SCHEMAS_ATTRGROUP_HAS_REFS... 458 d c X'0010' 459 460 * An attribute group definition. 461 * 462 * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures 463 * must be kept similar 464 465 d xmlSchemaAttributeGroupPtr... 466 d s * based(######typedef######) 467 468 d xmlSchemaAttributeGroup... 469 d ds based(xmlSchemaAttributeGroupPtr) 470 d align qualified 471 d type like(xmlSchemaTypeType) Kind of type 472 d next like(xmlSchemaAttributePtr) Next attribute 473 d name * const xmlChar * 474 d id * const xmlChar * 475 d ref * const xmlChar * 476 d refNs * const xmlChar * 477 d annot like(xmlSchemaAnnotPtr) 478 * 479 d attributes like(xmlSchemaAttributePtr) Deprecated; not used 480 d node like(xmlNodePtr) 481 d flags 10i 0 482 d attributeWildcard... 483 d like(xmlSchemaWildcardPtr) 484 d refPrefix * const xmlChar * 485 d refItem like(xmlSchemaAttributeGroupPtr) Deprecated; not used 486 d targetNamespace... 487 d * const xmlChar * 488 d attrUses * void * 489 490 * xmlSchemaTypeLink: 491 * Used to build a list of types (e.g. member types of 492 * simpleType with variety "union"). 493 494 d xmlSchemaTypeLinkPtr... 495 d s * based(######typedef######) 496 497 d xmlSchemaTypeLink... 498 d ds based(xmlSchemaTypeLinkPtr) 499 d align qualified 500 d next like(xmlSchemaTypeLinkPtr) Next type link 501 d type like(xmlSchemaTypePtr) Linked type 502 503 * xmlSchemaFacetLink: 504 * Used to build a list of facets. 505 506 d xmlSchemaFacetLinkPtr... 507 d s * based(######typedef######) 508 509 d xmlSchemaFacetLink... 510 d ds based(xmlSchemaFacetLinkPtr) 511 d align qualified 512 d next like(xmlSchemaFacetLinkPtr) Next facet link 513 d facet like(xmlSchemaFacetPtr) Linked facet 514 515 * XML_SCHEMAS_TYPE_MIXED: 516 * 517 * the element content type is mixed 518 519 d XML_SCHEMAS_TYPE_MIXED... 520 d c X'00000001' 521 522 * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION: 523 * 524 * the simple or complex type has a derivation method of "extension". 525 526 d XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION... 527 d c X'00000002' 528 529 * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION: 530 * 531 * the simple or complex type has a derivation method of "restriction". 532 533 d XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION... 534 d c X'00000004' 535 536 * XML_SCHEMAS_TYPE_GLOBAL: 537 * 538 * the type is global 539 540 d XML_SCHEMAS_TYPE_GLOBAL... 541 d c X'00000008' 542 543 * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD: 544 * 545 * the complexType owns an attribute wildcard, i.e. 546 * it can be freed by the complexType 547 548 d XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD... Obsolete. 549 d c X'00000010' 550 551 * XML_SCHEMAS_TYPE_VARIETY_ABSENT: 552 * 553 * the simpleType has a variety of "absent". 554 * TODO: Actually not necessary :-/, since if 555 * none of the variety flags occur then it's 556 * automatically absent. 557 558 d XML_SCHEMAS_TYPE_VARIETY_ABSENT... 559 d c X'00000020' 560 561 * XML_SCHEMAS_TYPE_VARIETY_LIST: 562 * 563 * the simpleType has a variety of "list". 564 565 d XML_SCHEMAS_TYPE_VARIETY_LIST... 566 d c X'00000040' 567 568 * XML_SCHEMAS_TYPE_VARIETY_UNION: 569 * 570 * the simpleType has a variety of "union". 571 572 d XML_SCHEMAS_TYPE_VARIETY_UNION... 573 d c X'00000080' 574 575 * XML_SCHEMAS_TYPE_VARIETY_ATOMIC: 576 * 577 * the simpleType has a variety of "union". 578 579 d XML_SCHEMAS_TYPE_VARIETY_ATOMIC... 580 d c X'00000100' 581 582 * XML_SCHEMAS_TYPE_FINAL_EXTENSION: 583 * 584 * the complexType has a final of "extension". 585 586 d XML_SCHEMAS_TYPE_FINAL_EXTENSION... 587 d c X'00000200' 588 589 * XML_SCHEMAS_TYPE_FINAL_RESTRICTION: 590 * 591 * the simpleType/complexType has a final of "restriction". 592 593 d XML_SCHEMAS_TYPE_FINAL_RESTRICTION... 594 d c X'00000400' 595 596 * XML_SCHEMAS_TYPE_FINAL_LIST: 597 * 598 * the simpleType has a final of "list". 599 600 d XML_SCHEMAS_TYPE_FINAL_LIST... 601 d c X'00000800' 602 603 * XML_SCHEMAS_TYPE_FINAL_UNION: 604 * 605 * the simpleType has a final of "union". 606 607 d XML_SCHEMAS_TYPE_FINAL_UNION... 608 d c X'00001000' 609 610 * XML_SCHEMAS_TYPE_FINAL_DEFAULT: 611 * 612 * the simpleType has a final of "default". 613 614 d XML_SCHEMAS_TYPE_FINAL_DEFAULT... 615 d c X'00002000' 616 617 * XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE: 618 * 619 * Marks the item as a builtin primitive. 620 621 d XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE... 622 d c X'00004000' 623 624 * XML_SCHEMAS_TYPE_MARKED: 625 * 626 * Marks the item as marked; used for circular checks. 627 628 d XML_SCHEMAS_TYPE_MARKED... 629 d c X'00010000' 630 631 * XML_SCHEMAS_TYPE_BLOCK_DEFAULT: 632 * 633 * the complexType did not specify 'block' so use the default of the 634 * <schema> item. 635 636 d XML_SCHEMAS_TYPE_BLOCK_DEFAULT... 637 d c X'00020000' 638 639 * XML_SCHEMAS_TYPE_BLOCK_EXTENSION: 640 * 641 * the complexType has a 'block' of "extension". 642 643 d XML_SCHEMAS_TYPE_BLOCK_EXTENSION... 644 d c X'00040000' 645 646 * XML_SCHEMAS_TYPE_BLOCK_RESTRICTION: 647 * 648 * the complexType has a 'block' of "restriction". 649 650 d XML_SCHEMAS_TYPE_BLOCK_RESTRICTION... 651 d c X'00080000' 652 653 * XML_SCHEMAS_TYPE_ABSTRACT: 654 * 655 * the simple/complexType is abstract. 656 657 d XML_SCHEMAS_TYPE_ABSTRACT... 658 d c X'00100000' 659 660 * XML_SCHEMAS_TYPE_FACETSNEEDVALUE: 661 * 662 * indicates if the facets need a computed value 663 664 d XML_SCHEMAS_TYPE_FACETSNEEDVALUE... 665 d c X'00200000' 666 667 * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED: 668 * 669 * indicates that the type was typefixed 670 671 d XML_SCHEMAS_TYPE_INTERNAL_RESOLVED... 672 d c X'00400000' 673 674 * XML_SCHEMAS_TYPE_INTERNAL_INVALID: 675 * 676 * indicates that the type is invalid 677 678 d XML_SCHEMAS_TYPE_INTERNAL_INVALID... 679 d c X'00800000' 680 681 * XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE: 682 * 683 * a whitespace-facet value of "preserve" 684 685 d XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE... 686 d c X'01000000' 687 688 * XML_SCHEMAS_TYPE_WHITESPACE_REPLACE: 689 * 690 * a whitespace-facet value of "replace" 691 692 d XML_SCHEMAS_TYPE_WHITESPACE_REPLACE... 693 d c X'02000000' 694 695 * XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE: 696 * 697 * a whitespace-facet value of "collapse" 698 699 d XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE... 700 d c X'04000000' 701 702 * XML_SCHEMAS_TYPE_HAS_FACETS: 703 * 704 * has facets 705 706 d XML_SCHEMAS_TYPE_HAS_FACETS... 707 d c X'08000000' 708 709 * XML_SCHEMAS_TYPE_NORMVALUENEEDED: 710 * 711 * indicates if the facets (pattern) need a normalized value 712 713 d XML_SCHEMAS_TYPE_NORMVALUENEEDED... 714 d c X'10000000' 715 716 * XML_SCHEMAS_TYPE_FIXUP_1: 717 * 718 * First stage of fixup was done. 719 720 d XML_SCHEMAS_TYPE_FIXUP_1... 721 d c X'20000000' 722 723 * XML_SCHEMAS_TYPE_REDEFINED: 724 * 725 * The type was redefined. 726 727 d XML_SCHEMAS_TYPE_REDEFINED... 728 d c X'40000000' 729 730 /if defined(DISABLED) 731 * XML_SCHEMAS_TYPE_REDEFINING: 732 * 733 * The type redefines an other type. 734 735 d XML_SCHEMAS_TYPE_REDEFINING... 736 d c X'80000000' 737 /endif 738 739 * _xmlSchemaType: 740 * 741 * Schemas type definition. 742 743 d xmlSchemaType... 744 d ds based(xmlSchemaTypePtr) 745 d align qualified 746 d type like(xmlSchemaTypeType) Kind of type 747 d next like(xmlSchemaTypePtr) Next type 748 d name * const xmlChar * 749 d id * const xmlChar * 750 d ref * const xmlChar * 751 d refNs * const xmlChar * 752 d annot like(xmlSchemaAnnotPtr) 753 d subtypes like(xmlSchemaTypePtr) 754 d attributes like(xmlSchemaAttributePtr) Deprecated; not used 755 d node like(xmlNodePtr) 756 d minOccurs 10i 0 Deprecated; not used 757 d maxOccurs 10i 0 Deprecated; not used 758 * 759 d flags 10i 0 760 d contentType like(xmlSchemaContentType) 761 d base * const xmlChar * 762 d baseNs * const xmlChar * 763 d baseType like(xmlSchemaTypePtr) Base type component 764 d facets like(xmlSchemaFacetPtr) Local facets 765 d redef like(xmlSchemaTypePtr) Deprecated; not used 766 d recurse 10i 0 Obsolete 767 d attributeUses like(xmlSchemaAttributeLinkPtr) Deprecated; not used 768 d attributeWildcard... 769 d like(xmlSchemaWildcardPtr) 770 d builtInType 10i 0 Built-in types type 771 d memberTypes like(xmlSchemaTypeLinkPtr) Union member-types 772 d facetSet like(xmlSchemaFacetLinkPtr) All facets 773 d refPrefix * const xmlChar * 774 d contentTypeDef... 775 d like(xmlSchemaTypePtr) 776 d contModel like(xmlRegexpPtr) Content model autom. 777 d targetNamespace... 778 d * const xmlChar * 779 d attrUses * void * 780 781 * xmlSchemaElement: 782 * An element definition. 783 * 784 * xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of 785 * structures must be kept similar 786 787 * XML_SCHEMAS_ELEM_NILLABLE: 788 * 789 * the element is nillable 790 791 d XML_SCHEMAS_ELEM_NILLABLE... 792 d c X'00000001' 793 794 * XML_SCHEMAS_ELEM_GLOBAL: 795 * 796 * the element is global 797 798 d XML_SCHEMAS_ELEM_GLOBAL... 799 d c X'00000002' 800 801 * XML_SCHEMAS_ELEM_DEFAULT: 802 * 803 * the element has a default value 804 805 d XML_SCHEMAS_ELEM_DEFAULT... 806 d c X'00000004' 807 808 * XML_SCHEMAS_ELEM_FIXED: 809 * 810 * the element has a fixed value 811 812 d XML_SCHEMAS_ELEM_FIXED... 813 d c X'00000008' 814 815 * XML_SCHEMAS_ELEM_ABSTRACT: 816 * 817 * the element is abstract 818 819 d XML_SCHEMAS_ELEM_ABSTRACT... 820 d c X'00000010' 821 822 * XML_SCHEMAS_ELEM_TOPLEVEL: 823 * 824 * the element is top level 825 * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead 826 827 d XML_SCHEMAS_ELEM_TOPLEVEL... 828 d c X'00000020' 829 830 * XML_SCHEMAS_ELEM_REF: 831 * 832 * the element is a reference to a type 833 834 d XML_SCHEMAS_ELEM_REF... 835 d c X'00000040' 836 837 * XML_SCHEMAS_ELEM_NSDEFAULT: 838 * 839 * allow elements in no namespace 840 * Obsolete, not used anymore. 841 842 d XML_SCHEMAS_ELEM_NSDEFAULT... 843 d c X'00000080' 844 845 * XML_SCHEMAS_ELEM_INTERNAL_RESOLVED: 846 * 847 * this is set when "type", "ref", "substitutionGroup" 848 * references have been resolved. 849 850 d XML_SCHEMAS_ELEM_INTERNAL_RESOLVED... 851 d c X'00000100' 852 853 * XML_SCHEMAS_ELEM_CIRCULAR: 854 * 855 * a helper flag for the search of circular references. 856 857 d XML_SCHEMAS_ELEM_CIRCULAR... 858 d c X'00000200' 859 860 * XML_SCHEMAS_ELEM_BLOCK_ABSENT: 861 * 862 * the "block" attribute is absent 863 864 d XML_SCHEMAS_ELEM_BLOCK_ABSENT... 865 d c X'00000400' 866 867 * XML_SCHEMAS_ELEM_BLOCK_EXTENSION: 868 * 869 * disallowed substitutions are absent 870 871 d XML_SCHEMAS_ELEM_BLOCK_EXTENSION... 872 d c X'00000800' 873 874 * XML_SCHEMAS_ELEM_BLOCK_RESTRICTION: 875 * 876 * disallowed substitutions: "restriction" 877 878 d XML_SCHEMAS_ELEM_BLOCK_RESTRICTION... 879 d c X'00001000' 880 881 * XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION: 882 * 883 * disallowed substitutions: "substituion" 884 885 d XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION... 886 d c X'00002000' 887 888 * XML_SCHEMAS_ELEM_FINAL_ABSENT: 889 * 890 * substitution group exclusions are absent 891 892 d XML_SCHEMAS_ELEM_FINAL_ABSENT... 893 d c X'00004000' 894 895 * XML_SCHEMAS_ELEM_FINAL_EXTENSION: 896 * 897 * substitution group exclusions: "extension" 898 899 d XML_SCHEMAS_ELEM_FINAL_EXTENSION... 900 d c X'00008000' 901 902 * XML_SCHEMAS_ELEM_FINAL_RESTRICTION: 903 * 904 * substitution group exclusions: "restriction" 905 906 d XML_SCHEMAS_ELEM_FINAL_RESTRICTION... 907 d c X'00010000' 908 909 * XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD: 910 * 911 * the declaration is a substitution group head 912 913 d XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD... 914 d c X'00020000' 915 916 * XML_SCHEMAS_ELEM_INTERNAL_CHECKED: 917 * 918 * this is set when the elem decl has been checked against 919 * all constraints 920 921 d XML_SCHEMAS_ELEM_INTERNAL_CHECKED... 922 d c X'00040000' 923 924 d xmlSchemaElementPtr... 925 d s * based(######typedef######) 926 927 d xmlSchemaElement... 928 d ds based(xmlSchemaElementPtr) 929 d align qualified 930 d type like(xmlSchemaTypeType) Kind of type 931 d next like(xmlSchemaElementPtr) Not used ? 932 d name * const xmlChar * 933 d id * const xmlChar * 934 d ref * const xmlChar * 935 d refNs * const xmlChar * 936 d annot like(xmlSchemaAnnotPtr) 937 d subtypes like(xmlSchemaTypePtr) 938 d attributes like(xmlSchemaAttributePtr) Deprecated; not used 939 d node like(xmlNodePtr) 940 d minOccurs 10i 0 Deprecated; not used 941 d maxOccurs 10i 0 Deprecated; not used 942 * 943 d flags 10i 0 944 d targetNamespace... 945 d * const xmlChar * 946 d namedType * const xmlChar * 947 d namedTypeNs * const xmlChar * 948 d substGroup * const xmlChar * 949 d substGroupNs * const xmlChar * 950 d scope * const xmlChar * 951 d value * const xmlChar * 952 d refDecl like(xmlSchemaElementPtr) 953 d contModel like(xmlRegexpPtr) 954 d contentType like(xmlSchemaContentType) 955 d refPrefix * const xmlChar * 956 d devVal like(xmlSchemaValPtr) Comp val constraint 957 d idcs * void * 958 959 * XML_SCHEMAS_FACET_UNKNOWN: 960 * 961 * unknown facet handling 962 963 d XML_SCHEMAS_FACET_UNKNOWN... 964 d c 0 965 966 * XML_SCHEMAS_FACET_PRESERVE: 967 * 968 * preserve the type of the facet 969 970 d XML_SCHEMAS_FACET_PRESERVE... 971 d c 1 972 973 * XML_SCHEMAS_FACET_REPLACE: 974 * 975 * replace the type of the facet 976 977 d XML_SCHEMAS_FACET_REPLACE... 978 d c 2 979 980 * XML_SCHEMAS_FACET_COLLAPSE: 981 * 982 * collapse the types of the facet 983 984 d XML_SCHEMAS_FACET_COLLAPSE... 985 d c 3 986 987 * A facet definition. 988 989 d xmlSchemaFacet... 990 d ds based(xmlSchemaFacetPtr) 991 d align qualified 992 d type like(xmlSchemaTypeType) Kind of type 993 d next like(xmlSchemaFacetPtr) Next type in seq. 994 d value * const xmlChar * 995 d id * const xmlChar * 996 d annot like(xmlSchemaAnnotPtr) 997 d node like(xmlNodePtr) 998 d fixed 10i 0 _FACET_PRESERVE, etc 999 d whitespace 10i 0 1000 d val like(xmlSchemaValPtr) Compiled value 1001 d regexp like(xmlRegexpPtr) Regexp for patterns 1002 1003 * A notation definition. 1004 1005 d xmlSchemaNotationPtr... 1006 d s * based(######typedef######) 1007 1008 d xmlSchemaNotation... 1009 d ds based(xmlSchemaNotationPtr) 1010 d align qualified 1011 d type like(xmlSchemaTypeType) Kind of type 1012 d name * const xmlChar * 1013 d annot like(xmlSchemaAnnotPtr) 1014 d identifier * const xmlChar * 1015 d targetNamespace... 1016 d * const xmlChar * 1017 1018 * TODO: Actually all those flags used for the schema should sit 1019 * on the schema parser context, since they are used only 1020 * during parsing an XML schema document, and not available 1021 * on the component level as per spec. 1022 1023 * XML_SCHEMAS_QUALIF_ELEM: 1024 * 1025 * Reflects elementFormDefault == qualified in 1026 * an XML schema document. 1027 1028 d XML_SCHEMAS_QUALIF_ELEM... 1029 d c X'00000001' 1030 1031 * XML_SCHEMAS_QUALIF_ATTR: 1032 * 1033 * Reflects attributeFormDefault == qualified in 1034 * an XML schema document. 1035 1036 d XML_SCHEMAS_QUALIF_ATTR... 1037 d c X'00000002' 1038 1039 * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION: 1040 * 1041 * the schema has "extension" in the set of finalDefault. 1042 1043 d XML_SCHEMAS_FINAL_DEFAULT_EXTENSION... 1044 d c X'00000004' 1045 1046 * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION: 1047 * 1048 * the schema has "restriction" in the set of finalDefault. 1049 1050 d XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION... 1051 d c X'00000008' 1052 1053 * XML_SCHEMAS_FINAL_DEFAULT_LIST: 1054 * 1055 * the cshema has "list" in the set of finalDefault. 1056 1057 d XML_SCHEMAS_FINAL_DEFAULT_LIST... 1058 d c X'00000010' 1059 1060 * XML_SCHEMAS_FINAL_DEFAULT_UNION: 1061 * 1062 * the schema has "union" in the set of finalDefault. 1063 1064 d XML_SCHEMAS_FINAL_DEFAULT_UNION... 1065 d c X'00000020' 1066 1067 * XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION: 1068 * 1069 * the schema has "extension" in the set of blockDefault. 1070 1071 d XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION... 1072 d c X'00000040' 1073 1074 * XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION: 1075 * 1076 * the schema has "restriction" in the set of blockDefault. 1077 1078 d XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION... 1079 d c X'00000080' 1080 1081 * XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION: 1082 * 1083 * the schema has "substitution" in the set of blockDefault. 1084 1085 d XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION... 1086 d c X'00000100' 1087 1088 * XML_SCHEMAS_INCLUDING_CONVERT_NS: 1089 * 1090 * the schema is currently including an other schema with 1091 * no target namespace. 1092 1093 d XML_SCHEMAS_INCLUDING_CONVERT_NS... 1094 d c X'00000200' 1095 1096 * _xmlSchema: 1097 * 1098 * A Schemas definition 1099 1100 d xmlSchema ds based(xmlSchemaPtr) 1101 d align qualified 1102 d name * const xmlChar * 1103 d targetNamespace... 1104 d * const xmlChar * 1105 d version * const xmlChar * 1106 d id * const xmlChar * 1107 d doc like(xmlDocPtr) 1108 d annot like(xmlSchemaAnnotPtr) 1109 d flags 10i 0 1110 * 1111 d typeDecl like(xmlHashTablePtr) 1112 d attrDecl like(xmlHashTablePtr) 1113 d attrGrpDecl like(xmlHashTablePtr) 1114 d elemDecl like(xmlHashTablePtr) 1115 d notaDecl like(xmlHashTablePtr) 1116 d schemasImports... 1117 d like(xmlHashTablePtr) 1118 * 1119 d #private * void * 1120 d groupDecl like(xmlHashTablePtr) 1121 d dict like(xmlDictPtr) 1122 d includes * void * 1123 d preserve 10i 0 Do not free doc ? 1124 d counter 10i 0 For name uniqueness 1125 d idcDef like(xmlHashTablePtr) All id-constr. defs 1126 d volatiles * void * 1127 1128 d xmlSchemaFreeType... 1129 d pr extproc('xmlSchemaFreeType') 1130 d type value like(xmlSchemaTypePtr) 1131 1132 d xmlSchemaFreeWildcard... 1133 d pr extproc('xmlSchemaFreeWildcard') 1134 d wildcard value like(xmlSchemaWildcardPtr) 1135 1136 /endif LIBXML_SCHEMAS_ENBLD 1137 /endif SCHEMA_INTERNALS_H__ 1138