aboutsummaryrefslogtreecommitdiff
schemasInternals: internal interfaces for XML Schemas

schemasInternals

schemasInternals - internal interfaces for XML Schemas

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 !

Author(s): Daniel Veillard

Synopsis

#define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION;
#define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION;
#define XML_SCHEMAS_TYPE_FIXUP_1;
#define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION;
#define XML_SCHEMAS_ELEM_CIRCULAR;
#define XML_SCHEMAS_QUALIF_ATTR;
#define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE;
#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION;
#define XML_SCHEMAS_ATTR_USE_REQUIRED;
#define XML_SCHEMAS_FACET_COLLAPSE;
#define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE;
#define XML_SCHEMAS_TYPE_VARIETY_UNION;
#define XML_SCHEMAS_ANY_STRICT;
#define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED;
#define XML_SCHEMAS_QUALIF_ELEM;
#define XML_SCHEMAS_TYPE_VARIETY_LIST;
#define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE;
#define XML_SCHEMAS_ELEM_INTERNAL_CHECKED;
#define XML_SCHEMAS_INCLUDING_CONVERT_NS;
#define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED;
#define XML_SCHEMAS_ATTR_USE_PROHIBITED;
#define XML_SCHEMAS_ELEM_NILLABLE;
#define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION;
#define XML_SCHEMAS_ATTRGROUP_REDEFINED;
#define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD;
#define XML_SCHEMAS_TYPE_BLOCK_DEFAULT;
#define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION;
#define XML_SCHEMAS_TYPE_FINAL_EXTENSION;
#define XML_SCHEMAS_TYPE_REDEFINED;
#define XML_SCHEMAS_ELEM_FIXED;
#define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD;
#define XML_SCHEMAS_TYPE_VARIETY_ATOMIC;
#define XML_SCHEMAS_TYPE_FINAL_LIST;
#define XML_SCHEMAS_ATTR_USE_OPTIONAL;
#define XML_SCHEMAS_ATTR_NSDEFAULT;
#define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE;
#define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION;
#define XML_SCHEMAS_ANYATTR_STRICT;
#define XML_SCHEMAS_FACET_UNKNOWN;
#define XML_SCHEMAS_ATTRGROUP_MARKED;
#define XML_SCHEMAS_FACET_PRESERVE;
#define XML_SCHEMAS_ELEM_BLOCK_EXTENSION;
#define XML_SCHEMAS_ATTR_GLOBAL;
#define XML_SCHEMAS_ANYATTR_SKIP;
#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION;
#define XML_SCHEMAS_ANYATTR_LAX;
#define XML_SCHEMAS_TYPE_GLOBAL;
#define XML_SCHEMAS_TYPE_ABSTRACT;
#define XML_SCHEMAS_TYPE_MIXED;
#define XML_SCHEMAS_ATTR_FIXED;
#define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED;
#define XML_SCHEMAS_ANY_SKIP;
#define XML_SCHEMAS_FINAL_DEFAULT_LIST;
#define XML_SCHEMAS_TYPE_VARIETY_ABSENT;
#define XML_SCHEMAS_ELEM_FINAL_RESTRICTION;
#define XML_SCHEMAS_WILDCARD_COMPLETE;
#define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED;
#define XML_SCHEMAS_ELEM_NSDEFAULT;
#define XML_SCHEMAS_ELEM_GLOBAL;
#define XML_SCHEMAS_ELEM_TOPLEVEL;
#define XML_SCHEMAS_ANY_LAX;
#define XML_SCHEMAS_TYPE_FINAL_RESTRICTION;
#define XML_SCHEMAS_TYPE_HAS_FACETS;
#define XML_SCHEMAS_ELEM_FINAL_EXTENSION;
#define XML_SCHEMAS_TYPE_NORMVALUENEEDED;
#define XML_SCHEMAS_ELEM_FINAL_ABSENT;
#define XML_SCHEMAS_TYPE_BLOCK_EXTENSION;
#define XML_SCHEMAS_TYPE_INTERNAL_INVALID;
#define XML_SCHEMAS_ATTRGROUP_HAS_REFS;
#define XML_SCHEMAS_ELEM_ABSTRACT;
#define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION;
#define XML_SCHEMAS_TYPE_FINAL_UNION;
#define XML_SCHEMAS_TYPE_FINAL_DEFAULT;
#define XML_SCHEMAS_TYPE_FACETSNEEDVALUE;
#define XML_SCHEMAS_FINAL_DEFAULT_UNION;
#define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION;
#define XML_SCHEMAS_FACET_REPLACE;
#define XML_SCHEMAS_ELEM_DEFAULT;
#define XML_SCHEMAS_TYPE_MARKED;
#define XML_SCHEMAS_ELEM_BLOCK_ABSENT;
#define XML_SCHEMAS_ATTRGROUP_GLOBAL;
#define XML_SCHEMAS_ELEM_REF;
typedef xmlSchemaAttributeGroup * xmlSchemaAttributeGroupPtr;
typedef xmlSchemaElement * xmlSchemaElementPtr;
typedef xmlSchemaFacetLink * xmlSchemaFacetLinkPtr;
typedef struct _xmlSchemaVal xmlSchemaVal;
typedef xmlSchemaAttributeLink * xmlSchemaAttributeLinkPtr;
typedef struct _xmlSchemaType xmlSchemaType;
typedef struct _xmlSchemaAnnot xmlSchemaAnnot;
typedef xmlSchemaAnnot * xmlSchemaAnnotPtr;
typedef struct _xmlSchemaElement xmlSchemaElement;
typedef struct _xmlSchemaWildcard xmlSchemaWildcard;
typedef xmlSchemaWildcard * xmlSchemaWildcardPtr;
typedef xmlSchemaFacet * xmlSchemaFacetPtr;
typedef struct _xmlSchemaTypeLink xmlSchemaTypeLink;
typedef struct _xmlSchemaAttributeLink xmlSchemaAttributeLink;
typedef xmlSchemaVal * xmlSchemaValPtr;
typedef struct _xmlSchemaFacetLink xmlSchemaFacetLink;
typedef xmlSchemaWildcardNs * xmlSchemaWildcardNsPtr;
typedef struct _xmlSchemaAttributeGroup xmlSchemaAttributeGroup;
typedef xmlSchemaTypeLink * xmlSchemaTypeLinkPtr;
typedef struct _xmlSchemaWildcardNs xmlSchemaWildcardNs;
typedef xmlSchemaAttribute * xmlSchemaAttributePtr;
typedef xmlSchemaNotation * xmlSchemaNotationPtr;
typedef enum xmlSchemaValType;
typedef xmlSchemaType * xmlSchemaTypePtr;
typedef struct _xmlSchemaNotation xmlSchemaNotation;
typedef struct _xmlSchemaFacet xmlSchemaFacet;
typedef enum xmlSchemaContentType;
typedef enum xmlSchemaTypeType;
typedef struct _xmlSchemaAttribute xmlSchemaAttribute;
void	xmlSchemaFreeType		(xmlSchemaTypePtr type);
void	xmlSchemaFreeWildcard		(xmlSchemaWildcardPtr wildcard);

