Spaces:
Runtime error
Runtime error
| /* | |
| * 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: Daniel Veillard | |
| */ | |
| extern "C" { | |
| typedef enum { | |
| XML_SCHEMAS_UNKNOWN = 0, | |
| XML_SCHEMAS_STRING = 1, | |
| XML_SCHEMAS_NORMSTRING = 2, | |
| XML_SCHEMAS_DECIMAL = 3, | |
| XML_SCHEMAS_TIME = 4, | |
| XML_SCHEMAS_GDAY = 5, | |
| XML_SCHEMAS_GMONTH = 6, | |
| XML_SCHEMAS_GMONTHDAY = 7, | |
| XML_SCHEMAS_GYEAR = 8, | |
| XML_SCHEMAS_GYEARMONTH = 9, | |
| XML_SCHEMAS_DATE = 10, | |
| XML_SCHEMAS_DATETIME = 11, | |
| XML_SCHEMAS_DURATION = 12, | |
| XML_SCHEMAS_FLOAT = 13, | |
| XML_SCHEMAS_DOUBLE = 14, | |
| XML_SCHEMAS_BOOLEAN = 15, | |
| XML_SCHEMAS_TOKEN = 16, | |
| XML_SCHEMAS_LANGUAGE = 17, | |
| XML_SCHEMAS_NMTOKEN = 18, | |
| XML_SCHEMAS_NMTOKENS = 19, | |
| XML_SCHEMAS_NAME = 20, | |
| XML_SCHEMAS_QNAME = 21, | |
| XML_SCHEMAS_NCNAME = 22, | |
| XML_SCHEMAS_ID = 23, | |
| XML_SCHEMAS_IDREF = 24, | |
| XML_SCHEMAS_IDREFS = 25, | |
| XML_SCHEMAS_ENTITY = 26, | |
| XML_SCHEMAS_ENTITIES = 27, | |
| XML_SCHEMAS_NOTATION = 28, | |
| XML_SCHEMAS_ANYURI = 29, | |
| XML_SCHEMAS_INTEGER = 30, | |
| XML_SCHEMAS_NPINTEGER = 31, | |
| XML_SCHEMAS_NINTEGER = 32, | |
| XML_SCHEMAS_NNINTEGER = 33, | |
| XML_SCHEMAS_PINTEGER = 34, | |
| XML_SCHEMAS_INT = 35, | |
| XML_SCHEMAS_UINT = 36, | |
| XML_SCHEMAS_LONG = 37, | |
| XML_SCHEMAS_ULONG = 38, | |
| XML_SCHEMAS_SHORT = 39, | |
| XML_SCHEMAS_USHORT = 40, | |
| XML_SCHEMAS_BYTE = 41, | |
| XML_SCHEMAS_UBYTE = 42, | |
| XML_SCHEMAS_HEXBINARY = 43, | |
| XML_SCHEMAS_BASE64BINARY = 44, | |
| XML_SCHEMAS_ANYTYPE = 45, | |
| XML_SCHEMAS_ANYSIMPLETYPE = 46 | |
| } xmlSchemaValType; | |
| /* | |
| * XML Schemas defines multiple type of types. | |
| */ | |
| typedef enum { | |
| 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 | |
| } xmlSchemaTypeType; | |
| typedef enum { | |
| 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 | |
| } xmlSchemaContentType; | |
| typedef struct _xmlSchemaVal xmlSchemaVal; | |
| typedef xmlSchemaVal *xmlSchemaValPtr; | |
| typedef struct _xmlSchemaType xmlSchemaType; | |
| typedef xmlSchemaType *xmlSchemaTypePtr; | |
| typedef struct _xmlSchemaFacet xmlSchemaFacet; | |
| typedef xmlSchemaFacet *xmlSchemaFacetPtr; | |
| /** | |
| * Annotation | |
| */ | |
| typedef struct _xmlSchemaAnnot xmlSchemaAnnot; | |
| typedef xmlSchemaAnnot *xmlSchemaAnnotPtr; | |
| struct _xmlSchemaAnnot { | |
| struct _xmlSchemaAnnot *next; | |
| xmlNodePtr content; /* the annotation */ | |
| }; | |
| /** | |
| * XML_SCHEMAS_ANYATTR_SKIP: | |
| * | |
| * Skip unknown attribute from validation | |
| * Obsolete, not used anymore. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ANYATTR_LAX: | |
| * | |
| * Ignore validation non definition on attributes | |
| * Obsolete, not used anymore. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ANYATTR_STRICT: | |
| * | |
| * Apply strict validation rules on attributes | |
| * Obsolete, not used anymore. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ANY_SKIP: | |
| * | |
| * Skip unknown attribute from validation | |
| */ | |
| /** | |
| * XML_SCHEMAS_ANY_LAX: | |
| * | |
| * Used by wildcards. | |
| * Validate if type found, don't worry if not found | |
| */ | |
| /** | |
| * XML_SCHEMAS_ANY_STRICT: | |
| * | |
| * Used by wildcards. | |
| * Apply strict validation rules | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTR_USE_PROHIBITED: | |
| * | |
| * Used by wildcards. | |
| * The attribute is prohibited. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTR_USE_REQUIRED: | |
| * | |
| * The attribute is required. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTR_USE_OPTIONAL: | |
| * | |
| * The attribute is optional. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTR_GLOBAL: | |
| * | |
| * allow elements in no namespace | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTR_NSDEFAULT: | |
| * | |
| * allow elements in no namespace | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTR_INTERNAL_RESOLVED: | |
| * | |
| * this is set when the "type" and "ref" references | |
| * have been resolved. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTR_FIXED: | |
| * | |
| * the attribute has a fixed value | |
| */ | |
| /** | |
| * xmlSchemaAttribute: | |
| * An attribute definition. | |
| */ | |
| typedef struct _xmlSchemaAttribute xmlSchemaAttribute; | |
| typedef xmlSchemaAttribute *xmlSchemaAttributePtr; | |
| struct _xmlSchemaAttribute { | |
| xmlSchemaTypeType type; | |
| struct _xmlSchemaAttribute *next; /* the next attribute (not used?) */ | |
| const xmlChar *name; /* the name of the declaration */ | |
| const xmlChar *id; /* Deprecated; not used */ | |
| const xmlChar *ref; /* Deprecated; not used */ | |
| const xmlChar *refNs; /* Deprecated; not used */ | |
| const xmlChar *typeName; /* the local name of the type definition */ | |
| const xmlChar *typeNs; /* the ns URI of the type definition */ | |
| xmlSchemaAnnotPtr annot; | |
| xmlSchemaTypePtr base; /* Deprecated; not used */ | |
| int occurs; /* Deprecated; not used */ | |
| const xmlChar *defValue; /* The initial value of the value constraint */ | |
| xmlSchemaTypePtr subtypes; /* the type definition */ | |
| xmlNodePtr node; | |
| const xmlChar *targetNamespace; | |
| int flags; | |
| const xmlChar *refPrefix; /* Deprecated; not used */ | |
| xmlSchemaValPtr defVal; /* The compiled value constraint */ | |
| xmlSchemaAttributePtr refDecl; /* Deprecated; not used */ | |
| }; | |
| /** | |
| * xmlSchemaAttributeLink: | |
| * Used to build a list of attribute uses on complexType definitions. | |
| * WARNING: Deprecated; not used. | |
| */ | |
| typedef struct _xmlSchemaAttributeLink xmlSchemaAttributeLink; | |
| typedef xmlSchemaAttributeLink *xmlSchemaAttributeLinkPtr; | |
| struct _xmlSchemaAttributeLink { | |
| struct _xmlSchemaAttributeLink *next;/* the next attribute link ... */ | |
| struct _xmlSchemaAttribute *attr;/* the linked attribute */ | |
| }; | |
| /** | |
| * XML_SCHEMAS_WILDCARD_COMPLETE: | |
| * | |
| * If the wildcard is complete. | |
| */ | |
| /** | |
| * xmlSchemaCharValueLink: | |
| * Used to build a list of namespaces on wildcards. | |
| */ | |
| typedef struct _xmlSchemaWildcardNs xmlSchemaWildcardNs; | |
| typedef xmlSchemaWildcardNs *xmlSchemaWildcardNsPtr; | |
| struct _xmlSchemaWildcardNs { | |
| struct _xmlSchemaWildcardNs *next;/* the next constraint link ... */ | |
| const xmlChar *value;/* the value */ | |
| }; | |
| /** | |
| * xmlSchemaWildcard. | |
| * A wildcard. | |
| */ | |
| typedef struct _xmlSchemaWildcard xmlSchemaWildcard; | |
| typedef xmlSchemaWildcard *xmlSchemaWildcardPtr; | |
| struct _xmlSchemaWildcard { | |
| xmlSchemaTypeType type; /* The kind of type */ | |
| const xmlChar *id; /* Deprecated; not used */ | |
| xmlSchemaAnnotPtr annot; | |
| xmlNodePtr node; | |
| int minOccurs; /* Deprecated; not used */ | |
| int maxOccurs; /* Deprecated; not used */ | |
| int processContents; | |
| int any; /* Indicates if the ns constraint is of ##any */ | |
| xmlSchemaWildcardNsPtr nsSet; /* The list of allowed namespaces */ | |
| xmlSchemaWildcardNsPtr negNsSet; /* The negated namespace */ | |
| int flags; | |
| }; | |
| /** | |
| * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED: | |
| * | |
| * The attribute wildcard has been built. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTRGROUP_GLOBAL: | |
| * | |
| * The attribute group has been defined. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTRGROUP_MARKED: | |
| * | |
| * Marks the attr group as marked; used for circular checks. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTRGROUP_REDEFINED: | |
| * | |
| * The attr group was redefined. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ATTRGROUP_HAS_REFS: | |
| * | |
| * Whether this attr. group contains attr. group references. | |
| */ | |
| /** | |
| * An attribute group definition. | |
| * | |
| * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures | |
| * must be kept similar | |
| */ | |
| typedef struct _xmlSchemaAttributeGroup xmlSchemaAttributeGroup; | |
| typedef xmlSchemaAttributeGroup *xmlSchemaAttributeGroupPtr; | |
| struct _xmlSchemaAttributeGroup { | |
| xmlSchemaTypeType type; /* The kind of type */ | |
| struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */ | |
| const xmlChar *name; | |
| const xmlChar *id; | |
| const xmlChar *ref; /* Deprecated; not used */ | |
| const xmlChar *refNs; /* Deprecated; not used */ | |
| xmlSchemaAnnotPtr annot; | |
| xmlSchemaAttributePtr attributes; /* Deprecated; not used */ | |
| xmlNodePtr node; | |
| int flags; | |
| xmlSchemaWildcardPtr attributeWildcard; | |
| const xmlChar *refPrefix; /* Deprecated; not used */ | |
| xmlSchemaAttributeGroupPtr refItem; /* Deprecated; not used */ | |
| const xmlChar *targetNamespace; | |
| void *attrUses; | |
| }; | |
| /** | |
| * xmlSchemaTypeLink: | |
| * Used to build a list of types (e.g. member types of | |
| * simpleType with variety "union"). | |
| */ | |
| typedef struct _xmlSchemaTypeLink xmlSchemaTypeLink; | |
| typedef xmlSchemaTypeLink *xmlSchemaTypeLinkPtr; | |
| struct _xmlSchemaTypeLink { | |
| struct _xmlSchemaTypeLink *next;/* the next type link ... */ | |
| xmlSchemaTypePtr type;/* the linked type */ | |
| }; | |
| /** | |
| * xmlSchemaFacetLink: | |
| * Used to build a list of facets. | |
| */ | |
| typedef struct _xmlSchemaFacetLink xmlSchemaFacetLink; | |
| typedef xmlSchemaFacetLink *xmlSchemaFacetLinkPtr; | |
| struct _xmlSchemaFacetLink { | |
| struct _xmlSchemaFacetLink *next;/* the next facet link ... */ | |
| xmlSchemaFacetPtr facet;/* the linked facet */ | |
| }; | |
| /** | |
| * XML_SCHEMAS_TYPE_MIXED: | |
| * | |
| * the element content type is mixed | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION: | |
| * | |
| * the simple or complex type has a derivation method of "extension". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION: | |
| * | |
| * the simple or complex type has a derivation method of "restriction". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_GLOBAL: | |
| * | |
| * the type is global | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD: | |
| * | |
| * the complexType owns an attribute wildcard, i.e. | |
| * it can be freed by the complexType | |
| */ | |
| /** | |
| * 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_LIST: | |
| * | |
| * the simpleType has a variety of "list". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_VARIETY_UNION: | |
| * | |
| * the simpleType has a variety of "union". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_VARIETY_ATOMIC: | |
| * | |
| * the simpleType has a variety of "union". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_FINAL_EXTENSION: | |
| * | |
| * the complexType has a final of "extension". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_FINAL_RESTRICTION: | |
| * | |
| * the simpleType/complexType has a final of "restriction". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_FINAL_LIST: | |
| * | |
| * the simpleType has a final of "list". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_FINAL_UNION: | |
| * | |
| * the simpleType has a final of "union". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_FINAL_DEFAULT: | |
| * | |
| * the simpleType has a final of "default". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE: | |
| * | |
| * Marks the item as a builtin primitive. | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_MARKED: | |
| * | |
| * Marks the item as marked; used for circular checks. | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_BLOCK_DEFAULT: | |
| * | |
| * the complexType did not specify 'block' so use the default of the | |
| * <schema> item. | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_BLOCK_EXTENSION: | |
| * | |
| * the complexType has a 'block' of "extension". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_BLOCK_RESTRICTION: | |
| * | |
| * the complexType has a 'block' of "restriction". | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_ABSTRACT: | |
| * | |
| * the simple/complexType is abstract. | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_FACETSNEEDVALUE: | |
| * | |
| * indicates if the facets need a computed value | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED: | |
| * | |
| * indicates that the type was typefixed | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_INTERNAL_INVALID: | |
| * | |
| * indicates that the type is invalid | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE: | |
| * | |
| * a whitespace-facet value of "preserve" | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_WHITESPACE_REPLACE: | |
| * | |
| * a whitespace-facet value of "replace" | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE: | |
| * | |
| * a whitespace-facet value of "collapse" | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_HAS_FACETS: | |
| * | |
| * has facets | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_NORMVALUENEEDED: | |
| * | |
| * indicates if the facets (pattern) need a normalized value | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_FIXUP_1: | |
| * | |
| * First stage of fixup was done. | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_REDEFINED: | |
| * | |
| * The type was redefined. | |
| */ | |
| /** | |
| * XML_SCHEMAS_TYPE_REDEFINING: | |
| * | |
| * The type redefines an other type. | |
| */ | |
| /* #define XML_SCHEMAS_TYPE_REDEFINING 1 << 31 */ | |
| /** | |
| * _xmlSchemaType: | |
| * | |
| * Schemas type definition. | |
| */ | |
| struct _xmlSchemaType { | |
| xmlSchemaTypeType type; /* The kind of type */ | |
| struct _xmlSchemaType *next; /* the next type if in a sequence ... */ | |
| const xmlChar *name; | |
| const xmlChar *id ; /* Deprecated; not used */ | |
| const xmlChar *ref; /* Deprecated; not used */ | |
| const xmlChar *refNs; /* Deprecated; not used */ | |
| xmlSchemaAnnotPtr annot; | |
| xmlSchemaTypePtr subtypes; | |
| xmlSchemaAttributePtr attributes; /* Deprecated; not used */ | |
| xmlNodePtr node; | |
| int minOccurs; /* Deprecated; not used */ | |
| int maxOccurs; /* Deprecated; not used */ | |
| int flags; | |
| xmlSchemaContentType contentType; | |
| const xmlChar *base; /* Base type's local name */ | |
| const xmlChar *baseNs; /* Base type's target namespace */ | |
| xmlSchemaTypePtr baseType; /* The base type component */ | |
| xmlSchemaFacetPtr facets; /* Local facets */ | |
| struct _xmlSchemaType *redef; /* Deprecated; not used */ | |
| int recurse; /* Obsolete */ | |
| xmlSchemaAttributeLinkPtr *attributeUses; /* Deprecated; not used */ | |
| xmlSchemaWildcardPtr attributeWildcard; | |
| int builtInType; /* Type of built-in types. */ | |
| xmlSchemaTypeLinkPtr memberTypes; /* member-types if a union type. */ | |
| xmlSchemaFacetLinkPtr facetSet; /* All facets (incl. inherited) */ | |
| const xmlChar *refPrefix; /* Deprecated; not used */ | |
| xmlSchemaTypePtr contentTypeDef; /* Used for the simple content of complex types. | |
| Could we use @subtypes for this? */ | |
| xmlRegexpPtr contModel; /* Holds the automaton of the content model */ | |
| const xmlChar *targetNamespace; | |
| void *attrUses; | |
| }; | |
| /* | |
| * 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_GLOBAL: | |
| * | |
| * the element is global | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_DEFAULT: | |
| * | |
| * the element has a default value | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_FIXED: | |
| * | |
| * the element has a fixed value | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_ABSTRACT: | |
| * | |
| * the element is abstract | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_TOPLEVEL: | |
| * | |
| * the element is top level | |
| * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_REF: | |
| * | |
| * the element is a reference to a type | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_NSDEFAULT: | |
| * | |
| * allow elements in no namespace | |
| * Obsolete, not used anymore. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_INTERNAL_RESOLVED: | |
| * | |
| * this is set when "type", "ref", "substitutionGroup" | |
| * references have been resolved. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_CIRCULAR: | |
| * | |
| * a helper flag for the search of circular references. | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_BLOCK_ABSENT: | |
| * | |
| * the "block" attribute is absent | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_BLOCK_EXTENSION: | |
| * | |
| * disallowed substitutions are absent | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_BLOCK_RESTRICTION: | |
| * | |
| * disallowed substitutions: "restriction" | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION: | |
| * | |
| * disallowed substitutions: "substitution" | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_FINAL_ABSENT: | |
| * | |
| * substitution group exclusions are absent | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_FINAL_EXTENSION: | |
| * | |
| * substitution group exclusions: "extension" | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_FINAL_RESTRICTION: | |
| * | |
| * substitution group exclusions: "restriction" | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD: | |
| * | |
| * the declaration is a substitution group head | |
| */ | |
| /** | |
| * XML_SCHEMAS_ELEM_INTERNAL_CHECKED: | |
| * | |
| * this is set when the elem decl has been checked against | |
| * all constraints | |
| */ | |
| typedef struct _xmlSchemaElement xmlSchemaElement; | |
| typedef xmlSchemaElement *xmlSchemaElementPtr; | |
| struct _xmlSchemaElement { | |
| xmlSchemaTypeType type; /* The kind of type */ | |
| struct _xmlSchemaType *next; /* Not used? */ | |
| const xmlChar *name; | |
| const xmlChar *id; /* Deprecated; not used */ | |
| const xmlChar *ref; /* Deprecated; not used */ | |
| const xmlChar *refNs; /* Deprecated; not used */ | |
| xmlSchemaAnnotPtr annot; | |
| xmlSchemaTypePtr subtypes; /* the type definition */ | |
| xmlSchemaAttributePtr attributes; | |
| xmlNodePtr node; | |
| int minOccurs; /* Deprecated; not used */ | |
| int maxOccurs; /* Deprecated; not used */ | |
| int flags; | |
| const xmlChar *targetNamespace; | |
| const xmlChar *namedType; | |
| const xmlChar *namedTypeNs; | |
| const xmlChar *substGroup; | |
| const xmlChar *substGroupNs; | |
| const xmlChar *scope; | |
| const xmlChar *value; /* The original value of the value constraint. */ | |
| struct _xmlSchemaElement *refDecl; /* This will now be used for the | |
| substitution group affiliation */ | |
| xmlRegexpPtr contModel; /* Obsolete for WXS, maybe used for RelaxNG */ | |
| xmlSchemaContentType contentType; | |
| const xmlChar *refPrefix; /* Deprecated; not used */ | |
| xmlSchemaValPtr defVal; /* The compiled value constraint. */ | |
| void *idcs; /* The identity-constraint defs */ | |
| }; | |
| /* | |
| * XML_SCHEMAS_FACET_UNKNOWN: | |
| * | |
| * unknown facet handling | |
| */ | |
| /* | |
| * XML_SCHEMAS_FACET_PRESERVE: | |
| * | |
| * preserve the type of the facet | |
| */ | |
| /* | |
| * XML_SCHEMAS_FACET_REPLACE: | |
| * | |
| * replace the type of the facet | |
| */ | |
| /* | |
| * XML_SCHEMAS_FACET_COLLAPSE: | |
| * | |
| * collapse the types of the facet | |
| */ | |
| /** | |
| * A facet definition. | |
| */ | |
| struct _xmlSchemaFacet { | |
| xmlSchemaTypeType type; /* The kind of type */ | |
| struct _xmlSchemaFacet *next;/* the next type if in a sequence ... */ | |
| const xmlChar *value; /* The original value */ | |
| const xmlChar *id; /* Obsolete */ | |
| xmlSchemaAnnotPtr annot; | |
| xmlNodePtr node; | |
| int fixed; /* XML_SCHEMAS_FACET_PRESERVE, etc. */ | |
| int whitespace; | |
| xmlSchemaValPtr val; /* The compiled value */ | |
| xmlRegexpPtr regexp; /* The regex for patterns */ | |
| }; | |
| /** | |
| * A notation definition. | |
| */ | |
| typedef struct _xmlSchemaNotation xmlSchemaNotation; | |
| typedef xmlSchemaNotation *xmlSchemaNotationPtr; | |
| struct _xmlSchemaNotation { | |
| xmlSchemaTypeType type; /* The kind of type */ | |
| const xmlChar *name; | |
| xmlSchemaAnnotPtr annot; | |
| const xmlChar *identifier; | |
| const xmlChar *targetNamespace; | |
| }; | |
| /* | |
| * 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_ATTR: | |
| * | |
| * Reflects attributeFormDefault == qualified in | |
| * an XML schema document. | |
| */ | |
| /** | |
| * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION: | |
| * | |
| * the schema has "extension" in the set of finalDefault. | |
| */ | |
| /** | |
| * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION: | |
| * | |
| * the schema has "restriction" in the set of finalDefault. | |
| */ | |
| /** | |
| * XML_SCHEMAS_FINAL_DEFAULT_LIST: | |
| * | |
| * the schema has "list" in the set of finalDefault. | |
| */ | |
| /** | |
| * XML_SCHEMAS_FINAL_DEFAULT_UNION: | |
| * | |
| * the schema has "union" in the set of finalDefault. | |
| */ | |
| /** | |
| * XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION: | |
| * | |
| * the schema has "extension" in the set of blockDefault. | |
| */ | |
| /** | |
| * XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION: | |
| * | |
| * the schema has "restriction" in the set of blockDefault. | |
| */ | |
| /** | |
| * XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION: | |
| * | |
| * the schema has "substitution" in the set of blockDefault. | |
| */ | |
| /** | |
| * XML_SCHEMAS_INCLUDING_CONVERT_NS: | |
| * | |
| * the schema is currently including an other schema with | |
| * no target namespace. | |
| */ | |
| /** | |
| * _xmlSchema: | |
| * | |
| * A Schemas definition | |
| */ | |
| struct _xmlSchema { | |
| const xmlChar *name; /* schema name */ | |
| const xmlChar *targetNamespace; /* the target namespace */ | |
| const xmlChar *version; | |
| const xmlChar *id; /* Obsolete */ | |
| xmlDocPtr doc; | |
| xmlSchemaAnnotPtr annot; | |
| int flags; | |
| xmlHashTablePtr typeDecl; | |
| xmlHashTablePtr attrDecl; | |
| xmlHashTablePtr attrgrpDecl; | |
| xmlHashTablePtr elemDecl; | |
| xmlHashTablePtr notaDecl; | |
| xmlHashTablePtr schemasImports; | |
| void *_private; /* unused by the library for users or bindings */ | |
| xmlHashTablePtr groupDecl; | |
| xmlDictPtr dict; | |
| void *includes; /* the includes, this is opaque for now */ | |
| int preserve; /* whether to free the document */ | |
| int counter; /* used to give anonymous components unique names */ | |
| xmlHashTablePtr idcDef; /* All identity-constraint defs. */ | |
| void *volatiles; /* Obsolete */ | |
| }; | |
| XMLPUBFUN void XMLCALL xmlSchemaFreeType (xmlSchemaTypePtr type); | |
| XMLPUBFUN void XMLCALL xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard); | |
| } | |