Repository URL to install this package:
|
Version:
3.2.0 ▾
|
(*
* 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 garanteed to be API or ABI stable !
*
* Copy: See Copyright for the status of this software.
*
* Author: Daniel Veillard
*)
{$IFDEF LIBXML_SCHEMAS_ENABLED}
{$IFDEF POINTER}
xmlSchemaValPtr = ^xmlSchemaVal;
xmlSchemaValPtrPtr = ^xmlSchemaValPtr;
xmlSchemaTypePtr = ^xmlSchemaType;
xmlSchemaFacetPtr = ^xmlSchemaFacet;
xmlSchemaAnnotPtr = ^xmlSchemaAnnot;
xmlSchemaAttributePtr = ^xmlSchemaAttribute;
xmlSchemaAttributeLinkPtr = ^xmlSchemaAttributeLink;
xmlSchemaAttributeLinkPtrPtr = ^xmlSchemaAttributeLinkPtr;
xmlSchemaWildcardNsPtr = ^xmlSchemaWildcardNs;
xmlSchemaWildcardPtr = ^xmlSchemaWildcard;
xmlSchemaAttributeGroupPtr = ^xmlSchemaAttributeGroup;
xmlSchemaTypeLinkPtr = ^xmlSchemaTypeLink;
xmlSchemaFacetLinkPtr = ^xmlSchemaFacetLink;
xmlSchemaElementPtr = ^xmlSchemaElement;
{$ENDIF}
{$IFDEF TYPE}
xmlSchemaVal = record end;
xmlSchemaValType = (
XML_SCHEMAS_UNKNOWN = 0,
XML_SCHEMAS_STRING,
XML_SCHEMAS_NORMSTRING,
XML_SCHEMAS_DECIMAL,
XML_SCHEMAS_TIME,
XML_SCHEMAS_GDAY,
XML_SCHEMAS_GMONTH,
XML_SCHEMAS_GMONTHDAY,
XML_SCHEMAS_GYEAR,
XML_SCHEMAS_GYEARMONTH,
XML_SCHEMAS_DATE,
XML_SCHEMAS_DATETIME,
XML_SCHEMAS_DURATION,
XML_SCHEMAS_FLOAT,
XML_SCHEMAS_DOUBLE,
XML_SCHEMAS_BOOLEAN,
XML_SCHEMAS_TOKEN,
XML_SCHEMAS_LANGUAGE,
XML_SCHEMAS_NMTOKEN,
XML_SCHEMAS_NMTOKENS,
XML_SCHEMAS_NAME,
XML_SCHEMAS_QNAME,
XML_SCHEMAS_NCNAME,
XML_SCHEMAS_ID,
XML_SCHEMAS_IDREF,
XML_SCHEMAS_IDREFS,
XML_SCHEMAS_ENTITY,
XML_SCHEMAS_ENTITIES,
XML_SCHEMAS_NOTATION,
XML_SCHEMAS_ANYURI,
XML_SCHEMAS_INTEGER,
XML_SCHEMAS_NPINTEGER,
XML_SCHEMAS_NINTEGER,
XML_SCHEMAS_NNINTEGER,
XML_SCHEMAS_PINTEGER,
XML_SCHEMAS_INT,
XML_SCHEMAS_UINT,
XML_SCHEMAS_LONG,
XML_SCHEMAS_ULONG,
XML_SCHEMAS_SHORT,
XML_SCHEMAS_USHORT,
XML_SCHEMAS_BYTE,
XML_SCHEMAS_UBYTE,
XML_SCHEMAS_HEXBINARY,
XML_SCHEMAS_BASE64BINARY,
XML_SCHEMAS_ANYTYPE,
XML_SCHEMAS_ANYSIMPLETYPE
);
(*
* XML Schemas defines multiple type of types.
*)
xmlSchemaTypeType = (
XML_SCHEMA_TYPE_BASIC = 1, (* A built-in datatype *)
XML_SCHEMA_TYPE_ANY,
XML_SCHEMA_TYPE_FACET,
XML_SCHEMA_TYPE_SIMPLE,
XML_SCHEMA_TYPE_COMPLEX,
XML_SCHEMA_TYPE_SEQUENCE = 6,
XML_SCHEMA_TYPE_CHOICE,
XML_SCHEMA_TYPE_ALL,
XML_SCHEMA_TYPE_SIMPLE_CONTENT,
XML_SCHEMA_TYPE_COMPLEX_CONTENT,
XML_SCHEMA_TYPE_UR,
XML_SCHEMA_TYPE_RESTRICTION,
XML_SCHEMA_TYPE_EXTENSION,
XML_SCHEMA_TYPE_ELEMENT,
XML_SCHEMA_TYPE_ATTRIBUTE,
XML_SCHEMA_TYPE_ATTRIBUTEGROUP,
XML_SCHEMA_TYPE_GROUP,
XML_SCHEMA_TYPE_NOTATION,
XML_SCHEMA_TYPE_LIST,
XML_SCHEMA_TYPE_UNION,
XML_SCHEMA_TYPE_ANY_ATTRIBUTE,
XML_SCHEMA_TYPE_IDC_UNIQUE,
XML_SCHEMA_TYPE_IDC_KEY,
XML_SCHEMA_TYPE_IDC_KEYREF,
XML_SCHEMA_TYPE_PARTICLE = 25,
XML_SCHEMA_TYPE_ATTRIBUTE_USE,
XML_SCHEMA_FACET_MININCLUSIVE = 1000,
XML_SCHEMA_FACET_MINEXCLUSIVE,
XML_SCHEMA_FACET_MAXINCLUSIVE,
XML_SCHEMA_FACET_MAXEXCLUSIVE,
XML_SCHEMA_FACET_TOTALDIGITS,
XML_SCHEMA_FACET_FRACTIONDIGITS,
XML_SCHEMA_FACET_PATTERN,
XML_SCHEMA_FACET_ENUMERATION,
XML_SCHEMA_FACET_WHITESPACE,
XML_SCHEMA_FACET_LENGTH,
XML_SCHEMA_FACET_MAXLENGTH,
XML_SCHEMA_FACET_MINLENGTH,
XML_SCHEMA_EXTRA_QNAMEREF = 2000,
XML_SCHEMA_EXTRA_ATTR_USE_PROHIB
);
xmlSchemaContentType = (
XML_SCHEMA_CONTENT_UNKNOWN = 0,
XML_SCHEMA_CONTENT_EMPTY = 1,
XML_SCHEMA_CONTENT_ELEMENTS,
XML_SCHEMA_CONTENT_MIXED,
XML_SCHEMA_CONTENT_SIMPLE,
XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS, (* Obsolete *)
XML_SCHEMA_CONTENT_BASIC,
XML_SCHEMA_CONTENT_ANY
);
(**
* Annotation
*)
xmlSchemaAnnot = record
next : xmlSchemaAnnotPtr;
content : xmlNodePtr; (* the annotation *)
end;
{$ENDIF}
{$IFDEF CONST}
(**
* XML_SCHEMAS_ANY_SKIP:
*
* Skip unknown attribute from validation
*)
XML_SCHEMAS_ANY_SKIP = 1;
(**
* XML_SCHEMAS_ANY_LAX:
*
* Used by wildcards.
* Validate if type found, don't worry if not found
*)
XML_SCHEMAS_ANY_LAX = 2;
(**
* XML_SCHEMAS_ANY_STRICT:
*
* Used by wildcards.
* Apply strict validation rules
*)
XML_SCHEMAS_ANY_STRICT = 3;
(**
* XML_SCHEMAS_ATTR_USE_PROHIBITED:
*
* Used by wildcards.
* The attribute is prohibited.
*)
XML_SCHEMAS_ATTR_USE_PROHIBITED = 0;
(**
* XML_SCHEMAS_ATTR_USE_REQUIRED:
*
* The attribute is required.
*)
XML_SCHEMAS_ATTR_USE_REQUIRED = 1;
(**
* XML_SCHEMAS_ATTR_USE_OPTIONAL:
*
* The attribute is optional.
*)
XML_SCHEMAS_ATTR_USE_OPTIONAL = 2;
(**
* XML_SCHEMAS_ATTR_GLOBAL:
*
* allow elements in no namespace
*)
XML_SCHEMAS_ATTR_GLOBAL = (1 shl 0);
(**
* XML_SCHEMAS_ATTR_NSDEFAULT:
*
* allow elements in no namespace
*)
XML_SCHEMAS_ATTR_NSDEFAULT = (1 shl 7);
(**
* XML_SCHEMAS_ATTR_INTERNAL_RESOLVED:
*
* this is set when the "type" and "ref" references
* have been resolved.
*)
XML_SCHEMAS_ATTR_INTERNAL_RESOLVED = (1 shl 8);
(**
* XML_SCHEMAS_ATTR_FIXED:
*
* the attribute has a fixed value
*)
XML_SCHEMAS_ATTR_FIXED = (1 shl 9);
{$ENDIF}
{$IFDEF TYPE}
(**
* xmlSchemaAttribute:
* An attribute definition.
*)
xmlSchemaAttribute = record
_type : xmlSchemaTypeType;
next : xmlSchemaAttributePtr; (* the next attribute (not used?) *)
name : xmlCharPtr; (* the name of the declaration *)
id : xmlCharPtr; (* Deprecated; not used *)
ref : xmlCharPtr; (* Deprecated; not used *)
refNs : xmlCharPtr; (* Deprecated; not used *)
typeName : xmlCharPtr; (* the local name of the type definition *)
typeNs : xmlCharPtr; (* the ns URI of the type definition *)
annot : xmlSchemaAnnotPtr;
base : xmlSchemaTypePtr; (* Deprecated; not used *)
occurs : cint; (* Deprecated; not used *)
defValue : xmlCharPtr; (* The initial value of the value constraint *)
subtypes : xmlSchemaTypePtr; (* the type definition *)
node : xmlNodePtr;
targetNamespace : xmlCharPtr;
flags : cint;
refPrefix : xmlCharPtr; (* Deprecated; not used *)
defVal : xmlSchemaValPtr; (* The compiled value constraint *)
refDecl : xmlSchemaAttributePtr; (* Deprecated; not used *)
end;
(**
* xmlSchemaAttributeLink:
* Used to build a list of attribute uses on complexType definitions.
* WARNING: Deprecated; not used.
*)
xmlSchemaAttributeLink = record
next : xmlSchemaAttributeLinkPtr;(* the next attribute link ... *)
attr : xmlSchemaAttributePtr;(* the linked attribute *)
end;
{$ENDIF}
{$IFDEF CONST}
(**
* XML_SCHEMAS_WILDCARD_COMPLETE:
*
* If the wildcard is complete.
*)
XML_SCHEMAS_WILDCARD_COMPLETE = (1 shl 0);
{$ENDIF}
{$IFDEF TYPE}
(**
* xmlSchemaCharValueLink:
* Used to build a list of namespaces on wildcards.
*)
xmlSchemaWildcardNs = record
next : xmlSchemaWildcardNsPtr;(* the next constraint link ... *)
value : xmlCharPtr;(* the value *)
end;
(**
* xmlSchemaWildcard.
* A wildcard.
*)
xmlSchemaWildcard = record
_type : xmlSchemaTypeType; (* The kind of type *)
id : xmlCharPtr; (* Deprecated; not used *)
annot : xmlSchemaAnnotPtr;
node : xmlNodePtr;
minOccurs : cint; (* Deprecated; not used *)
maxOccurs : cint; (* Deprecated; not used *)
processContents : cint;
any : cint; (* Indicates if the ns constraint is of ##any *)
nsSet : xmlSchemaWildcardNsPtr; (* The list of allowed namespaces *)
negNsSet : xmlSchemaWildcardNsPtr; (* The negated namespace *)
flags : cint;
end;
{$ENDIF}
{$IFDEF CONST}
(**
* XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
*
* The attribute wildcard has been already builded.
*)
XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED = (1 shl 0);
(**
* XML_SCHEMAS_ATTRGROUP_GLOBAL:
*
* The attribute wildcard has been already builded.
*)
XML_SCHEMAS_ATTRGROUP_GLOBAL = (1 shl 1);
(**
* XML_SCHEMAS_ATTRGROUP_MARKED:
*
* Marks the attr group as marked; used for circular checks.
*)
XML_SCHEMAS_ATTRGROUP_MARKED = (1 shl 2);
(**
* XML_SCHEMAS_ATTRGROUP_REDEFINED:
*
* The attr group was redefined.
*)
XML_SCHEMAS_ATTRGROUP_REDEFINED = (1 shl 3);
(**
* XML_SCHEMAS_ATTRGROUP_HAS_REFS:
*
* Whether this attr. group contains attr. group references.
*)
XML_SCHEMAS_ATTRGROUP_HAS_REFS = (1 shl 4);
{$ENDIF}
{$IFDEF TYPE}
(**
* An attribute group definition.
*
* xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures
* must be kept similar
*)
xmlSchemaAttributeGroup = record
_type : xmlSchemaTypeType; (* The kind of type *)
next : xmlSchemaAttributePtr;(* the next attribute if in a group ... *)
name : xmlCharPtr;
id : xmlCharPtr;
ref : xmlCharPtr; (* Deprecated; not used *)
refNs : xmlCharPtr; (* Deprecated; not used *)
annot : xmlSchemaAnnotPtr;
attributes : xmlSchemaAttributePtr; (* Deprecated; not used *)
node : xmlNodePtr;
flags : cint;
attributeWildcard : xmlSchemaWildcardPtr;
refPrefix : xmlCharPtr; (* Deprecated; not used *)
refItem : xmlSchemaAttributeGroupPtr; (* Deprecated; not used *)
targetNamespace : xmlCharPtr;
attrUses : pointer;
end;
(**
* xmlSchemaTypeLink:
* Used to build a list of types (e.g. member types of
* simpleType with variety "union").
*)
xmlSchemaTypeLink = record
next : xmlSchemaTypeLinkPtr;(* the next type link ... *)
_type : xmlSchemaTypePtr;(* the linked type *)
end;
(**
* xmlSchemaFacetLink:
* Used to build a list of facets.
*)
xmlSchemaFacetLink = record
next : xmlSchemaFacetLinkPtr;(* the next facet link ... *)
facet : xmlSchemaFacetPtr;(* the linked facet *)
end;
{$ENDIF}
{$IFDEF CONST}
(**
* XML_SCHEMAS_TYPE_MIXED:
*
* the element content type is mixed
*)
XML_SCHEMAS_TYPE_MIXED = (1 shl 0);
(**
* XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION:
*
* the simple or complex type has a derivation method of "extension".
*)
XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION = (1 shl 1);
(**
* XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION:
*
* the simple or complex type has a derivation method of "restriction".
*)
XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION = (1 shl 2);
(**
* XML_SCHEMAS_TYPE_GLOBAL:
*
* the type is global
*)
XML_SCHEMAS_TYPE_GLOBAL = (1 shl 3);
(**
* 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.
*)
XML_SCHEMAS_TYPE_VARIETY_ABSENT = (1 shl 5);
(**
* XML_SCHEMAS_TYPE_VARIETY_LIST:
*
* the simpleType has a variety of "list".
*)
XML_SCHEMAS_TYPE_VARIETY_LIST = (1 shl 6);
(**
* XML_SCHEMAS_TYPE_VARIETY_UNION:
*
* the simpleType has a variety of "union".
*)
XML_SCHEMAS_TYPE_VARIETY_UNION = (1 shl 7);
(**
* XML_SCHEMAS_TYPE_VARIETY_ATOMIC:
*
* the simpleType has a variety of "union".
*)
XML_SCHEMAS_TYPE_VARIETY_ATOMIC = (1 shl 8);
(**
* XML_SCHEMAS_TYPE_FINAL_EXTENSION:
*
* the complexType has a final of "extension".
*)
XML_SCHEMAS_TYPE_FINAL_EXTENSION = (1 shl 9);
(**
* XML_SCHEMAS_TYPE_FINAL_RESTRICTION:
*
* the simpleType/complexType has a final of "restriction".
*)
XML_SCHEMAS_TYPE_FINAL_RESTRICTION = (1 shl 10);
(**
* XML_SCHEMAS_TYPE_FINAL_LIST:
*
* the simpleType has a final of "list".
*)
XML_SCHEMAS_TYPE_FINAL_LIST = (1 shl 11);
(**
* XML_SCHEMAS_TYPE_FINAL_UNION:
*
* the simpleType has a final of "union".
*)
XML_SCHEMAS_TYPE_FINAL_UNION = (1 shl 12);
(**
* XML_SCHEMAS_TYPE_FINAL_DEFAULT:
*
* the simpleType has a final of "default".
*)
XML_SCHEMAS_TYPE_FINAL_DEFAULT = (1 shl 13);
(**
* XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE:
*
* Marks the item as a builtin primitive.
*)
XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE = (1 shl 14);
(**
* XML_SCHEMAS_TYPE_MARKED:
*
* Marks the item as marked; used for circular checks.
*)
XML_SCHEMAS_TYPE_MARKED = (1 shl 16);
(**
* XML_SCHEMAS_TYPE_BLOCK_DEFAULT:
*
* the complexType did not specify 'block' so use the default of the
* <schema> item.
*)
XML_SCHEMAS_TYPE_BLOCK_DEFAULT = (1 shl 17);
(**
* XML_SCHEMAS_TYPE_BLOCK_EXTENSION:
*
* the complexType has a 'block' of "extension".
*)
XML_SCHEMAS_TYPE_BLOCK_EXTENSION = (1 shl 18);
(**
* XML_SCHEMAS_TYPE_BLOCK_RESTRICTION:
*
* the complexType has a 'block' of "restriction".
*)
XML_SCHEMAS_TYPE_BLOCK_RESTRICTION = (1 shl 19);
(**
* XML_SCHEMAS_TYPE_ABSTRACT:
*
* the simple/complexType is abstract.
*)
XML_SCHEMAS_TYPE_ABSTRACT = (1 shl 20);
(**
* XML_SCHEMAS_TYPE_FACETSNEEDVALUE:
*
* indicates if the facets need a computed value
*)
XML_SCHEMAS_TYPE_FACETSNEEDVALUE = (1 shl 21);
(**
* XML_SCHEMAS_TYPE_INTERNAL_RESOLVED:
*
* indicates that the type was typefixed
*)
XML_SCHEMAS_TYPE_INTERNAL_RESOLVED = (1 shl 22);
(**
* XML_SCHEMAS_TYPE_INTERNAL_INVALID:
*
* indicates that the type is invalid
*)
XML_SCHEMAS_TYPE_INTERNAL_INVALID = (1 shl 23);
(**
* XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE:
*
* a whitespace-facet value of "preserve"
*)
XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE = (1 shl 24);
(**
* XML_SCHEMAS_TYPE_WHITESPACE_REPLACE:
*
* a whitespace-facet value of "replace"
*)
XML_SCHEMAS_TYPE_WHITESPACE_REPLACE = (1 shl 25);
(**
* XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE:
*
* a whitespace-facet value of "collapse"
*)
XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE = (1 shl 26);
(**
* XML_SCHEMAS_TYPE_HAS_FACETS:
*
* has facets
*)
XML_SCHEMAS_TYPE_HAS_FACETS = (1 shl 27);
(**
* XML_SCHEMAS_TYPE_NORMVALUENEEDED:
*
* indicates if the facets (pattern) need a normalized value
*)
XML_SCHEMAS_TYPE_NORMVALUENEEDED = (1 shl 28);
(**
* XML_SCHEMAS_TYPE_FIXUP_1:
*
* First stage of fixup was done.
*)
XML_SCHEMAS_TYPE_FIXUP_1 = (1 shl 29);
(**
* XML_SCHEMAS_TYPE_REDEFINED:
*
* The type was redefined.
*)
XML_SCHEMAS_TYPE_REDEFINED = (1 shl 30);
(**
* XML_SCHEMAS_TYPE_REDEFINING:
*
* The type redefines another type.
*)
(* XML_SCHEMAS_TYPE_REDEFINING = (1 shl 31); *)
{$ENDIF}
{$IFDEF TYPE}
(**
* _xmlSchemaType:
*
* Schemas type definition.
*)
xmlSchemaType = record
_type : xmlSchemaTypeType; (* The kind of type *)
next : xmlSchemaTypePtr; (* the next type if in a sequence ... *)
name : xmlCharPtr;
id : xmlCharPtr; (* Deprecated; not used *)
ref : xmlCharPtr; (* Deprecated; not used *)
refNs : xmlCharPtr; (* Deprecated; not used *)
annot : xmlSchemaAnnotPtr;
subtypes : xmlSchemaTypePtr;
attributes : xmlSchemaAttributePtr; (* Deprecated; not used *)
node : xmlNodePtr;
minOccurs : cint; (* Deprecated; not used *)
maxOccurs : cint; (* Deprecated; not used *)
flags : cint;
contentType : xmlSchemaContentType;
base : xmlCharPtr; (* Base type's local name *)
baseNs : xmlCharPtr; (* Base type's target namespace *)
baseType : xmlSchemaTypePtr; (* The base type component *)
facets : xmlSchemaFacetPtr; (* Local facets *)
redef : xmlSchemaTypePtr; (* Deprecated; not used *)
recurse : cint; (* Obsolete *)
attributeUses : xmlSchemaAttributeLinkPtrPtr; (* Deprecated; not used *)
attributeWildcard : xmlSchemaWildcardPtr;
builtInType : cint; (* Type of built-in types. *)
memberTypes : xmlSchemaTypeLinkPtr; (* member-types if a union type. *)
facetSet : xmlSchemaFacetLinkPtr; (* All facets (incl. inherited) *)
refPrefix : xmlCharPtr; (* Deprecated; not used *)
contentTypeDef : xmlSchemaTypePtr; (* Used for the simple content of complex types.
Could we use @subtypes for this? *)
contModel : xmlRegexpPtr; (* Holds the automaton of the content model *)
targetNamespace : xmlCharPtr;
attrUses : pointer;
end;
{$ENDIF}
{$IFDEF CONST}
(*
* xmlSchemaElement:
* An element definition.
*
* xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of
* structures must be kept similar
*)
(**
* XML_SCHEMAS_ELEM_NILLABLE:
*
* the element is nillable
*)
XML_SCHEMAS_ELEM_NILLABLE = (1 shl 0);
(**
* XML_SCHEMAS_ELEM_GLOBAL:
*
* the element is global
*)
XML_SCHEMAS_ELEM_GLOBAL = (1 shl 1);
(**
* XML_SCHEMAS_ELEM_DEFAULT:
*
* the element has a default value
*)
XML_SCHEMAS_ELEM_DEFAULT = (1 shl 2);
(**
* XML_SCHEMAS_ELEM_FIXED:
*
* the element has a fixed value
*)
XML_SCHEMAS_ELEM_FIXED = (1 shl 3);
(**
* XML_SCHEMAS_ELEM_ABSTRACT:
*
* the element is abstract
*)
XML_SCHEMAS_ELEM_ABSTRACT = (1 shl 4);
(**
* XML_SCHEMAS_ELEM_REF:
*
* the element is a reference to a type
*)
XML_SCHEMAS_ELEM_REF = (1 shl 6);
(**
* XML_SCHEMAS_ELEM_INTERNAL_RESOLVED:
*
* this is set when "type", "ref", "substitutionGroup"
* references have been resolved.
*)
XML_SCHEMAS_ELEM_INTERNAL_RESOLVED = (1 shl 8);
(**
* XML_SCHEMAS_ELEM_CIRCULAR:
*
* a helper flag for the search of circular references.
*)
XML_SCHEMAS_ELEM_CIRCULAR = (1 shl 9);
(**
* XML_SCHEMAS_ELEM_BLOCK_ABSENT:
*
* the "block" attribute is absent
*)
XML_SCHEMAS_ELEM_BLOCK_ABSENT = (1 shl 10);
(**
* XML_SCHEMAS_ELEM_BLOCK_EXTENSION:
*
* disallowed substitutions are absent
*)
XML_SCHEMAS_ELEM_BLOCK_EXTENSION = (1 shl 11);
(**
* XML_SCHEMAS_ELEM_BLOCK_RESTRICTION:
*
* disallowed substitutions: "restriction"
*)
XML_SCHEMAS_ELEM_BLOCK_RESTRICTION = (1 shl 12);
(**
* XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION:
*
* disallowed substitutions: "substituion"
*)
XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION = (1 shl 13);
(**
* XML_SCHEMAS_ELEM_FINAL_ABSENT:
*
* substitution group exclusions are absent
*)
XML_SCHEMAS_ELEM_FINAL_ABSENT = (1 shl 14);
(**
* XML_SCHEMAS_ELEM_FINAL_EXTENSION:
*
* substitution group exclusions: "extension"
*)
XML_SCHEMAS_ELEM_FINAL_EXTENSION = (1 shl 15);
(**
* XML_SCHEMAS_ELEM_FINAL_RESTRICTION:
*
* substitution group exclusions: "restriction"
*)
XML_SCHEMAS_ELEM_FINAL_RESTRICTION = (1 shl 16);
(**
* XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD:
*
* the declaration is a substitution group head
*)
XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD = (1 shl 17);
(**
* XML_SCHEMAS_ELEM_INTERNAL_CHECKED:
*
* this is set when the elem decl has been checked against
* all constraints
*)
XML_SCHEMAS_ELEM_INTERNAL_CHECKED = (1 shl 18);
{$ENDIF}
{$IFDEF TYPE}
xmlSchemaElement = record
_type : xmlSchemaTypeType; (* The kind of type *)
next : xmlSchemaTypePtr; (* Not used? *)
name : xmlCharPtr;
id : xmlCharPtr; (* Deprecated; not used *)
ref : xmlCharPtr; (* Deprecated; not used *)
refNs : xmlCharPtr; (* Deprecated; not used *)
annot : xmlSchemaAnnotPtr;
subtypes : xmlSchemaTypePtr; (* the type definition *)
attributes : xmlSchemaAttributePtr;
node : xmlNodePtr;
minOccurs : cint; (* Deprecated; not used *)
maxOccurs : cint; (* Deprecated; not used *)
flags : cint;
targetNamespace : xmlCharPtr;
namedType : xmlCharPtr;
namedTypeNs : xmlCharPtr;
substGroup : xmlCharPtr;
substGroupNs : xmlCharPtr;
scope : xmlCharPtr;
value : xmlCharPtr; (* The original value of the value constraint. *)
refDecl : xmlSchemaElementPtr; (* This will now be used for the
substitution group affiliation *)
contModel : xmlRegexpPtr; (* Obsolete for WXS, maybe used for RelaxNG *)
contentType : xmlSchemaContentType;
refPrefix : xmlCharPtr; (* Deprecated; not used *)
defVal : xmlSchemaValPtr; (* The compiled value contraint. *)
idcs : pointer; (* The identity-constraint defs *)
end;
{$ENDIF}
{$IFDEF CONST}
(*
* XML_SCHEMAS_FACET_UNKNOWN:
*
* unknown facet handling
*)
XML_SCHEMAS_FACET_UNKNOWN = (0);
(*
* XML_SCHEMAS_FACET_PRESERVE:
*
* preserve the type of the facet
*)
XML_SCHEMAS_FACET_PRESERVE = (1);
(*
* XML_SCHEMAS_FACET_REPLACE:
*
* replace the type of the facet
*)
XML_SCHEMAS_FACET_REPLACE = (2);
(*
* XML_SCHEMAS_FACET_COLLAPSE:
*
* collapse the types of the facet
*)
XML_SCHEMAS_FACET_COLLAPSE = (3);
{$ENDIF}
{$IFDEF TYPE}
(**
* A facet definition.
*)
xmlSchemaFacet = record
_type : xmlSchemaTypeType; (* The kind of type *)
next : xmlSchemaFacetPtr;(* the next type if in a sequence ... *)
value : xmlCharPtr; (* The original value *)
id : xmlCharPtr; (* Obsolete *)
annot : xmlSchemaAnnotPtr;
node : xmlNodePtr;
fixed : cint; (* XML_SCHEMAS_FACET_PRESERVE, etc. *)
whitespace : cint;
val : xmlSchemaValPtr; (* The compiled value *)
regexp : xmlRegexpPtr; (* The regex for patterns *)
end;
(**
* A notation definition.
*)
xmlSchemaNotation = record
_type : xmlSchemaTypeType; (* The kind of type *)
name : xmlCharPtr;
annot : xmlSchemaAnnotPtr;
identifier : xmlCharPtr;
targetNamespace : xmlCharPtr;
end;
{$ENDIF}
{$IFDEF CONST}
(*
* 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.
*)
XML_SCHEMAS_QUALIF_ELEM = (1 shl 0);
(**
* XML_SCHEMAS_QUALIF_ATTR:
*
* Reflects attributeFormDefault == qualified in
* an XML schema document.
*)
XML_SCHEMAS_QUALIF_ATTR = (1 shl 1);
(**
* XML_SCHEMAS_FINAL_DEFAULT_EXTENSION:
*
* the schema has "extension" in the set of finalDefault.
*)
XML_SCHEMAS_FINAL_DEFAULT_EXTENSION = (1 shl 2);
(**
* XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION:
*
* the schema has "restriction" in the set of finalDefault.
*)
XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION = (1 shl 3);
(**
* XML_SCHEMAS_FINAL_DEFAULT_LIST:
*
* the cshema has "list" in the set of finalDefault.
*)
XML_SCHEMAS_FINAL_DEFAULT_LIST = (1 shl 4);
(**
* XML_SCHEMAS_FINAL_DEFAULT_UNION:
*
* the schema has "union" in the set of finalDefault.
*)
XML_SCHEMAS_FINAL_DEFAULT_UNION = (1 shl 5);
(**
* XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION:
*
* the schema has "extension" in the set of blockDefault.
*)
XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION = (1 shl 6);
(**
* XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION:
*
* the schema has "restriction" in the set of blockDefault.
*)
XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION = (1 shl 7);
(**
* XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION:
*
* the schema has "substitution" in the set of blockDefault.
*)
XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION = (1 shl 8);
(**
* XML_SCHEMAS_INCLUDING_CONVERT_NS:
*
* the schema is currently including another schema with
* no target namespace.
*)
XML_SCHEMAS_INCLUDING_CONVERT_NS = (1 shl 9);
{$ENDIF}
{$IFDEF TYPE}
(**
* _xmlSchema:
*
* A Schemas definition
*)
xmlSchema = record
name : xmlCharPtr; (* schema name *)
targetNamespace : xmlCharPtr; (* the target namespace *)
version : xmlCharPtr;
id : xmlCharPtr; (* Obsolete *)
doc : xmlDocPtr;
annot : xmlSchemaAnnotPtr;
flags : cint;
typeDecl : xmlHashTablePtr;
attrDecl : xmlHashTablePtr;
attrgrpDecl : xmlHashTablePtr;
elemDecl : xmlHashTablePtr;
notaDecl : xmlHashTablePtr;
schemasImports : xmlHashTablePtr;
_private : pointer; (* unused by the library for users or bindings *)
groupDecl : xmlHashTablePtr;
dict : xmlDictPtr;
includes : pointer; (* the includes, this is opaque for now *)
preserve : cint; (* whether to free the document *)
counter : cint; (* used to give ononymous components unique names *)
idcDef : xmlHashTablePtr; (* All identity-constraint defs. *)
volatiles : pointer; (* Obsolete *)
end;
{$ENDIF}
{$IFDEF FUNCTION}
procedure xmlSchemaFreeType(_type: xmlSchemaTypePtr); EXTDECL; external xml2lib;
procedure xmlSchemaFreeWildcard(wildcard: xmlSchemaWildcardPtr); EXTDECL; external xml2lib;
{$ENDIF}
{$ENDIF} (* LIBXML_SCHEMAS_ENABLED *)