Description

Details

Macro XML_SCHEMAS_ANYATTR_LAX

#define XML_SCHEMAS_ANYATTR_LAX;

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


Macro XML_SCHEMAS_ANYATTR_SKIP

#define XML_SCHEMAS_ANYATTR_SKIP;

Skip unknown attribute from validation Obsolete, not used anymore.


Macro XML_SCHEMAS_ANYATTR_STRICT

#define XML_SCHEMAS_ANYATTR_STRICT;

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


Macro XML_SCHEMAS_ANY_LAX

#define XML_SCHEMAS_ANY_LAX;

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


Macro XML_SCHEMAS_ANY_SKIP

#define XML_SCHEMAS_ANY_SKIP;

Skip unknown attribute from validation


Macro XML_SCHEMAS_ANY_STRICT

#define XML_SCHEMAS_ANY_STRICT;

Used by wildcards. Apply strict validation rules


Macro XML_SCHEMAS_ATTRGROUP_GLOBAL

#define XML_SCHEMAS_ATTRGROUP_GLOBAL;

The attribute group has been defined.


Macro XML_SCHEMAS_ATTRGROUP_HAS_REFS

#define XML_SCHEMAS_ATTRGROUP_HAS_REFS;

Whether this attr. group contains attr. group references.


Macro XML_SCHEMAS_ATTRGROUP_MARKED

