* Summary: internal interfaces for XML Schemas
* Description: internal interfaces for the XML Schemas handling
*              and schema validity checking
*              The Schemas development is a Work In Progress.
*              Some of those interfaces are not guaranteed to be API or
*                ABI stable !
*
* Copy: See Copyright for the status of this software.
*
* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.

/if not defined(XML_SCHEMA_INTERNALS_H__)
/define XML_SCHEMA_INTERNALS_H__

/include "libxmlrpg/xmlversion"

/if defined(LIBXML_SCHEMAS_ENABLED)

/include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlregexp"
/include "libxmlrpg/hash"
/include "libxmlrpg/dict"

d xmlSchemaValType… d s based(######typedef######) d like(xmlCenum) d XML_SCHEMAS_UNKNOWN… d c 0 d XML_SCHEMAS_STRING… d c 1 d XML_SCHEMAS_NORMSTRING… d c 2 d XML_SCHEMAS_DECIMAL… d c 3 d XML_SCHEMAS_TIME… d c 4 d XML_SCHEMAS_GDAY… d c 5 d XML_SCHEMAS_GMONTH… d c 6 d XML_SCHEMAS_GMONTHDAY… d c 7 d XML_SCHEMAS_GYEAR… d c 8 d XML_SCHEMAS_GYEARMONTH… d c 9 d XML_SCHEMAS_DATE… d c 10 d XML_SCHEMAS_DATETIME… d c 11 d XML_SCHEMAS_DURATION… d c 12 d XML_SCHEMAS_FLOAT… d c 13 d XML_SCHEMAS_DOUBLE… d c 14 d XML_SCHEMAS_BOOLEAN… d c 15 d XML_SCHEMAS_TOKEN… d c 16 d XML_SCHEMAS_LANGUAGE… d c 17 d XML_SCHEMAS_NMTOKEN… d c 18 d XML_SCHEMAS_NMTOKENS… d c 19 d XML_SCHEMAS_NAME… d c 20 d XML_SCHEMAS_QNAME… d c 21 d XML_SCHEMAS_NCNAME… d c 22 d XML_SCHEMAS_ID… d c 23 d XML_SCHEMAS_IDREF… d c 24 d XML_SCHEMAS_IDREFS… d c 25 d XML_SCHEMAS_ENTITY… d c 26 d XML_SCHEMAS_ENTITIES… d c 27 d XML_SCHEMAS_NOTATION… d c 28 d XML_SCHEMAS_ANYURI… d c 29 d XML_SCHEMAS_INTEGER… d c 30 d XML_SCHEMAS_NPINTEGER… d c 31 d XML_SCHEMAS_NINTEGER… d c 32 d XML_SCHEMAS_NNINTEGER… d c 33 d XML_SCHEMAS_PINTEGER… d c 34 d XML_SCHEMAS_INT… d c 35 d XML_SCHEMAS_UINT… d c 36 d XML_SCHEMAS_LONG… d c 37 d XML_SCHEMAS_ULONG… d c 38 d XML_SCHEMAS_SHORT… d c 39 d XML_SCHEMAS_USHORT… d c 40 d XML_SCHEMAS_BYTE… d c 41 d XML_SCHEMAS_UBYTE… d c 42 d XML_SCHEMAS_HEXBINARY… d c 43 d XML_SCHEMAS_BASE64BINARY… d c 44 d XML_SCHEMAS_ANYTYPE… d c 45 d XML_SCHEMAS_ANYSIMPLETYPE… d c 46

* XML Schemas defines multiple type of types.

d xmlSchemaTypeType… d s based(######typedef######) d like(xmlCenum) d XML_SCHEMA_TYPE_BASIC… A builtin datatype d c 1 d XML_SCHEMA_TYPE_ANY… d c 2 d XML_SCHEMA_TYPE_FACET… d c 3 d XML_SCHEMA_TYPE_SIMPLE… d c 4 d XML_SCHEMA_TYPE_COMPLEX… d c 5 d XML_SCHEMA_TYPE_SEQUENCE… d c 6 d XML_SCHEMA_TYPE_CHOICE… d c 7 d XML_SCHEMA_TYPE_ALL… d c 8 d XML_SCHEMA_TYPE_SIMPLE_CONTENT… d c 9 d XML_SCHEMA_TYPE_COMPLEX_CONTENT… d c 10 d XML_SCHEMA_TYPE_UR… d c 11 d XML_SCHEMA_TYPE_RESTRICTION… d c 12 d XML_SCHEMA_TYPE_EXTENSION… d c 13 d XML_SCHEMA_TYPE_ELEMENT… d c 14 d XML_SCHEMA_TYPE_ATTRIBUTE… d c 15 d XML_SCHEMA_TYPE_ATTRIBUTEGROUP… d c 16 d XML_SCHEMA_TYPE_GROUP… d c 17 d XML_SCHEMA_TYPE_NOTATION… d c 18 d XML_SCHEMA_TYPE_LIST… d c 19 d XML_SCHEMA_TYPE_UNION… d c 20 d XML_SCHEMA_TYPE_ANY_ATTRIBUTE… d c 21 d XML_SCHEMA_TYPE_IDC_UNIQUE… d c 22 d XML_SCHEMA_TYPE_IDC_KEY… d c 23 d XML_SCHEMA_TYPE_IDC_KEYREF… d c 24 d XML_SCHEMA_TYPE_PARTICLE… d c 25 d XML_SCHEMA_TYPE_ATTRIBUTE_USE… d c 26 d XML_SCHEMA_FACET_MININCLUSIVE… d c 1000 d XML_SCHEMA_FACET_MINEXCLUSIVE… d c 1001 d XML_SCHEMA_FACET_MAXINCLUSIVE… d c 1002 d XML_SCHEMA_FACET_MAXEXCLUSIVE… d c 1003 d XML_SCHEMA_FACET_TOTALDIGITS… d c 1004 d XML_SCHEMA_FACET_FRACTIONDIGITS… d c 1005 d XML_SCHEMA_FACET_PATTERN… d c 1006 d XML_SCHEMA_FACET_ENUMERATION… d c 1007 d XML_SCHEMA_FACET_WHITESPACE… d c 1008 d XML_SCHEMA_FACET_LENGTH… d c 1009 d XML_SCHEMA_FACET_MAXLENGTH… d c 1010 d XML_SCHEMA_FACET_MINLENGTH… d c 1011 d XML_SCHEMA_EXTRA_QNAMEREF… d c 2000 d XML_SCHEMA_EXTRA_ATTR_USE_PROHIB… d c 2001

d xmlSchemaContentType… d s based(######typedef######) d like(xmlCenum) d XML_SCHEMA_CONTENT_UNKNOWN… d c 0 d XML_SCHEMA_CONTENT_EMPTY… d c 1 d XML_SCHEMA_CONTENT_ELEMENTS… d c 2 d XML_SCHEMA_CONTENT_MIXED… d c 3 d XML_SCHEMA_CONTENT_SIMPLE… d c 4 d XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS… Obsolete d c 5 d XML_SCHEMA_CONTENT_BASIC… d c 6 d XML_SCHEMA_CONTENT_ANY… d c 7

d xmlSchemaValPtr… d s * based(######typedef######)

d xmlSchemaTypePtr… d s * based(######typedef######)

d xmlSchemaFacetPtr… d s * based(######typedef######)

* Annotation

d xmlSchemaAnnotPtr… d s * based(######typedef######)

d xmlSchemaAnnot ds based(xmlSchemaAnnotPtr) d align qualified d next like(xmlSchemaAnnotPtr) d content like(xmlNodePtr) The annotation

* XML_SCHEMAS_ANYATTR_SKIP:
*
* Skip unknown attribute from validation
* Obsolete, not used anymore.

d XML_SCHEMAS_ANYATTR_SKIP… d c 1

* XML_SCHEMAS_ANYATTR_LAX:
*
* Ignore validation non definition on attributes
* Obsolete, not used anymore.

d XML_SCHEMAS_ANYATTR_LAX… d c 2

* XML_SCHEMAS_ANYATTR_STRICT:
*
* Apply strict validation rules on attributes
* Obsolete, not used anymore.

d XML_SCHEMAS_ANYATTR_STRICT… d c 3

* XML_SCHEMAS_ANY_SKIP:
*
* Skip unknown attribute from validation

d XML_SCHEMAS_ANY_SKIP… d c 1

* XML_SCHEMAS_ANY_LAX:
*
* Used by wildcards.
* Validate if type found, don't worry if not found

d XML_SCHEMAS_ANY_LAX… d c 2

* XML_SCHEMAS_ANY_STRICT:
*
* Used by wildcards.
* Apply strict validation rules

d XML_SCHEMAS_ANY_STRICT… d c 3

* XML_SCHEMAS_ATTR_USE_PROHIBITED:
*
* Used by wildcards.
* The attribute is prohibited.

d XML_SCHEMAS_ATTR_USE_PROHIBITED… d c 0

* XML_SCHEMAS_ATTR_USE_REQUIRED:
*
* The attribute is required.

d XML_SCHEMAS_ATTR_USE_REQUIRED… d c 1

* XML_SCHEMAS_ATTR_USE_OPTIONAL:
*
* The attribute is optional.

d XML_SCHEMAS_ATTR_USE_OPTIONAL… d c 2

* XML_SCHEMAS_ATTR_GLOBAL:
*
* allow elements in no namespace

d XML_SCHEMAS_ATTR_GLOBAL… d c X'0001'

* XML_SCHEMAS_ATTR_NSDEFAULT:
*
* allow elements in no namespace

d XML_SCHEMAS_ATTR_NSDEFAULT… d c X'0080'

* XML_SCHEMAS_ATTR_INTERNAL_RESOLVED:
*
* this is set when the "type" and "ref" references
* have been resolved.

d XML_SCHEMAS_ATTR_INTERNAL_RESOLVED… d c X'0100'

* XML_SCHEMAS_ATTR_FIXED:
*
* the attribute has a fixed value

d XML_SCHEMAS_ATTR_FIXED… d c X'0200'

* xmlSchemaAttribute:
* An attribute definition.

d xmlSchemaAttributePtr… d s * based(######typedef######)

d xmlSchemaAttribute… d ds based(xmlSchemaAttributePtr) d align qualified d type like(xmlSchemaTypeType) d next like(xmlSchemaAttributePtr) Next attribute d name * const xmlChar * d id * const xmlChar * d ref * const xmlChar * d refNs * const xmlChar * d typeName * const xmlChar * d typeNs * const xmlChar * d annot like(xmlSchemaAnnotPtr)

*

d base like(xmlSchemaTypePtr) Deprecated d occurs like(xmlCint) Deprecated d defValue * const xmlChar * d subtypes like(xmlSchemaTypePtr) The type definition d node like(xmlNodePtr) d targetNamespace… const xmlChar * d * d flags like(xmlCint) d refPrefix * const xmlChar * d defVal like(xmlSchemaValPtr) Compiled constraint d refDecl like(xmlSchemaAttributePtr) Deprecated

* xmlSchemaAttributeLink:
* Used to build a list of attribute uses on complexType definitions.
* WARNING: Deprecated; not used.

d xmlSchemaAttributeLinkPtr… d s * based(######typedef######)

d xmlSchemaAttributeLink… d ds based(xmlSchemaAttributeLinkPtr) d align qualified d next like(xmlSchemaAttributeLinkPtr) The next link d attr like(xmlSchemaAttributePtr) The linked attribute

* XML_SCHEMAS_WILDCARD_COMPLETE:
*
* If the wildcard is complete.

d XML_SCHEMAS_WILDCARD_COMPLETE… d c X'0001'

* xmlSchemaCharValueLink:
* Used to build a list of namespaces on wildcards.

d xmlSchemaWildcardNsPtr… d s * based(######typedef######)

d xmlSchemaWildcardNs… d ds based(xmlSchemaWildcardNsPtr) d align qualified d next like(xmlSchemaWildcardNsPtr) The next link d value * const xmlChar *

* xmlSchemaWildcard.
* A wildcard.

d xmlSchemaWildcardPtr… d s * based(######typedef######)

d xmlSchemaWildcard… d ds based(xmlSchemaWildcardPtr) d align qualified d type like(xmlSchemaTypeType) Kind of type d id * const xmlChar * d annot like(xmlSchemaAnnotPtr) d node like(xmlNodePtr) d minOccurs like(xmlCint) Deprecated; not used d maxOccurs like(xmlCint) Deprecated; not used d processContents… d like(xmlCint) d any like(xmlCint) Ns constraint ##any? d nsSet like(xmlSchemaWildcardNsPtr) Allowed namspce list d negNsSet like(xmlSchemaWildcardNsPtr) Negated namespace d flags like(xmlCint) Deprecated; not used

* XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
*
* The attribute wildcard has been already builded.

d XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED… d c X'0001'

* XML_SCHEMAS_ATTRGROUP_GLOBAL:
*
* The attribute wildcard has been already builded.

d XML_SCHEMAS_ATTRGROUP_GLOBAL… d c X'0002'

* XML_SCHEMAS_ATTRGROUP_MARKED:
*
* Marks the attr group as marked; used for circular checks.

d XML_SCHEMAS_ATTRGROUP_MARKED… d c X'0004'

* XML_SCHEMAS_ATTRGROUP_REDEFINED:
*
* The attr group was redefined.

d XML_SCHEMAS_ATTRGROUP_REDEFINED… d c X'0008'

* XML_SCHEMAS_ATTRGROUP_HAS_REFS:
*
* Whether this attr. group contains attr. group references.

d XML_SCHEMAS_ATTRGROUP_HAS_REFS… d c X'0010'

* An attribute group definition.
*
* xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures
* must be kept similar

d xmlSchemaAttributeGroupPtr… d s * based(######typedef######)

d xmlSchemaAttributeGroup… d ds based(xmlSchemaAttributeGroupPtr) d align qualified d type like(xmlSchemaTypeType) Kind of type d next like(xmlSchemaAttributePtr) Next attribute d name * const xmlChar * d id * const xmlChar * d ref * const xmlChar * d refNs * const xmlChar * d annot like(xmlSchemaAnnotPtr)

*

d attributes like(xmlSchemaAttributePtr) Deprecated; not used d node like(xmlNodePtr) d flags like(xmlCint) d attributeWildcard… d like(xmlSchemaWildcardPtr) d refPrefix * const xmlChar * d refItem like(xmlSchemaAttributeGroupPtr) Deprecated; not used d targetNamespace… d * const xmlChar * d attrUses * void *

* xmlSchemaTypeLink:
* Used to build a list of types (e.g. member types of
* simpleType with variety "union").

d xmlSchemaTypeLinkPtr… d s * based(######typedef######)

d xmlSchemaTypeLink… d ds based(xmlSchemaTypeLinkPtr) d align qualified d next like(xmlSchemaTypeLinkPtr) Next type link d type like(xmlSchemaTypePtr) Linked type

* xmlSchemaFacetLink:
* Used to build a list of facets.

d xmlSchemaFacetLinkPtr… d s * based(######typedef######)

d xmlSchemaFacetLink… d ds based(xmlSchemaFacetLinkPtr) d align qualified d next like(xmlSchemaFacetLinkPtr) Next facet link d facet like(xmlSchemaFacetPtr) Linked facet

* XML_SCHEMAS_TYPE_MIXED:
*
* the element content type is mixed

d XML_SCHEMAS_TYPE_MIXED… d c X'00000001'

* XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION:
*
* the simple or complex type has a derivation method of "extension".

d XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION… d c X'00000002'

* XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION:
*
* the simple or complex type has a derivation method of "restriction".

d XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION… d c X'00000004'

* XML_SCHEMAS_TYPE_GLOBAL:
*
* the type is global

d XML_SCHEMAS_TYPE_GLOBAL… d c X'00000008'

* XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD:
*
* the complexType owns an attribute wildcard, i.e.
* it can be freed by the complexType

d XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD… Obsolete. d c X'00000010'

* XML_SCHEMAS_TYPE_VARIETY_ABSENT:
*
* the simpleType has a variety of "absent".
* TODO: Actually not necessary :-/, since if
* none of the variety flags occur then it's
* automatically absent.

d XML_SCHEMAS_TYPE_VARIETY_ABSENT… d c X'00000020'

* XML_SCHEMAS_TYPE_VARIETY_LIST:
*
* the simpleType has a variety of "list".

d XML_SCHEMAS_TYPE_VARIETY_LIST… d c X'00000040'

* XML_SCHEMAS_TYPE_VARIETY_UNION:
*
* the simpleType has a variety of "union".

d XML_SCHEMAS_TYPE_VARIETY_UNION… d c X'00000080'

* XML_SCHEMAS_TYPE_VARIETY_ATOMIC:
*
* the simpleType has a variety of "union".

d XML_SCHEMAS_TYPE_VARIETY_ATOMIC… d c X'00000100'

* XML_SCHEMAS_TYPE_FINAL_EXTENSION:
*
* the complexType has a final of "extension".

d XML_SCHEMAS_TYPE_FINAL_EXTENSION… d c X'00000200'

* XML_SCHEMAS_TYPE_FINAL_RESTRICTION:
*
* the simpleType/complexType has a final of "restriction".

d XML_SCHEMAS_TYPE_FINAL_RESTRICTION… d c X'00000400'

* XML_SCHEMAS_TYPE_FINAL_LIST:
*
* the simpleType has a final of "list".

d XML_SCHEMAS_TYPE_FINAL_LIST… d c X'00000800'

* XML_SCHEMAS_TYPE_FINAL_UNION:
*
* the simpleType has a final of "union".

d XML_SCHEMAS_TYPE_FINAL_UNION… d c X'00001000'

* XML_SCHEMAS_TYPE_FINAL_DEFAULT:
*
* the simpleType has a final of "default".

d XML_SCHEMAS_TYPE_FINAL_DEFAULT… d c X'00002000'

* XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE:
*
* Marks the item as a builtin primitive.

d XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE… d c X'00004000'

* XML_SCHEMAS_TYPE_MARKED:
*
* Marks the item as marked; used for circular checks.

d XML_SCHEMAS_TYPE_MARKED… d c X'00010000'

* XML_SCHEMAS_TYPE_BLOCK_DEFAULT:
*
* the complexType did not specify 'block' so use the default of the
* <schema> item.

d XML_SCHEMAS_TYPE_BLOCK_DEFAULT… d c X'00020000'

* XML_SCHEMAS_TYPE_BLOCK_EXTENSION:
*
* the complexType has a 'block' of "extension".

d XML_SCHEMAS_TYPE_BLOCK_EXTENSION… d c X'00040000'

* XML_SCHEMAS_TYPE_BLOCK_RESTRICTION:
*
* the complexType has a 'block' of "restriction".

d XML_SCHEMAS_TYPE_BLOCK_RESTRICTION… d c X'00080000'

* XML_SCHEMAS_TYPE_ABSTRACT:
*
* the simple/complexType is abstract.

d XML_SCHEMAS_TYPE_ABSTRACT… d c X'00100000'

* XML_SCHEMAS_TYPE_FACETSNEEDVALUE:
*
* indicates if the facets need a computed value

d XML_SCHEMAS_TYPE_FACETSNEEDVALUE… d c X'00200000'

* XML_SCHEMAS_TYPE_INTERNAL_RESOLVED:
*
* indicates that the type was typefixed

d XML_SCHEMAS_TYPE_INTERNAL_RESOLVED… d c X'00400000'

* XML_SCHEMAS_TYPE_INTERNAL_INVALID:
*
* indicates that the type is invalid

d XML_SCHEMAS_TYPE_INTERNAL_INVALID… d c X'00800000'

* XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE:
*
* a whitespace-facet value of "preserve"

d XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE… d c X'01000000'

* XML_SCHEMAS_TYPE_WHITESPACE_REPLACE:
*
* a whitespace-facet value of "replace"

d XML_SCHEMAS_TYPE_WHITESPACE_REPLACE… d c X'02000000'

* XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE:
*
* a whitespace-facet value of "collapse"

d XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE… d c X'04000000'

* XML_SCHEMAS_TYPE_HAS_FACETS:
*
* has facets

d XML_SCHEMAS_TYPE_HAS_FACETS… d c X'08000000'

* XML_SCHEMAS_TYPE_NORMVALUENEEDED:
*
* indicates if the facets (pattern) need a normalized value

d XML_SCHEMAS_TYPE_NORMVALUENEEDED… d c X'10000000'

* XML_SCHEMAS_TYPE_FIXUP_1:
*
* First stage of fixup was done.

d XML_SCHEMAS_TYPE_FIXUP_1… d c X'20000000'

* XML_SCHEMAS_TYPE_REDEFINED:
*
* The type was redefined.

d XML_SCHEMAS_TYPE_REDEFINED… d c X'40000000'

/if defined(DISABLED)
* XML_SCHEMAS_TYPE_REDEFINING:
*
* The type redefines an other type.

d XML_SCHEMAS_TYPE_REDEFINING… d c X'80000000'

/endif

* _xmlSchemaType:
*
* Schemas type definition.

d xmlSchemaType… d ds based(xmlSchemaTypePtr) d align qualified d type like(xmlSchemaTypeType) Kind of type d next like(xmlSchemaTypePtr) Next type d name * const xmlChar * d id * const xmlChar * d ref * const xmlChar * d refNs * const xmlChar * d annot like(xmlSchemaAnnotPtr) d subtypes like(xmlSchemaTypePtr) d attributes like(xmlSchemaAttributePtr) Deprecated; not used d node like(xmlNodePtr) d minOccurs like(xmlCint) Deprecated; not used d maxOccurs like(xmlCint) Deprecated; not used

*

d flags like(xmlCint) d contentType like(xmlSchemaContentType) d base * const xmlChar * d baseNs * const xmlChar * d baseType like(xmlSchemaTypePtr) Base type component d facets like(xmlSchemaFacetPtr) Local facets d redef like(xmlSchemaTypePtr) Deprecated; not used d recurse like(xmlCint) Obsolete d attributeUses like(xmlSchemaAttributeLinkPtr) Deprecated; not used d attributeWildcard… d like(xmlSchemaWildcardPtr) d builtInType like(xmlCint) Built-in types type d memberTypes like(xmlSchemaTypeLinkPtr) Union member-types d facetSet like(xmlSchemaFacetLinkPtr) All facets d refPrefix * const xmlChar * d contentTypeDef… d like(xmlSchemaTypePtr) d contModel like(xmlRegexpPtr) Content model autom. d targetNamespace… d * const xmlChar * d attrUses * void *

* xmlSchemaElement:
* An element definition.
*
* xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of
* structures must be kept similar

* XML_SCHEMAS_ELEM_NILLABLE:
*
* the element is nillable

d XML_SCHEMAS_ELEM_NILLABLE… d c X'00000001'

* XML_SCHEMAS_ELEM_GLOBAL:
*
* the element is global

d XML_SCHEMAS_ELEM_GLOBAL… d c X'00000002'

* XML_SCHEMAS_ELEM_DEFAULT:
*
* the element has a default value

d XML_SCHEMAS_ELEM_DEFAULT… d c X'00000004'

* XML_SCHEMAS_ELEM_FIXED:
*
* the element has a fixed value

d XML_SCHEMAS_ELEM_FIXED… d c X'00000008'

* XML_SCHEMAS_ELEM_ABSTRACT:
*
* the element is abstract

d XML_SCHEMAS_ELEM_ABSTRACT… d c X'00000010'

* XML_SCHEMAS_ELEM_TOPLEVEL:
*
* the element is top level
* obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead

d XML_SCHEMAS_ELEM_TOPLEVEL… d c X'00000020'

* XML_SCHEMAS_ELEM_REF:
*
* the element is a reference to a type

d XML_SCHEMAS_ELEM_REF… d c X'00000040'

* XML_SCHEMAS_ELEM_NSDEFAULT:
*
* allow elements in no namespace
* Obsolete, not used anymore.

d XML_SCHEMAS_ELEM_NSDEFAULT… d c X'00000080'

* XML_SCHEMAS_ELEM_INTERNAL_RESOLVED:
*
* this is set when "type", "ref", "substitutionGroup"
* references have been resolved.

d XML_SCHEMAS_ELEM_INTERNAL_RESOLVED… d c X'00000100'

* XML_SCHEMAS_ELEM_CIRCULAR:
*
* a helper flag for the search of circular references.

d XML_SCHEMAS_ELEM_CIRCULAR… d c X'00000200'

* XML_SCHEMAS_ELEM_BLOCK_ABSENT:
*
* the "block" attribute is absent

d XML_SCHEMAS_ELEM_BLOCK_ABSENT… d c X'00000400'

* XML_SCHEMAS_ELEM_BLOCK_EXTENSION:
*
* disallowed substitutions are absent

d XML_SCHEMAS_ELEM_BLOCK_EXTENSION… d c X'00000800'

* XML_SCHEMAS_ELEM_BLOCK_RESTRICTION:
*
* disallowed substitutions: "restriction"

d XML_SCHEMAS_ELEM_BLOCK_RESTRICTION… d c X'00001000'

* XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION:
*
* disallowed substitutions: "substituion"

d XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION… d c X'00002000'

* XML_SCHEMAS_ELEM_FINAL_ABSENT:
*
* substitution group exclusions are absent

d XML_SCHEMAS_ELEM_FINAL_ABSENT… d c X'00004000'

* XML_SCHEMAS_ELEM_FINAL_EXTENSION:
*
* substitution group exclusions: "extension"

d XML_SCHEMAS_ELEM_FINAL_EXTENSION… d c X'00008000'

* XML_SCHEMAS_ELEM_FINAL_RESTRICTION:
*
* substitution group exclusions: "restriction"

d XML_SCHEMAS_ELEM_FINAL_RESTRICTION… d c X'00010000'

* XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD:
*
* the declaration is a substitution group head

d XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD… d c X'00020000'

* XML_SCHEMAS_ELEM_INTERNAL_CHECKED:
*
* this is set when the elem decl has been checked against
* all constraints

d XML_SCHEMAS_ELEM_INTERNAL_CHECKED… d c X'00040000'

d xmlSchemaElementPtr… d s * based(######typedef######)

d xmlSchemaElement… d ds based(xmlSchemaElementPtr) d align qualified d type like(xmlSchemaTypeType) Kind of type d next like(xmlSchemaElementPtr) Not used ? d name * const xmlChar * d id * const xmlChar * d ref * const xmlChar * d refNs * const xmlChar * d annot like(xmlSchemaAnnotPtr) d subtypes like(xmlSchemaTypePtr) d attributes like(xmlSchemaAttributePtr) Deprecated; not used d node like(xmlNodePtr) d minOccurs like(xmlCint) Deprecated; not used d maxOccurs like(xmlCint) Deprecated; not used

*

d flags like(xmlCint) d targetNamespace… d * const xmlChar * d namedType * const xmlChar * d namedTypeNs * const xmlChar * d substGroup * const xmlChar * d substGroupNs * const xmlChar * d scope * const xmlChar * d value * const xmlChar * d refDecl like(xmlSchemaElementPtr) d contModel like(xmlRegexpPtr) d contentType like(xmlSchemaContentType) d refPrefix * const xmlChar * d devVal like(xmlSchemaValPtr) Comp val constraint d idcs * void *

* XML_SCHEMAS_FACET_UNKNOWN:
*
* unknown facet handling

d XML_SCHEMAS_FACET_UNKNOWN… d c 0

* XML_SCHEMAS_FACET_PRESERVE:
*
* preserve the type of the facet

d XML_SCHEMAS_FACET_PRESERVE… d c 1

* XML_SCHEMAS_FACET_REPLACE:
*
* replace the type of the facet

d XML_SCHEMAS_FACET_REPLACE… d c 2

* XML_SCHEMAS_FACET_COLLAPSE:
*
* collapse the types of the facet

d XML_SCHEMAS_FACET_COLLAPSE… d c 3

* A facet definition.

d xmlSchemaFacet… d ds based(xmlSchemaFacetPtr) d align qualified d type like(xmlSchemaTypeType) Kind of type d next like(xmlSchemaFacetPtr) Next type in seq. d value * const xmlChar * d id * const xmlChar * d annot like(xmlSchemaAnnotPtr) d node like(xmlNodePtr) d fixed like(xmlCint) _FACET_PRESERVE, etc d whitespace like(xmlCint) d val like(xmlSchemaValPtr) Compiled value d regexp like(xmlRegexpPtr) Regexp for patterns

* A notation definition.

d xmlSchemaNotationPtr… d s * based(######typedef######)

d xmlSchemaNotation… d ds based(xmlSchemaNotationPtr) d align qualified d type like(xmlSchemaTypeType) Kind of type d name * const xmlChar * d annot like(xmlSchemaAnnotPtr) d identifier * const xmlChar * d targetNamespace… d * const xmlChar *

* TODO: Actually all those flags used for the schema should sit
* on the schema parser context, since they are used only
* during parsing an XML schema document, and not available
* on the component level as per spec.

* XML_SCHEMAS_QUALIF_ELEM:
*
* Reflects elementFormDefault == qualified in
* an XML schema document.

d XML_SCHEMAS_QUALIF_ELEM… d c X'00000001'

* XML_SCHEMAS_QUALIF_ATTR:
*
* Reflects attributeFormDefault == qualified in
* an XML schema document.

d XML_SCHEMAS_QUALIF_ATTR… d c X'00000002'

* XML_SCHEMAS_FINAL_DEFAULT_EXTENSION:
*
* the schema has "extension" in the set of finalDefault.

d XML_SCHEMAS_FINAL_DEFAULT_EXTENSION… d c X'00000004'

* XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION:
*
* the schema has "restriction" in the set of finalDefault.

d XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION… d c X'00000008'

* XML_SCHEMAS_FINAL_DEFAULT_LIST:
*
* the cshema has "list" in the set of finalDefault.

d XML_SCHEMAS_FINAL_DEFAULT_LIST… d c X'00000010'

* XML_SCHEMAS_FINAL_DEFAULT_UNION:
*
* the schema has "union" in the set of finalDefault.

d XML_SCHEMAS_FINAL_DEFAULT_UNION… d c X'00000020'

* XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION:
*
* the schema has "extension" in the set of blockDefault.

d XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION… d c X'00000040'

* XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION:
*
* the schema has "restriction" in the set of blockDefault.

d XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION… d c X'00000080'

* XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION:
*
* the schema has "substitution" in the set of blockDefault.

d XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION… d c X'00000100'

* XML_SCHEMAS_INCLUDING_CONVERT_NS:
*
* the schema is currently including an other schema with
* no target namespace.

d XML_SCHEMAS_INCLUDING_CONVERT_NS… d c X'00000200'

* _xmlSchema:
*
* A Schemas definition

d xmlSchema ds based(xmlSchemaPtr) d align qualified d name * const xmlChar * d targetNamespace… d * const xmlChar * d version * const xmlChar * d id * const xmlChar * d doc like(xmlDocPtr) d annot like(xmlSchemaAnnotPtr) d flags like(xmlCint)

*

d typeDecl like(xmlHashTablePtr) d attrDecl like(xmlHashTablePtr) d attrGrpDecl like(xmlHashTablePtr) d elemDecl like(xmlHashTablePtr) d notaDecl like(xmlHashTablePtr) d schemasImports… d like(xmlHashTablePtr)

*

d private * void * d groupDecl like(xmlHashTablePtr) d dict like(xmlDictPtr) d includes * void * d preserve like(xmlCint) Do not free doc ? d counter like(xmlCint) For name uniqueness d idcDef like(xmlHashTablePtr) All id-constr. defs d volatiles * void *

d xmlSchemaFreeType… d pr extproc('xmlSchemaFreeType') d type value like(xmlSchemaTypePtr)

d xmlSchemaFreeWildcard… d pr extproc('xmlSchemaFreeWildcard') d wildcard value like(xmlSchemaWildcardPtr)

/endif                                                                    LIBXML_SCHEMAS_ENBLD
/endif                                                                    SCHEMA_INTERNALS_H__