ReactOS  0.4.15-dev-1177-g6cb3b62
schemasInternals.h
Go to the documentation of this file.
1 /*
2  * Summary: internal interfaces for XML Schemas
3  * Description: internal interfaces for the XML Schemas handling
4  * and schema validity checking
5  * The Schemas development is a Work In Progress.
6  * Some of those interfaces are not guaranteed to be API or ABI stable !
7  *
8  * Copy: See Copyright for the status of this software.
9  *
10  * Author: Daniel Veillard
11  */
12 
13 
14 #ifndef __XML_SCHEMA_INTERNALS_H__
15 #define __XML_SCHEMA_INTERNALS_H__
16 
17 #include <libxml/xmlversion.h>
18 
19 #ifdef LIBXML_SCHEMAS_ENABLED
20 
21 #include <libxml/xmlregexp.h>
22 #include <libxml/hash.h>
23 #include <libxml/dict.h>
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 typedef enum {
30  XML_SCHEMAS_UNKNOWN = 0,
31  XML_SCHEMAS_STRING = 1,
32  XML_SCHEMAS_NORMSTRING = 2,
33  XML_SCHEMAS_DECIMAL = 3,
34  XML_SCHEMAS_TIME = 4,
35  XML_SCHEMAS_GDAY = 5,
36  XML_SCHEMAS_GMONTH = 6,
37  XML_SCHEMAS_GMONTHDAY = 7,
38  XML_SCHEMAS_GYEAR = 8,
39  XML_SCHEMAS_GYEARMONTH = 9,
40  XML_SCHEMAS_DATE = 10,
41  XML_SCHEMAS_DATETIME = 11,
42  XML_SCHEMAS_DURATION = 12,
43  XML_SCHEMAS_FLOAT = 13,
44  XML_SCHEMAS_DOUBLE = 14,
45  XML_SCHEMAS_BOOLEAN = 15,
46  XML_SCHEMAS_TOKEN = 16,
47  XML_SCHEMAS_LANGUAGE = 17,
48  XML_SCHEMAS_NMTOKEN = 18,
49  XML_SCHEMAS_NMTOKENS = 19,
50  XML_SCHEMAS_NAME = 20,
51  XML_SCHEMAS_QNAME = 21,
52  XML_SCHEMAS_NCNAME = 22,
53  XML_SCHEMAS_ID = 23,
54  XML_SCHEMAS_IDREF = 24,
55  XML_SCHEMAS_IDREFS = 25,
56  XML_SCHEMAS_ENTITY = 26,
57  XML_SCHEMAS_ENTITIES = 27,
58  XML_SCHEMAS_NOTATION = 28,
59  XML_SCHEMAS_ANYURI = 29,
60  XML_SCHEMAS_INTEGER = 30,
61  XML_SCHEMAS_NPINTEGER = 31,
62  XML_SCHEMAS_NINTEGER = 32,
63  XML_SCHEMAS_NNINTEGER = 33,
64  XML_SCHEMAS_PINTEGER = 34,
65  XML_SCHEMAS_INT = 35,
66  XML_SCHEMAS_UINT = 36,
67  XML_SCHEMAS_LONG = 37,
68  XML_SCHEMAS_ULONG = 38,
69  XML_SCHEMAS_SHORT = 39,
70  XML_SCHEMAS_USHORT = 40,
71  XML_SCHEMAS_BYTE = 41,
72  XML_SCHEMAS_UBYTE = 42,
73  XML_SCHEMAS_HEXBINARY = 43,
74  XML_SCHEMAS_BASE64BINARY = 44,
75  XML_SCHEMAS_ANYTYPE = 45,
76  XML_SCHEMAS_ANYSIMPLETYPE = 46
77 } xmlSchemaValType;
78 
79 /*
80  * XML Schemas defines multiple type of types.
81  */
82 typedef enum {
83  XML_SCHEMA_TYPE_BASIC = 1, /* A built-in datatype */
84  XML_SCHEMA_TYPE_ANY,
85  XML_SCHEMA_TYPE_FACET,
86  XML_SCHEMA_TYPE_SIMPLE,
87  XML_SCHEMA_TYPE_COMPLEX,
88  XML_SCHEMA_TYPE_SEQUENCE = 6,
89  XML_SCHEMA_TYPE_CHOICE,
90  XML_SCHEMA_TYPE_ALL,
91  XML_SCHEMA_TYPE_SIMPLE_CONTENT,
92  XML_SCHEMA_TYPE_COMPLEX_CONTENT,
93  XML_SCHEMA_TYPE_UR,
94  XML_SCHEMA_TYPE_RESTRICTION,
95  XML_SCHEMA_TYPE_EXTENSION,
96  XML_SCHEMA_TYPE_ELEMENT,
97  XML_SCHEMA_TYPE_ATTRIBUTE,
98  XML_SCHEMA_TYPE_ATTRIBUTEGROUP,
99  XML_SCHEMA_TYPE_GROUP,
100  XML_SCHEMA_TYPE_NOTATION,
101  XML_SCHEMA_TYPE_LIST,
102  XML_SCHEMA_TYPE_UNION,
103  XML_SCHEMA_TYPE_ANY_ATTRIBUTE,
104  XML_SCHEMA_TYPE_IDC_UNIQUE,
105  XML_SCHEMA_TYPE_IDC_KEY,
106  XML_SCHEMA_TYPE_IDC_KEYREF,
107  XML_SCHEMA_TYPE_PARTICLE = 25,
108  XML_SCHEMA_TYPE_ATTRIBUTE_USE,
109  XML_SCHEMA_FACET_MININCLUSIVE = 1000,
110  XML_SCHEMA_FACET_MINEXCLUSIVE,
111  XML_SCHEMA_FACET_MAXINCLUSIVE,
112  XML_SCHEMA_FACET_MAXEXCLUSIVE,
113  XML_SCHEMA_FACET_TOTALDIGITS,
114  XML_SCHEMA_FACET_FRACTIONDIGITS,
115  XML_SCHEMA_FACET_PATTERN,
116  XML_SCHEMA_FACET_ENUMERATION,
117  XML_SCHEMA_FACET_WHITESPACE,
118  XML_SCHEMA_FACET_LENGTH,
119  XML_SCHEMA_FACET_MAXLENGTH,
120  XML_SCHEMA_FACET_MINLENGTH,
121  XML_SCHEMA_EXTRA_QNAMEREF = 2000,
122  XML_SCHEMA_EXTRA_ATTR_USE_PROHIB
123 } xmlSchemaTypeType;
124 
125 typedef enum {
126  XML_SCHEMA_CONTENT_UNKNOWN = 0,
127  XML_SCHEMA_CONTENT_EMPTY = 1,
128  XML_SCHEMA_CONTENT_ELEMENTS,
129  XML_SCHEMA_CONTENT_MIXED,
130  XML_SCHEMA_CONTENT_SIMPLE,
131  XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS, /* Obsolete */
132  XML_SCHEMA_CONTENT_BASIC,
133  XML_SCHEMA_CONTENT_ANY
134 } xmlSchemaContentType;
135 
136 typedef struct _xmlSchemaVal xmlSchemaVal;
137 typedef xmlSchemaVal *xmlSchemaValPtr;
138 
139 typedef struct _xmlSchemaType xmlSchemaType;
140 typedef xmlSchemaType *xmlSchemaTypePtr;
141 
142 typedef struct _xmlSchemaFacet xmlSchemaFacet;
143 typedef xmlSchemaFacet *xmlSchemaFacetPtr;
144 
148 typedef struct _xmlSchemaAnnot xmlSchemaAnnot;
149 typedef xmlSchemaAnnot *xmlSchemaAnnotPtr;
150 struct _xmlSchemaAnnot {
151  struct _xmlSchemaAnnot *next;
152  xmlNodePtr content; /* the annotation */
153 };
154 
161 #define XML_SCHEMAS_ANYATTR_SKIP 1
162 
168 #define XML_SCHEMAS_ANYATTR_LAX 2
169 
175 #define XML_SCHEMAS_ANYATTR_STRICT 3
176 
181 #define XML_SCHEMAS_ANY_SKIP 1
182 
188 #define XML_SCHEMAS_ANY_LAX 2
189 
195 #define XML_SCHEMAS_ANY_STRICT 3
196 
202 #define XML_SCHEMAS_ATTR_USE_PROHIBITED 0
203 
208 #define XML_SCHEMAS_ATTR_USE_REQUIRED 1
209 
214 #define XML_SCHEMAS_ATTR_USE_OPTIONAL 2
215 
220 #define XML_SCHEMAS_ATTR_GLOBAL 1 << 0
221 
226 #define XML_SCHEMAS_ATTR_NSDEFAULT 1 << 7
227 
233 #define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED 1 << 8
234 
239 #define XML_SCHEMAS_ATTR_FIXED 1 << 9
240 
246 typedef struct _xmlSchemaAttribute xmlSchemaAttribute;
247 typedef xmlSchemaAttribute *xmlSchemaAttributePtr;
248 struct _xmlSchemaAttribute {
249  xmlSchemaTypeType type;
250  struct _xmlSchemaAttribute *next; /* the next attribute (not used?) */
251  const xmlChar *name; /* the name of the declaration */
252  const xmlChar *id; /* Deprecated; not used */
253  const xmlChar *ref; /* Deprecated; not used */
254  const xmlChar *refNs; /* Deprecated; not used */
255  const xmlChar *typeName; /* the local name of the type definition */
256  const xmlChar *typeNs; /* the ns URI of the type definition */
257  xmlSchemaAnnotPtr annot;
258 
259  xmlSchemaTypePtr base; /* Deprecated; not used */
260  int occurs; /* Deprecated; not used */
261  const xmlChar *defValue; /* The initial value of the value constraint */
262  xmlSchemaTypePtr subtypes; /* the type definition */
264  const xmlChar *targetNamespace;
265  int flags;
266  const xmlChar *refPrefix; /* Deprecated; not used */
267  xmlSchemaValPtr defVal; /* The compiled value constraint */
268  xmlSchemaAttributePtr refDecl; /* Deprecated; not used */
269 };
270 
276 typedef struct _xmlSchemaAttributeLink xmlSchemaAttributeLink;
277 typedef xmlSchemaAttributeLink *xmlSchemaAttributeLinkPtr;
278 struct _xmlSchemaAttributeLink {
279  struct _xmlSchemaAttributeLink *next;/* the next attribute link ... */
280  struct _xmlSchemaAttribute *attr;/* the linked attribute */
281 };
282 
288 #define XML_SCHEMAS_WILDCARD_COMPLETE 1 << 0
289 
294 typedef struct _xmlSchemaWildcardNs xmlSchemaWildcardNs;
295 typedef xmlSchemaWildcardNs *xmlSchemaWildcardNsPtr;
296 struct _xmlSchemaWildcardNs {
297  struct _xmlSchemaWildcardNs *next;/* the next constraint link ... */
298  const xmlChar *value;/* the value */
299 };
300 
305 typedef struct _xmlSchemaWildcard xmlSchemaWildcard;
306 typedef xmlSchemaWildcard *xmlSchemaWildcardPtr;
307 struct _xmlSchemaWildcard {
308  xmlSchemaTypeType type; /* The kind of type */
309  const xmlChar *id; /* Deprecated; not used */
310  xmlSchemaAnnotPtr annot;
312  int minOccurs; /* Deprecated; not used */
313  int maxOccurs; /* Deprecated; not used */
314  int processContents;
315  int any; /* Indicates if the ns constraint is of ##any */
316  xmlSchemaWildcardNsPtr nsSet; /* The list of allowed namespaces */
317  xmlSchemaWildcardNsPtr negNsSet; /* The negated namespace */
318  int flags;
319 };
320 
326 #define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED 1 << 0
327 
332 #define XML_SCHEMAS_ATTRGROUP_GLOBAL 1 << 1
333 
338 #define XML_SCHEMAS_ATTRGROUP_MARKED 1 << 2
339 
345 #define XML_SCHEMAS_ATTRGROUP_REDEFINED 1 << 3
346 
351 #define XML_SCHEMAS_ATTRGROUP_HAS_REFS 1 << 4
352 
359 typedef struct _xmlSchemaAttributeGroup xmlSchemaAttributeGroup;
360 typedef xmlSchemaAttributeGroup *xmlSchemaAttributeGroupPtr;
361 struct _xmlSchemaAttributeGroup {
362  xmlSchemaTypeType type; /* The kind of type */
363  struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */
364  const xmlChar *name;
365  const xmlChar *id;
366  const xmlChar *ref; /* Deprecated; not used */
367  const xmlChar *refNs; /* Deprecated; not used */
368  xmlSchemaAnnotPtr annot;
369 
370  xmlSchemaAttributePtr attributes; /* Deprecated; not used */
372  int flags;
373  xmlSchemaWildcardPtr attributeWildcard;
374  const xmlChar *refPrefix; /* Deprecated; not used */
375  xmlSchemaAttributeGroupPtr refItem; /* Deprecated; not used */
376  const xmlChar *targetNamespace;
377  void *attrUses;
378 };
379 
385 typedef struct _xmlSchemaTypeLink xmlSchemaTypeLink;
386 typedef xmlSchemaTypeLink *xmlSchemaTypeLinkPtr;
387 struct _xmlSchemaTypeLink {
388  struct _xmlSchemaTypeLink *next;/* the next type link ... */
389  xmlSchemaTypePtr type;/* the linked type */
390 };
391 
396 typedef struct _xmlSchemaFacetLink xmlSchemaFacetLink;
397 typedef xmlSchemaFacetLink *xmlSchemaFacetLinkPtr;
398 struct _xmlSchemaFacetLink {
399  struct _xmlSchemaFacetLink *next;/* the next facet link ... */
400  xmlSchemaFacetPtr facet;/* the linked facet */
401 };
402 
408 #define XML_SCHEMAS_TYPE_MIXED 1 << 0
409 
414 #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION 1 << 1
415 
420 #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION 1 << 2
421 
426 #define XML_SCHEMAS_TYPE_GLOBAL 1 << 3
427 
433 #define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD 1 << 4 /* Obsolete. */
434 
442 #define XML_SCHEMAS_TYPE_VARIETY_ABSENT 1 << 5
443 
448 #define XML_SCHEMAS_TYPE_VARIETY_LIST 1 << 6
449 
454 #define XML_SCHEMAS_TYPE_VARIETY_UNION 1 << 7
455 
460 #define XML_SCHEMAS_TYPE_VARIETY_ATOMIC 1 << 8
461 
466 #define XML_SCHEMAS_TYPE_FINAL_EXTENSION 1 << 9
467 
472 #define XML_SCHEMAS_TYPE_FINAL_RESTRICTION 1 << 10
473 
478 #define XML_SCHEMAS_TYPE_FINAL_LIST 1 << 11
479 
484 #define XML_SCHEMAS_TYPE_FINAL_UNION 1 << 12
485 
490 #define XML_SCHEMAS_TYPE_FINAL_DEFAULT 1 << 13
491 
496 #define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE 1 << 14
497 
502 #define XML_SCHEMAS_TYPE_MARKED 1 << 16
503 
509 #define XML_SCHEMAS_TYPE_BLOCK_DEFAULT 1 << 17
510 
515 #define XML_SCHEMAS_TYPE_BLOCK_EXTENSION 1 << 18
516 
521 #define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION 1 << 19
522 
527 #define XML_SCHEMAS_TYPE_ABSTRACT 1 << 20
528 
533 #define XML_SCHEMAS_TYPE_FACETSNEEDVALUE 1 << 21
534 
539 #define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED 1 << 22
540 
545 #define XML_SCHEMAS_TYPE_INTERNAL_INVALID 1 << 23
546 
551 #define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE 1 << 24
552 
557 #define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE 1 << 25
558 
563 #define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE 1 << 26
564 
569 #define XML_SCHEMAS_TYPE_HAS_FACETS 1 << 27
570 
575 #define XML_SCHEMAS_TYPE_NORMVALUENEEDED 1 << 28
576 
582 #define XML_SCHEMAS_TYPE_FIXUP_1 1 << 29
583 
589 #define XML_SCHEMAS_TYPE_REDEFINED 1 << 30
590 
595 /* #define XML_SCHEMAS_TYPE_REDEFINING 1 << 31 */
596 
602 struct _xmlSchemaType {
603  xmlSchemaTypeType type; /* The kind of type */
604  struct _xmlSchemaType *next; /* the next type if in a sequence ... */
605  const xmlChar *name;
606  const xmlChar *id ; /* Deprecated; not used */
607  const xmlChar *ref; /* Deprecated; not used */
608  const xmlChar *refNs; /* Deprecated; not used */
609  xmlSchemaAnnotPtr annot;
610  xmlSchemaTypePtr subtypes;
611  xmlSchemaAttributePtr attributes; /* Deprecated; not used */
613  int minOccurs; /* Deprecated; not used */
614  int maxOccurs; /* Deprecated; not used */
615 
616  int flags;
617  xmlSchemaContentType contentType;
618  const xmlChar *base; /* Base type's local name */
619  const xmlChar *baseNs; /* Base type's target namespace */
620  xmlSchemaTypePtr baseType; /* The base type component */
621  xmlSchemaFacetPtr facets; /* Local facets */
622  struct _xmlSchemaType *redef; /* Deprecated; not used */
623  int recurse; /* Obsolete */
624  xmlSchemaAttributeLinkPtr *attributeUses; /* Deprecated; not used */
625  xmlSchemaWildcardPtr attributeWildcard;
626  int builtInType; /* Type of built-in types. */
627  xmlSchemaTypeLinkPtr memberTypes; /* member-types if a union type. */
628  xmlSchemaFacetLinkPtr facetSet; /* All facets (incl. inherited) */
629  const xmlChar *refPrefix; /* Deprecated; not used */
630  xmlSchemaTypePtr contentTypeDef; /* Used for the simple content of complex types.
631  Could we use @subtypes for this? */
632  xmlRegexpPtr contModel; /* Holds the automaton of the content model */
633  const xmlChar *targetNamespace;
634  void *attrUses;
635 };
636 
637 /*
638  * xmlSchemaElement:
639  * An element definition.
640  *
641  * xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of
642  * structures must be kept similar
643  */
649 #define XML_SCHEMAS_ELEM_NILLABLE 1 << 0
650 
655 #define XML_SCHEMAS_ELEM_GLOBAL 1 << 1
656 
661 #define XML_SCHEMAS_ELEM_DEFAULT 1 << 2
662 
667 #define XML_SCHEMAS_ELEM_FIXED 1 << 3
668 
673 #define XML_SCHEMAS_ELEM_ABSTRACT 1 << 4
674 
680 #define XML_SCHEMAS_ELEM_TOPLEVEL 1 << 5
681 
686 #define XML_SCHEMAS_ELEM_REF 1 << 6
687 
693 #define XML_SCHEMAS_ELEM_NSDEFAULT 1 << 7
694 
700 #define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED 1 << 8
701 
706 #define XML_SCHEMAS_ELEM_CIRCULAR 1 << 9
707 
712 #define XML_SCHEMAS_ELEM_BLOCK_ABSENT 1 << 10
713 
718 #define XML_SCHEMAS_ELEM_BLOCK_EXTENSION 1 << 11
719 
724 #define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION 1 << 12
725 
730 #define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION 1 << 13
731 
736 #define XML_SCHEMAS_ELEM_FINAL_ABSENT 1 << 14
737 
742 #define XML_SCHEMAS_ELEM_FINAL_EXTENSION 1 << 15
743 
748 #define XML_SCHEMAS_ELEM_FINAL_RESTRICTION 1 << 16
749 
754 #define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD 1 << 17
755 
761 #define XML_SCHEMAS_ELEM_INTERNAL_CHECKED 1 << 18
762 
763 typedef struct _xmlSchemaElement xmlSchemaElement;
764 typedef xmlSchemaElement *xmlSchemaElementPtr;
765 struct _xmlSchemaElement {
766  xmlSchemaTypeType type; /* The kind of type */
767  struct _xmlSchemaType *next; /* Not used? */
768  const xmlChar *name;
769  const xmlChar *id; /* Deprecated; not used */
770  const xmlChar *ref; /* Deprecated; not used */
771  const xmlChar *refNs; /* Deprecated; not used */
772  xmlSchemaAnnotPtr annot;
773  xmlSchemaTypePtr subtypes; /* the type definition */
774  xmlSchemaAttributePtr attributes;
776  int minOccurs; /* Deprecated; not used */
777  int maxOccurs; /* Deprecated; not used */
778 
779  int flags;
780  const xmlChar *targetNamespace;
781  const xmlChar *namedType;
782  const xmlChar *namedTypeNs;
783  const xmlChar *substGroup;
784  const xmlChar *substGroupNs;
785  const xmlChar *scope;
786  const xmlChar *value; /* The original value of the value constraint. */
787  struct _xmlSchemaElement *refDecl; /* This will now be used for the
788  substitution group affiliation */
789  xmlRegexpPtr contModel; /* Obsolete for WXS, maybe used for RelaxNG */
790  xmlSchemaContentType contentType;
791  const xmlChar *refPrefix; /* Deprecated; not used */
792  xmlSchemaValPtr defVal; /* The compiled value constraint. */
793  void *idcs; /* The identity-constraint defs */
794 };
795 
796 /*
797  * XML_SCHEMAS_FACET_UNKNOWN:
798  *
799  * unknown facet handling
800  */
801 #define XML_SCHEMAS_FACET_UNKNOWN 0
802 /*
803  * XML_SCHEMAS_FACET_PRESERVE:
804  *
805  * preserve the type of the facet
806  */
807 #define XML_SCHEMAS_FACET_PRESERVE 1
808 /*
809  * XML_SCHEMAS_FACET_REPLACE:
810  *
811  * replace the type of the facet
812  */
813 #define XML_SCHEMAS_FACET_REPLACE 2
814 /*
815  * XML_SCHEMAS_FACET_COLLAPSE:
816  *
817  * collapse the types of the facet
818  */
819 #define XML_SCHEMAS_FACET_COLLAPSE 3
820 
823 struct _xmlSchemaFacet {
824  xmlSchemaTypeType type; /* The kind of type */
825  struct _xmlSchemaFacet *next;/* the next type if in a sequence ... */
826  const xmlChar *value; /* The original value */
827  const xmlChar *id; /* Obsolete */
828  xmlSchemaAnnotPtr annot;
830  int fixed; /* XML_SCHEMAS_FACET_PRESERVE, etc. */
831  int whitespace;
832  xmlSchemaValPtr val; /* The compiled value */
833  xmlRegexpPtr regexp; /* The regex for patterns */
834 };
835 
839 typedef struct _xmlSchemaNotation xmlSchemaNotation;
840 typedef xmlSchemaNotation *xmlSchemaNotationPtr;
841 struct _xmlSchemaNotation {
842  xmlSchemaTypeType type; /* The kind of type */
843  const xmlChar *name;
844  xmlSchemaAnnotPtr annot;
845  const xmlChar *identifier;
846  const xmlChar *targetNamespace;
847 };
848 
849 /*
850 * TODO: Actually all those flags used for the schema should sit
851 * on the schema parser context, since they are used only
852 * during parsing an XML schema document, and not available
853 * on the component level as per spec.
854 */
861 #define XML_SCHEMAS_QUALIF_ELEM 1 << 0
862 
868 #define XML_SCHEMAS_QUALIF_ATTR 1 << 1
869 
874 #define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION 1 << 2
875 
880 #define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION 1 << 3
881 
886 #define XML_SCHEMAS_FINAL_DEFAULT_LIST 1 << 4
887 
892 #define XML_SCHEMAS_FINAL_DEFAULT_UNION 1 << 5
893 
898 #define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION 1 << 6
899 
904 #define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION 1 << 7
905 
910 #define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION 1 << 8
911 
917 #define XML_SCHEMAS_INCLUDING_CONVERT_NS 1 << 9
918 
923 struct _xmlSchema {
924  const xmlChar *name; /* schema name */
925  const xmlChar *targetNamespace; /* the target namespace */
926  const xmlChar *version;
927  const xmlChar *id; /* Obsolete */
928  xmlDocPtr doc;
929  xmlSchemaAnnotPtr annot;
930  int flags;
931 
932  xmlHashTablePtr typeDecl;
933  xmlHashTablePtr attrDecl;
934  xmlHashTablePtr attrgrpDecl;
935  xmlHashTablePtr elemDecl;
936  xmlHashTablePtr notaDecl;
937 
938  xmlHashTablePtr schemasImports;
939 
940  void *_private; /* unused by the library for users or bindings */
941  xmlHashTablePtr groupDecl;
942  xmlDictPtr dict;
943  void *includes; /* the includes, this is opaque for now */
944  int preserve; /* whether to free the document */
945  int counter; /* used to give anonymous components unique names */
946  xmlHashTablePtr idcDef; /* All identity-constraint defs. */
947  void *volatiles; /* Obsolete */
948 };
949 
950 XMLPUBFUN void XMLCALL xmlSchemaFreeType (xmlSchemaTypePtr type);
951 XMLPUBFUN void XMLCALL xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard);
952 
953 #ifdef __cplusplus
954 }
955 #endif
956 
957 #endif /* LIBXML_SCHEMAS_ENABLED */
958 #endif /* __XML_SCHEMA_INTERNALS_H__ */
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
#define XMLPUBFUN
Definition: xmlexports.h:30
struct node node
ios_base &_STLP_CALL fixed(ios_base &__s)
Definition: _ios_base.h:332
GLuint base
Definition: 3dtext.c:35
GLenum GLint ref
Definition: glext.h:6028
content
Definition: atl_ax.c:993
static const WCHAR version[]
Definition: asmname.c:66
GLuint GLsizei const GLvoid GLenum preserve
Definition: glext.h:9550
GLuint counter
Definition: glext.h:11116
Definition: dict.c:116
GLuint GLfloat * val
Definition: glext.h:7180
static struct loaded_include * includes
Definition: compiler.c:53
GLbitfield flags
Definition: glext.h:7161
Definition: tree.h:489
__u8 attr
Definition: mkdosfs.c:359
unsigned char xmlChar
Definition: xmlstring.h:28
GLsizei const GLfloat * value
Definition: glext.h:6069
static unsigned __int64 next
Definition: rand_nt.c:6
Definition: tree.h:551
#define XMLCALL
GLenum GLuint id
Definition: glext.h:5579
static const char whitespace[]
Definition: main.c:63
GLuint const GLchar * name
Definition: glext.h:6031