#define XML_SCHEMAS_ATTRGROUP_MARKED;

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


Macro XML_SCHEMAS_ATTRGROUP_REDEFINED

#define XML_SCHEMAS_ATTRGROUP_REDEFINED;

The attr group was redefined.


Macro XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED

#define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED;

The attribute wildcard has been built.


Macro XML_SCHEMAS_ATTR_FIXED

#define XML_SCHEMAS_ATTR_FIXED;

the attribute has a fixed value


Macro XML_SCHEMAS_ATTR_GLOBAL

#define XML_SCHEMAS_ATTR_GLOBAL;

allow elements in no namespace


Macro XML_SCHEMAS_ATTR_INTERNAL_RESOLVED

#define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED;

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


Macro XML_SCHEMAS_ATTR_NSDEFAULT

#define XML_SCHEMAS_ATTR_NSDEFAULT;

allow elements in no namespace


Macro XML_SCHEMAS_ATTR_USE_OPTIONAL

#define XML_SCHEMAS_ATTR_USE_OPTIONAL;

The attribute is optional.


Macro XML_SCHEMAS_ATTR_USE_PROHIBITED

#define XML_SCHEMAS_ATTR_USE_PROHIBITED;

Used by wildcards. The attribute is prohibited.


Macro XML_SCHEMAS_ATTR_USE_REQUIRED

#define XML_SCHEMAS_ATTR_USE_REQUIRED;

The attribute is required.


Macro XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION

#define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION;

the schema has "extension" in the set of blockDefault.


Macro XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION

#define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION;

the schema has "restriction" in the set of blockDefault.


Macro XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION

#define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION;

the schema has "substitution" in the set of blockDefault.


Macro XML_SCHEMAS_ELEM_ABSTRACT

#define XML_SCHEMAS_ELEM_ABSTRACT;

the element is abstract


Macro XML_SCHEMAS_ELEM_BLOCK_ABSENT

#define XML_SCHEMAS_ELEM_BLOCK_ABSENT;

the "block" attribute is absent


Macro XML_SCHEMAS_ELEM_BLOCK_EXTENSION

#define XML_SCHEMAS_ELEM_BLOCK_EXTENSION;

disallowed substitutions are absent


Macro XML_SCHEMAS_ELEM_BLOCK_RESTRICTION

#define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION;

disallowed substitutions: "restriction"


Macro XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION

#define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION;

disallowed substitutions: "substitution"


Macro XML_SCHEMAS_ELEM_CIRCULAR

#define XML_SCHEMAS_ELEM_CIRCULAR;

a helper flag for the search of circular references.


Macro XML_SCHEMAS_ELEM_DEFAULT

#define XML_SCHEMAS_ELEM_DEFAULT;

the element has a default value


Macro XML_SCHEMAS_ELEM_FINAL_ABSENT

#define XML_SCHEMAS_ELEM_FINAL_ABSENT;

substitution group exclusions are absent


Macro XML_SCHEMAS_ELEM_FINAL_EXTENSION

#define XML_SCHEMAS_ELEM_FINAL_EXTENSION;

substitution group exclusions: "extension"


Macro XML_SCHEMAS_ELEM_FINAL_RESTRICTION

