/src/libxml2/include/libxml/schemasInternals.h
Line  | Count  | Source (jump to first uncovered line)  | 
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  |  |  | 
145  |  | /**  | 
146  |  |  * Annotation  | 
147  |  |  */  | 
148  |  | typedef struct _xmlSchemaAnnot xmlSchemaAnnot;  | 
149  |  | typedef xmlSchemaAnnot *xmlSchemaAnnotPtr;  | 
150  |  | struct _xmlSchemaAnnot { | 
151  |  |     struct _xmlSchemaAnnot *next;  | 
152  |  |     xmlNodePtr content;         /* the annotation */  | 
153  |  | };  | 
154  |  |  | 
155  |  | /**  | 
156  |  |  * XML_SCHEMAS_ANYATTR_SKIP:  | 
157  |  |  *  | 
158  |  |  * Skip unknown attribute from validation  | 
159  |  |  * Obsolete, not used anymore.  | 
160  |  |  */  | 
161  |  | #define XML_SCHEMAS_ANYATTR_SKIP        1  | 
162  |  | /**  | 
163  |  |  * XML_SCHEMAS_ANYATTR_LAX:  | 
164  |  |  *  | 
165  |  |  * Ignore validation non definition on attributes  | 
166  |  |  * Obsolete, not used anymore.  | 
167  |  |  */  | 
168  |  | #define XML_SCHEMAS_ANYATTR_LAX                2  | 
169  |  | /**  | 
170  |  |  * XML_SCHEMAS_ANYATTR_STRICT:  | 
171  |  |  *  | 
172  |  |  * Apply strict validation rules on attributes  | 
173  |  |  * Obsolete, not used anymore.  | 
174  |  |  */  | 
175  |  | #define XML_SCHEMAS_ANYATTR_STRICT        3  | 
176  |  | /**  | 
177  |  |  * XML_SCHEMAS_ANY_SKIP:  | 
178  |  |  *  | 
179  |  |  * Skip unknown attribute from validation  | 
180  |  |  */  | 
181  | 0  | #define XML_SCHEMAS_ANY_SKIP        1  | 
182  |  | /**  | 
183  |  |  * XML_SCHEMAS_ANY_LAX:  | 
184  |  |  *  | 
185  |  |  * Used by wildcards.  | 
186  |  |  * Validate if type found, don't worry if not found  | 
187  |  |  */  | 
188  | 0  | #define XML_SCHEMAS_ANY_LAX                2  | 
189  |  | /**  | 
190  |  |  * XML_SCHEMAS_ANY_STRICT:  | 
191  |  |  *  | 
192  |  |  * Used by wildcards.  | 
193  |  |  * Apply strict validation rules  | 
194  |  |  */  | 
195  | 0  | #define XML_SCHEMAS_ANY_STRICT        3  | 
196  |  | /**  | 
197  |  |  * XML_SCHEMAS_ATTR_USE_PROHIBITED:  | 
198  |  |  *  | 
199  |  |  * Used by wildcards.  | 
200  |  |  * The attribute is prohibited.  | 
201  |  |  */  | 
202  | 0  | #define XML_SCHEMAS_ATTR_USE_PROHIBITED 0  | 
203  |  | /**  | 
204  |  |  * XML_SCHEMAS_ATTR_USE_REQUIRED:  | 
205  |  |  *  | 
206  |  |  * The attribute is required.  | 
207  |  |  */  | 
208  | 0  | #define XML_SCHEMAS_ATTR_USE_REQUIRED 1  | 
209  |  | /**  | 
210  |  |  * XML_SCHEMAS_ATTR_USE_OPTIONAL:  | 
211  |  |  *  | 
212  |  |  * The attribute is optional.  | 
213  |  |  */  | 
214  | 0  | #define XML_SCHEMAS_ATTR_USE_OPTIONAL 2  | 
215  |  | /**  | 
216  |  |  * XML_SCHEMAS_ATTR_GLOBAL:  | 
217  |  |  *  | 
218  |  |  * allow elements in no namespace  | 
219  |  |  */  | 
220  | 0  | #define XML_SCHEMAS_ATTR_GLOBAL        1 << 0  | 
221  |  | /**  | 
222  |  |  * XML_SCHEMAS_ATTR_NSDEFAULT:  | 
223  |  |  *  | 
224  |  |  * allow elements in no namespace  | 
225  |  |  */  | 
226  |  | #define XML_SCHEMAS_ATTR_NSDEFAULT        1 << 7  | 
227  |  | /**  | 
228  |  |  * XML_SCHEMAS_ATTR_INTERNAL_RESOLVED:  | 
229  |  |  *  | 
230  |  |  * this is set when the "type" and "ref" references  | 
231  |  |  * have been resolved.  | 
232  |  |  */  | 
233  | 0  | #define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED        1 << 8  | 
234  |  | /**  | 
235  |  |  * XML_SCHEMAS_ATTR_FIXED:  | 
236  |  |  *  | 
237  |  |  * the attribute has a fixed value  | 
238  |  |  */  | 
239  | 0  | #define XML_SCHEMAS_ATTR_FIXED        1 << 9  | 
240  |  |  | 
241  |  | /**  | 
242  |  |  * xmlSchemaAttribute:  | 
243  |  |  * An attribute definition.  | 
244  |  |  */  | 
245  |  |  | 
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 */  | 
263  |  |     xmlNodePtr node;  | 
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  |  |  | 
271  |  | /**  | 
272  |  |  * xmlSchemaAttributeLink:  | 
273  |  |  * Used to build a list of attribute uses on complexType definitions.  | 
274  |  |  * WARNING: Deprecated; not used.  | 
275  |  |  */  | 
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  |  |  | 
283  |  | /**  | 
284  |  |  * XML_SCHEMAS_WILDCARD_COMPLETE:  | 
285  |  |  *  | 
286  |  |  * If the wildcard is complete.  | 
287  |  |  */  | 
288  |  | #define XML_SCHEMAS_WILDCARD_COMPLETE 1 << 0  | 
289  |  |  | 
290  |  | /**  | 
291  |  |  * xmlSchemaCharValueLink:  | 
292  |  |  * Used to build a list of namespaces on wildcards.  | 
293  |  |  */  | 
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  |  |  | 
301  |  | /**  | 
302  |  |  * xmlSchemaWildcard.  | 
303  |  |  * A wildcard.  | 
304  |  |  */  | 
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;  | 
311  |  |     xmlNodePtr node;  | 
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  |  |  | 
321  |  | /**  | 
322  |  |  * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:  | 
323  |  |  *  | 
324  |  |  * The attribute wildcard has been built.  | 
325  |  |  */  | 
326  | 0  | #define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED 1 << 0  | 
327  |  | /**  | 
328  |  |  * XML_SCHEMAS_ATTRGROUP_GLOBAL:  | 
329  |  |  *  | 
330  |  |  * The attribute group has been defined.  | 
331  |  |  */  | 
332  | 0  | #define XML_SCHEMAS_ATTRGROUP_GLOBAL 1 << 1  | 
333  |  | /**  | 
334  |  |  * XML_SCHEMAS_ATTRGROUP_MARKED:  | 
335  |  |  *  | 
336  |  |  * Marks the attr group as marked; used for circular checks.  | 
337  |  |  */  | 
338  | 0  | #define XML_SCHEMAS_ATTRGROUP_MARKED 1 << 2  | 
339  |  |  | 
340  |  | /**  | 
341  |  |  * XML_SCHEMAS_ATTRGROUP_REDEFINED:  | 
342  |  |  *  | 
343  |  |  * The attr group was redefined.  | 
344  |  |  */  | 
345  | 0  | #define XML_SCHEMAS_ATTRGROUP_REDEFINED 1 << 3  | 
346  |  | /**  | 
347  |  |  * XML_SCHEMAS_ATTRGROUP_HAS_REFS:  | 
348  |  |  *  | 
349  |  |  * Whether this attr. group contains attr. group references.  | 
350  |  |  */  | 
351  | 0  | #define XML_SCHEMAS_ATTRGROUP_HAS_REFS 1 << 4  | 
352  |  |  | 
353  |  | /**  | 
354  |  |  * An attribute group definition.  | 
355  |  |  *  | 
356  |  |  * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures  | 
357  |  |  * must be kept similar  | 
358  |  |  */  | 
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 */  | 
371  |  |     xmlNodePtr node;  | 
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  |  |  | 
380  |  | /**  | 
381  |  |  * xmlSchemaTypeLink:  | 
382  |  |  * Used to build a list of types (e.g. member types of  | 
383  |  |  * simpleType with variety "union").  | 
384  |  |  */  | 
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  |  |  | 
392  |  | /**  | 
393  |  |  * xmlSchemaFacetLink:  | 
394  |  |  * Used to build a list of facets.  | 
395  |  |  */  | 
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  |  |  | 
403  |  | /**  | 
404  |  |  * XML_SCHEMAS_TYPE_MIXED:  | 
405  |  |  *  | 
406  |  |  * the element content type is mixed  | 
407  |  |  */  | 
408  | 0  | #define XML_SCHEMAS_TYPE_MIXED                1 << 0  | 
409  |  | /**  | 
410  |  |  * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION:  | 
411  |  |  *  | 
412  |  |  * the simple or complex type has a derivation method of "extension".  | 
413  |  |  */  | 
414  | 0  | #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION                1 << 1  | 
415  |  | /**  | 
416  |  |  * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION:  | 
417  |  |  *  | 
418  |  |  * the simple or complex type has a derivation method of "restriction".  | 
419  |  |  */  | 
420  | 0  | #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION                1 << 2  | 
421  |  | /**  | 
422  |  |  * XML_SCHEMAS_TYPE_GLOBAL:  | 
423  |  |  *  | 
424  |  |  * the type is global  | 
425  |  |  */  | 
426  | 0  | #define XML_SCHEMAS_TYPE_GLOBAL                1 << 3  | 
427  |  | /**  | 
428  |  |  * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD:  | 
429  |  |  *  | 
430  |  |  * the complexType owns an attribute wildcard, i.e.  | 
431  |  |  * it can be freed by the complexType  | 
432  |  |  */  | 
433  |  | #define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD    1 << 4 /* Obsolete. */  | 
434  |  | /**  | 
435  |  |  * XML_SCHEMAS_TYPE_VARIETY_ABSENT:  | 
436  |  |  *  | 
437  |  |  * the simpleType has a variety of "absent".  | 
438  |  |  * TODO: Actually not necessary :-/, since if  | 
439  |  |  * none of the variety flags occur then it's  | 
440  |  |  * automatically absent.  | 
441  |  |  */  | 
442  |  | #define XML_SCHEMAS_TYPE_VARIETY_ABSENT    1 << 5  | 
443  |  | /**  | 
444  |  |  * XML_SCHEMAS_TYPE_VARIETY_LIST:  | 
445  |  |  *  | 
446  |  |  * the simpleType has a variety of "list".  | 
447  |  |  */  | 
448  | 0  | #define XML_SCHEMAS_TYPE_VARIETY_LIST    1 << 6  | 
449  |  | /**  | 
450  |  |  * XML_SCHEMAS_TYPE_VARIETY_UNION:  | 
451  |  |  *  | 
452  |  |  * the simpleType has a variety of "union".  | 
453  |  |  */  | 
454  | 0  | #define XML_SCHEMAS_TYPE_VARIETY_UNION    1 << 7  | 
455  |  | /**  | 
456  |  |  * XML_SCHEMAS_TYPE_VARIETY_ATOMIC:  | 
457  |  |  *  | 
458  |  |  * the simpleType has a variety of "union".  | 
459  |  |  */  | 
460  | 0  | #define XML_SCHEMAS_TYPE_VARIETY_ATOMIC    1 << 8  | 
461  |  | /**  | 
462  |  |  * XML_SCHEMAS_TYPE_FINAL_EXTENSION:  | 
463  |  |  *  | 
464  |  |  * the complexType has a final of "extension".  | 
465  |  |  */  | 
466  | 0  | #define XML_SCHEMAS_TYPE_FINAL_EXTENSION    1 << 9  | 
467  |  | /**  | 
468  |  |  * XML_SCHEMAS_TYPE_FINAL_RESTRICTION:  | 
469  |  |  *  | 
470  |  |  * the simpleType/complexType has a final of "restriction".  | 
471  |  |  */  | 
472  | 0  | #define XML_SCHEMAS_TYPE_FINAL_RESTRICTION    1 << 10  | 
473  |  | /**  | 
474  |  |  * XML_SCHEMAS_TYPE_FINAL_LIST:  | 
475  |  |  *  | 
476  |  |  * the simpleType has a final of "list".  | 
477  |  |  */  | 
478  | 0  | #define XML_SCHEMAS_TYPE_FINAL_LIST    1 << 11  | 
479  |  | /**  | 
480  |  |  * XML_SCHEMAS_TYPE_FINAL_UNION:  | 
481  |  |  *  | 
482  |  |  * the simpleType has a final of "union".  | 
483  |  |  */  | 
484  | 0  | #define XML_SCHEMAS_TYPE_FINAL_UNION    1 << 12  | 
485  |  | /**  | 
486  |  |  * XML_SCHEMAS_TYPE_FINAL_DEFAULT:  | 
487  |  |  *  | 
488  |  |  * the simpleType has a final of "default".  | 
489  |  |  */  | 
490  |  | #define XML_SCHEMAS_TYPE_FINAL_DEFAULT    1 << 13  | 
491  |  | /**  | 
492  |  |  * XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE:  | 
493  |  |  *  | 
494  |  |  * Marks the item as a builtin primitive.  | 
495  |  |  */  | 
496  | 0  | #define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE    1 << 14  | 
497  |  | /**  | 
498  |  |  * XML_SCHEMAS_TYPE_MARKED:  | 
499  |  |  *  | 
500  |  |  * Marks the item as marked; used for circular checks.  | 
501  |  |  */  | 
502  | 0  | #define XML_SCHEMAS_TYPE_MARKED        1 << 16  | 
503  |  | /**  | 
504  |  |  * XML_SCHEMAS_TYPE_BLOCK_DEFAULT:  | 
505  |  |  *  | 
506  |  |  * the complexType did not specify 'block' so use the default of the  | 
507  |  |  * <schema> item.  | 
508  |  |  */  | 
509  |  | #define XML_SCHEMAS_TYPE_BLOCK_DEFAULT    1 << 17  | 
510  |  | /**  | 
511  |  |  * XML_SCHEMAS_TYPE_BLOCK_EXTENSION:  | 
512  |  |  *  | 
513  |  |  * the complexType has a 'block' of "extension".  | 
514  |  |  */  | 
515  | 0  | #define XML_SCHEMAS_TYPE_BLOCK_EXTENSION    1 << 18  | 
516  |  | /**  | 
517  |  |  * XML_SCHEMAS_TYPE_BLOCK_RESTRICTION:  | 
518  |  |  *  | 
519  |  |  * the complexType has a 'block' of "restriction".  | 
520  |  |  */  | 
521  | 0  | #define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION    1 << 19  | 
522  |  | /**  | 
523  |  |  * XML_SCHEMAS_TYPE_ABSTRACT:  | 
524  |  |  *  | 
525  |  |  * the simple/complexType is abstract.  | 
526  |  |  */  | 
527  | 0  | #define XML_SCHEMAS_TYPE_ABSTRACT    1 << 20  | 
528  |  | /**  | 
529  |  |  * XML_SCHEMAS_TYPE_FACETSNEEDVALUE:  | 
530  |  |  *  | 
531  |  |  * indicates if the facets need a computed value  | 
532  |  |  */  | 
533  | 0  | #define XML_SCHEMAS_TYPE_FACETSNEEDVALUE    1 << 21  | 
534  |  | /**  | 
535  |  |  * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED:  | 
536  |  |  *  | 
537  |  |  * indicates that the type was typefixed  | 
538  |  |  */  | 
539  | 0  | #define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED    1 << 22  | 
540  |  | /**  | 
541  |  |  * XML_SCHEMAS_TYPE_INTERNAL_INVALID:  | 
542  |  |  *  | 
543  |  |  * indicates that the type is invalid  | 
544  |  |  */  | 
545  | 0  | #define XML_SCHEMAS_TYPE_INTERNAL_INVALID    1 << 23  | 
546  |  | /**  | 
547  |  |  * XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE:  | 
548  |  |  *  | 
549  |  |  * a whitespace-facet value of "preserve"  | 
550  |  |  */  | 
551  | 0  | #define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE    1 << 24  | 
552  |  | /**  | 
553  |  |  * XML_SCHEMAS_TYPE_WHITESPACE_REPLACE:  | 
554  |  |  *  | 
555  |  |  * a whitespace-facet value of "replace"  | 
556  |  |  */  | 
557  | 0  | #define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE    1 << 25  | 
558  |  | /**  | 
559  |  |  * XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE:  | 
560  |  |  *  | 
561  |  |  * a whitespace-facet value of "collapse"  | 
562  |  |  */  | 
563  | 0  | #define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE    1 << 26  | 
564  |  | /**  | 
565  |  |  * XML_SCHEMAS_TYPE_HAS_FACETS:  | 
566  |  |  *  | 
567  |  |  * has facets  | 
568  |  |  */  | 
569  | 0  | #define XML_SCHEMAS_TYPE_HAS_FACETS    1 << 27  | 
570  |  | /**  | 
571  |  |  * XML_SCHEMAS_TYPE_NORMVALUENEEDED:  | 
572  |  |  *  | 
573  |  |  * indicates if the facets (pattern) need a normalized value  | 
574  |  |  */  | 
575  | 0  | #define XML_SCHEMAS_TYPE_NORMVALUENEEDED    1 << 28  | 
576  |  |  | 
577  |  | /**  | 
578  |  |  * XML_SCHEMAS_TYPE_FIXUP_1:  | 
579  |  |  *  | 
580  |  |  * First stage of fixup was done.  | 
581  |  |  */  | 
582  | 0  | #define XML_SCHEMAS_TYPE_FIXUP_1    1 << 29  | 
583  |  |  | 
584  |  | /**  | 
585  |  |  * XML_SCHEMAS_TYPE_REDEFINED:  | 
586  |  |  *  | 
587  |  |  * The type was redefined.  | 
588  |  |  */  | 
589  | 0  | #define XML_SCHEMAS_TYPE_REDEFINED    1 << 30  | 
590  |  | /**  | 
591  |  |  * XML_SCHEMAS_TYPE_REDEFINING:  | 
592  |  |  *  | 
593  |  |  * The type redefines an other type.  | 
594  |  |  */  | 
595  |  | /* #define XML_SCHEMAS_TYPE_REDEFINING    1 << 31 */  | 
596  |  |  | 
597  |  | /**  | 
598  |  |  * _xmlSchemaType:  | 
599  |  |  *  | 
600  |  |  * Schemas type definition.  | 
601  |  |  */  | 
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 */  | 
612  |  |     xmlNodePtr node;  | 
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  |  |  */  | 
644  |  | /**  | 
645  |  |  * XML_SCHEMAS_ELEM_NILLABLE:  | 
646  |  |  *  | 
647  |  |  * the element is nillable  | 
648  |  |  */  | 
649  | 0  | #define XML_SCHEMAS_ELEM_NILLABLE        1 << 0  | 
650  |  | /**  | 
651  |  |  * XML_SCHEMAS_ELEM_GLOBAL:  | 
652  |  |  *  | 
653  |  |  * the element is global  | 
654  |  |  */  | 
655  | 0  | #define XML_SCHEMAS_ELEM_GLOBAL                1 << 1  | 
656  |  | /**  | 
657  |  |  * XML_SCHEMAS_ELEM_DEFAULT:  | 
658  |  |  *  | 
659  |  |  * the element has a default value  | 
660  |  |  */  | 
661  | 0  | #define XML_SCHEMAS_ELEM_DEFAULT        1 << 2  | 
662  |  | /**  | 
663  |  |  * XML_SCHEMAS_ELEM_FIXED:  | 
664  |  |  *  | 
665  |  |  * the element has a fixed value  | 
666  |  |  */  | 
667  | 0  | #define XML_SCHEMAS_ELEM_FIXED                1 << 3  | 
668  |  | /**  | 
669  |  |  * XML_SCHEMAS_ELEM_ABSTRACT:  | 
670  |  |  *  | 
671  |  |  * the element is abstract  | 
672  |  |  */  | 
673  | 0  | #define XML_SCHEMAS_ELEM_ABSTRACT        1 << 4  | 
674  |  | /**  | 
675  |  |  * XML_SCHEMAS_ELEM_TOPLEVEL:  | 
676  |  |  *  | 
677  |  |  * the element is top level  | 
678  |  |  * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead  | 
679  |  |  */  | 
680  | 0  | #define XML_SCHEMAS_ELEM_TOPLEVEL        1 << 5  | 
681  |  | /**  | 
682  |  |  * XML_SCHEMAS_ELEM_REF:  | 
683  |  |  *  | 
684  |  |  * the element is a reference to a type  | 
685  |  |  */  | 
686  |  | #define XML_SCHEMAS_ELEM_REF                1 << 6  | 
687  |  | /**  | 
688  |  |  * XML_SCHEMAS_ELEM_NSDEFAULT:  | 
689  |  |  *  | 
690  |  |  * allow elements in no namespace  | 
691  |  |  * Obsolete, not used anymore.  | 
692  |  |  */  | 
693  |  | #define XML_SCHEMAS_ELEM_NSDEFAULT        1 << 7  | 
694  |  | /**  | 
695  |  |  * XML_SCHEMAS_ELEM_INTERNAL_RESOLVED:  | 
696  |  |  *  | 
697  |  |  * this is set when "type", "ref", "substitutionGroup"  | 
698  |  |  * references have been resolved.  | 
699  |  |  */  | 
700  | 0  | #define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED        1 << 8  | 
701  |  |  /**  | 
702  |  |  * XML_SCHEMAS_ELEM_CIRCULAR:  | 
703  |  |  *  | 
704  |  |  * a helper flag for the search of circular references.  | 
705  |  |  */  | 
706  | 0  | #define XML_SCHEMAS_ELEM_CIRCULAR        1 << 9  | 
707  |  | /**  | 
708  |  |  * XML_SCHEMAS_ELEM_BLOCK_ABSENT:  | 
709  |  |  *  | 
710  |  |  * the "block" attribute is absent  | 
711  |  |  */  | 
712  |  | #define XML_SCHEMAS_ELEM_BLOCK_ABSENT        1 << 10  | 
713  |  | /**  | 
714  |  |  * XML_SCHEMAS_ELEM_BLOCK_EXTENSION:  | 
715  |  |  *  | 
716  |  |  * disallowed substitutions are absent  | 
717  |  |  */  | 
718  | 0  | #define XML_SCHEMAS_ELEM_BLOCK_EXTENSION        1 << 11  | 
719  |  | /**  | 
720  |  |  * XML_SCHEMAS_ELEM_BLOCK_RESTRICTION:  | 
721  |  |  *  | 
722  |  |  * disallowed substitutions: "restriction"  | 
723  |  |  */  | 
724  | 0  | #define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION        1 << 12  | 
725  |  | /**  | 
726  |  |  * XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION:  | 
727  |  |  *  | 
728  |  |  * disallowed substitutions: "substitution"  | 
729  |  |  */  | 
730  | 0  | #define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION        1 << 13  | 
731  |  | /**  | 
732  |  |  * XML_SCHEMAS_ELEM_FINAL_ABSENT:  | 
733  |  |  *  | 
734  |  |  * substitution group exclusions are absent  | 
735  |  |  */  | 
736  |  | #define XML_SCHEMAS_ELEM_FINAL_ABSENT        1 << 14  | 
737  |  | /**  | 
738  |  |  * XML_SCHEMAS_ELEM_FINAL_EXTENSION:  | 
739  |  |  *  | 
740  |  |  * substitution group exclusions: "extension"  | 
741  |  |  */  | 
742  | 0  | #define XML_SCHEMAS_ELEM_FINAL_EXTENSION        1 << 15  | 
743  |  | /**  | 
744  |  |  * XML_SCHEMAS_ELEM_FINAL_RESTRICTION:  | 
745  |  |  *  | 
746  |  |  * substitution group exclusions: "restriction"  | 
747  |  |  */  | 
748  | 0  | #define XML_SCHEMAS_ELEM_FINAL_RESTRICTION        1 << 16  | 
749  |  | /**  | 
750  |  |  * XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD:  | 
751  |  |  *  | 
752  |  |  * the declaration is a substitution group head  | 
753  |  |  */  | 
754  | 0  | #define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD        1 << 17  | 
755  |  | /**  | 
756  |  |  * XML_SCHEMAS_ELEM_INTERNAL_CHECKED:  | 
757  |  |  *  | 
758  |  |  * this is set when the elem decl has been checked against  | 
759  |  |  * all constraints  | 
760  |  |  */  | 
761  | 0  | #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;  | 
775  |  |     xmlNodePtr node;  | 
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  | 0  | #define XML_SCHEMAS_FACET_PRESERVE        1  | 
808  |  | /*  | 
809  |  |  * XML_SCHEMAS_FACET_REPLACE:  | 
810  |  |  *  | 
811  |  |  * replace the type of the facet  | 
812  |  |  */  | 
813  | 0  | #define XML_SCHEMAS_FACET_REPLACE        2  | 
814  |  | /*  | 
815  |  |  * XML_SCHEMAS_FACET_COLLAPSE:  | 
816  |  |  *  | 
817  |  |  * collapse the types of the facet  | 
818  |  |  */  | 
819  | 0  | #define XML_SCHEMAS_FACET_COLLAPSE        3  | 
820  |  | /**  | 
821  |  |  * A facet definition.  | 
822  |  |  */  | 
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;  | 
829  |  |     xmlNodePtr node;  | 
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  |  |  | 
836  |  | /**  | 
837  |  |  * A notation definition.  | 
838  |  |  */  | 
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  |  | */  | 
855  |  | /**  | 
856  |  |  * XML_SCHEMAS_QUALIF_ELEM:  | 
857  |  |  *  | 
858  |  |  * Reflects elementFormDefault == qualified in  | 
859  |  |  * an XML schema document.  | 
860  |  |  */  | 
861  | 0  | #define XML_SCHEMAS_QUALIF_ELEM                1 << 0  | 
862  |  | /**  | 
863  |  |  * XML_SCHEMAS_QUALIF_ATTR:  | 
864  |  |  *  | 
865  |  |  * Reflects attributeFormDefault == qualified in  | 
866  |  |  * an XML schema document.  | 
867  |  |  */  | 
868  | 0  | #define XML_SCHEMAS_QUALIF_ATTR            1 << 1  | 
869  |  | /**  | 
870  |  |  * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION:  | 
871  |  |  *  | 
872  |  |  * the schema has "extension" in the set of finalDefault.  | 
873  |  |  */  | 
874  | 0  | #define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION        1 << 2  | 
875  |  | /**  | 
876  |  |  * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION:  | 
877  |  |  *  | 
878  |  |  * the schema has "restriction" in the set of finalDefault.  | 
879  |  |  */  | 
880  | 0  | #define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION            1 << 3  | 
881  |  | /**  | 
882  |  |  * XML_SCHEMAS_FINAL_DEFAULT_LIST:  | 
883  |  |  *  | 
884  |  |  * the schema has "list" in the set of finalDefault.  | 
885  |  |  */  | 
886  | 0  | #define XML_SCHEMAS_FINAL_DEFAULT_LIST            1 << 4  | 
887  |  | /**  | 
888  |  |  * XML_SCHEMAS_FINAL_DEFAULT_UNION:  | 
889  |  |  *  | 
890  |  |  * the schema has "union" in the set of finalDefault.  | 
891  |  |  */  | 
892  | 0  | #define XML_SCHEMAS_FINAL_DEFAULT_UNION            1 << 5  | 
893  |  | /**  | 
894  |  |  * XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION:  | 
895  |  |  *  | 
896  |  |  * the schema has "extension" in the set of blockDefault.  | 
897  |  |  */  | 
898  | 0  | #define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION            1 << 6  | 
899  |  | /**  | 
900  |  |  * XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION:  | 
901  |  |  *  | 
902  |  |  * the schema has "restriction" in the set of blockDefault.  | 
903  |  |  */  | 
904  | 0  | #define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION            1 << 7  | 
905  |  | /**  | 
906  |  |  * XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION:  | 
907  |  |  *  | 
908  |  |  * the schema has "substitution" in the set of blockDefault.  | 
909  |  |  */  | 
910  | 0  | #define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION            1 << 8  | 
911  |  | /**  | 
912  |  |  * XML_SCHEMAS_INCLUDING_CONVERT_NS:  | 
913  |  |  *  | 
914  |  |  * the schema is currently including an other schema with  | 
915  |  |  * no target namespace.  | 
916  |  |  */  | 
917  | 0  | #define XML_SCHEMAS_INCLUDING_CONVERT_NS            1 << 9  | 
918  |  | /**  | 
919  |  |  * _xmlSchema:  | 
920  |  |  *  | 
921  |  |  * A Schemas definition  | 
922  |  |  */  | 
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         xmlSchemaFreeType        (xmlSchemaTypePtr type);  | 
951  |  | XMLPUBFUN void         xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard);  | 
952  |  |  | 
953  |  | #ifdef __cplusplus  | 
954  |  | }  | 
955  |  | #endif  | 
956  |  |  | 
957  |  | #endif /* LIBXML_SCHEMAS_ENABLED */  | 
958  |  | #endif /* __XML_SCHEMA_INTERNALS_H__ */  |