#define XML_SCHEMAS_ELEM_FINAL_RESTRICTION;

substitution group exclusions: "restriction"


Macro XML_SCHEMAS_ELEM_FIXED

#define XML_SCHEMAS_ELEM_FIXED;

the element has a fixed value


Macro XML_SCHEMAS_ELEM_GLOBAL

#define XML_SCHEMAS_ELEM_GLOBAL;

the element is global


Macro XML_SCHEMAS_ELEM_INTERNAL_CHECKED

#define XML_SCHEMAS_ELEM_INTERNAL_CHECKED;

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


Macro XML_SCHEMAS_ELEM_INTERNAL_RESOLVED

#define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED;

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


Macro XML_SCHEMAS_ELEM_NILLABLE

#define XML_SCHEMAS_ELEM_NILLABLE;

the element is nillable


Macro XML_SCHEMAS_ELEM_NSDEFAULT

#define XML_SCHEMAS_ELEM_NSDEFAULT;

allow elements in no namespace Obsolete, not used anymore.


Macro XML_SCHEMAS_ELEM_REF

#define XML_SCHEMAS_ELEM_REF;

the element is a reference to a type


Macro XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD

#define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD;

the declaration is a substitution group head


Macro XML_SCHEMAS_ELEM_TOPLEVEL

#define XML_SCHEMAS_ELEM_TOPLEVEL;

the element is top level obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead


Macro XML_SCHEMAS_FACET_COLLAPSE

#define XML_SCHEMAS_FACET_COLLAPSE;

collapse the types of the facet


Macro XML_SCHEMAS_FACET_PRESERVE

#define XML_SCHEMAS_FACET_PRESERVE;

preserve the type of the facet


Macro XML_SCHEMAS_FACET_REPLACE

#define XML_SCHEMAS_FACET_REPLACE;

replace the type of the facet


Macro XML_SCHEMAS_FACET_UNKNOWN

#define XML_SCHEMAS_FACET_UNKNOWN;

unknown facet handling


Macro XML_SCHEMAS_FINAL_DEFAULT_EXTENSION

#define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION;

the schema has "extension" in the set of finalDefault.


Macro XML_SCHEMAS_FINAL_DEFAULT_LIST

#define XML_SCHEMAS_FINAL_DEFAULT_LIST;

the schema has "list" in the set of finalDefault.


Macro XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION

#define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION;

the schema has "restriction" in the set of finalDefault.


Macro XML_SCHEMAS_FINAL_DEFAULT_UNION

#define XML_SCHEMAS_FINAL_DEFAULT_UNION;

the schema has "union" in the set of finalDefault.


Macro XML_SCHEMAS_INCLUDING_CONVERT_NS

#define XML_SCHEMAS_INCLUDING_CONVERT_NS;

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


Macro XML_SCHEMAS_QUALIF_ATTR

#define XML_SCHEMAS_QUALIF_ATTR;

Reflects attributeFormDefault == qualified in an XML schema document.


Macro XML_SCHEMAS_QUALIF_ELEM

#define XML_SCHEMAS_QUALIF_ELEM;

Reflects elementFormDefault == qualified in an XML schema document.


Macro XML_SCHEMAS_TYPE_ABSTRACT

#define XML_SCHEMAS_TYPE_ABSTRACT;

the simple/complexType is abstract.


Macro XML_SCHEMAS_TYPE_BLOCK_DEFAULT

#define XML_SCHEMAS_TYPE_BLOCK_DEFAULT;

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


Macro XML_SCHEMAS_TYPE_BLOCK_EXTENSION

#define XML_SCHEMAS_TYPE_BLOCK_EXTENSION;

the complexType has a 'block' of "extension".


Macro XML_SCHEMAS_TYPE_BLOCK_RESTRICTION

#define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION;

the complexType has a 'block' of "restriction".


Macro XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE

#define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE;

Marks the item as a builtin primitive.


Macro XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION

#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION;

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


Macro XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION

#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION;

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


Macro XML_SCHEMAS_TYPE_FACETSNEEDVALUE

#define XML_SCHEMAS_TYPE_FACETSNEEDVALUE;

indicates if the facets need a computed value


Macro XML_SCHEMAS_TYPE_FINAL_DEFAULT

#define XML_SCHEMAS_TYPE_FINAL_DEFAULT;

the simpleType has a final of "default".


Macro XML_SCHEMAS_TYPE_FINAL_EXTENSION

#define XML_SCHEMAS_TYPE_FINAL_EXTENSION;

the complexType has a final of "extension".


Macro XML_SCHEMAS_TYPE_FINAL_LIST

#define XML_SCHEMAS_TYPE_FINAL_LIST;

the simpleType has a final of "list".


Macro XML_SCHEMAS_TYPE_FINAL_RESTRICTION

#define XML_SCHEMAS_TYPE_FINAL_RESTRICTION;

the simpleType/complexType has a final of "restriction".


Macro XML_SCHEMAS_TYPE_FINAL_UNION

#define XML_SCHEMAS_TYPE_FINAL_UNION;

the simpleType has a final of "union".


Macro XML_SCHEMAS_TYPE_FIXUP_1

#define XML_SCHEMAS_TYPE_FIXUP_1;

First stage of fixup was done.


Macro XML_SCHEMAS_TYPE_GLOBAL

#define XML_SCHEMAS_TYPE_GLOBAL;

the type is global


Macro XML_SCHEMAS_TYPE_HAS_FACETS

#define XML_SCHEMAS_TYPE_HAS_FACETS;

has facets


Macro XML_SCHEMAS_TYPE_INTERNAL_INVALID

#define XML_SCHEMAS_TYPE_INTERNAL_INVALID;

indicates that the type is invalid


Macro XML_SCHEMAS_TYPE_INTERNAL_RESOLVED

#define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED;

indicates that the type was typefixed


Macro XML_SCHEMAS_TYPE_MARKED

#define XML_SCHEMAS_TYPE_MARKED;

Marks the item as marked; used for circular checks.


Macro XML_SCHEMAS_TYPE_MIXED

#define XML_SCHEMAS_TYPE_MIXED;

the element content type is mixed


Macro XML_SCHEMAS_TYPE_NORMVALUENEEDED

#define XML_SCHEMAS_TYPE_NORMVALUENEEDED;

indicates if the facets (pattern) need a normalized value


Macro XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD

#define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD;

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


Macro XML_SCHEMAS_TYPE_REDEFINED

#define XML_SCHEMAS_TYPE_REDEFINED;

The type was redefined.


Macro XML_SCHEMAS_TYPE_VARIETY_ABSENT

#define 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.


Macro XML_SCHEMAS_TYPE_VARIETY_ATOMIC

#define XML_SCHEMAS_TYPE_VARIETY_ATOMIC;

the simpleType has a variety of "union".


Macro XML_SCHEMAS_TYPE_VARIETY_LIST

#define XML_SCHEMAS_TYPE_VARIETY_LIST;

the simpleType has a variety of "list".


Macro XML_SCHEMAS_TYPE_VARIETY_UNION

#define XML_SCHEMAS_TYPE_VARIETY_UNION;

the simpleType has a variety of "union".


Macro XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE

#define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE;

a whitespace-facet value of "collapse"


Macro XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE

#define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE;

a whitespace-facet value of "preserve"


Macro XML_SCHEMAS_TYPE_WHITESPACE_REPLACE

#define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE;

a whitespace-facet value of "replace"


Macro XML_SCHEMAS_WILDCARD_COMPLETE

#define XML_SCHEMAS_WILDCARD_COMPLETE;

If the wildcard is complete.


Structure xmlSchemaAnnot

struct _xmlSchemaAnnot {
    struct _xmlSchemaAnnot *	next
    xmlNodePtr	content	: the annotation
} xmlSchemaAnnot;


Typedef xmlSchemaAnnotPtr

xmlSchemaAnnot * xmlSchemaAnnotPtr;


Structure xmlSchemaAttribute

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
} xmlSchemaAttribute;


Structure xmlSchemaAttributeGroup

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
} xmlSchemaAttributeGroup;


Typedef xmlSchemaAttributeGroupPtr

xmlSchemaAttributeGroup * xmlSchemaAttributeGroupPtr;


Structure xmlSchemaAttributeLink

struct _xmlSchemaAttributeLink {
    struct _xmlSchemaAttributeLink *	next	: the next attribute link ...
    struct _xmlSchemaAttribute *	attr	: the linked attribute
} xmlSchemaAttributeLink;


Typedef xmlSchemaAttributeLinkPtr

xmlSchemaAttributeLink * xmlSchemaAttributeLinkPtr;


Typedef xmlSchemaAttributePtr

xmlSchemaAttribute * xmlSchemaAttributePtr;



Structure xmlSchemaElement

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
} xmlSchemaElement;


Typedef xmlSchemaElementPtr

xmlSchemaElement * xmlSchemaElementPtr;


Structure xmlSchemaFacet

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
} xmlSchemaFacet;


Structure xmlSchemaFacetLink

struct _xmlSchemaFacetLink {
    struct _xmlSchemaFacetLink *	next	: the next facet link ...
    xmlSchemaFacetPtr	facet	: the linked facet
} xmlSchemaFacetLink;


Typedef xmlSchemaFacetLinkPtr

xmlSchemaFacetLink * xmlSchemaFacetLinkPtr;


Typedef xmlSchemaFacetPtr

xmlSchemaFacet * xmlSchemaFacetPtr;


Structure xmlSchemaNotation

struct _xmlSchemaNotation {
    xmlSchemaTypeType	type	: The kind of type
    const xmlChar *	name
    xmlSchemaAnnotPtr	annot
    const xmlChar *	identifier
    const xmlChar *	targetNamespace
} xmlSchemaNotation;


Typedef xmlSchemaNotationPtr

xmlSchemaNotation * xmlSchemaNotationPtr;


Structure xmlSchemaType

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
    xmlRegexpPtr	contModel	: Holds the automaton of the content model
    const xmlChar *	targetNamespace
    void *	attrUses
} xmlSchemaType;


Structure xmlSchemaTypeLink

struct _xmlSchemaTypeLink {
    struct _xmlSchemaTypeLink *	next	: the next type link ...
    xmlSchemaTypePtr	type	: the linked type
} xmlSchemaTypeLink;


Typedef xmlSchemaTypeLinkPtr

xmlSchemaTypeLink * xmlSchemaTypeLinkPtr;


Typedef xmlSchemaTypePtr

xmlSchemaType * xmlSchemaTypePtr;



Structure xmlSchemaVal

struct _xmlSchemaVal {
The content of this structure is not made public by the API.
} xmlSchemaVal;


Typedef xmlSchemaValPtr

xmlSchemaVal * xmlSchemaValPtr;



Structure xmlSchemaWildcard

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
} xmlSchemaWildcard;


Structure xmlSchemaWildcardNs

struct _xmlSchemaWildcardNs {
    struct _xmlSchemaWildcardNs *	next	: the next constraint link ...
    const xmlChar *	value	: the value
} xmlSchemaWildcardNs;


Typedef xmlSchemaWildcardNsPtr

xmlSchemaWildcardNs * xmlSchemaWildcardNsPtr;


Typedef xmlSchemaWildcardPtr

xmlSchemaWildcard * xmlSchemaWildcardPtr;


xmlSchemaFreeType ()

void	xmlSchemaFreeType		(xmlSchemaTypePtr type)

Deallocate a Schema Type structure.

type:a schema type structure

xmlSchemaFreeWildcard ()

void	xmlSchemaFreeWildcard		(xmlSchemaWildcardPtr wildcard)

Deallocates a wildcard structure.

wildcard:a wildcard structure