xref: /aosp_15_r20/external/libxml2/include/libxml/schemasInternals.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker /*
2*7c568831SAndroid Build Coastguard Worker  * Summary: internal interfaces for XML Schemas
3*7c568831SAndroid Build Coastguard Worker  * Description: internal interfaces for the XML Schemas handling
4*7c568831SAndroid Build Coastguard Worker  *              and schema validity checking
5*7c568831SAndroid Build Coastguard Worker  *		The Schemas development is a Work In Progress.
6*7c568831SAndroid Build Coastguard Worker  *              Some of those interfaces are not guaranteed to be API or ABI stable !
7*7c568831SAndroid Build Coastguard Worker  *
8*7c568831SAndroid Build Coastguard Worker  * Copy: See Copyright for the status of this software.
9*7c568831SAndroid Build Coastguard Worker  *
10*7c568831SAndroid Build Coastguard Worker  * Author: Daniel Veillard
11*7c568831SAndroid Build Coastguard Worker  */
12*7c568831SAndroid Build Coastguard Worker 
13*7c568831SAndroid Build Coastguard Worker 
14*7c568831SAndroid Build Coastguard Worker #ifndef __XML_SCHEMA_INTERNALS_H__
15*7c568831SAndroid Build Coastguard Worker #define __XML_SCHEMA_INTERNALS_H__
16*7c568831SAndroid Build Coastguard Worker 
17*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h>
18*7c568831SAndroid Build Coastguard Worker 
19*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SCHEMAS_ENABLED
20*7c568831SAndroid Build Coastguard Worker 
21*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlregexp.h>
22*7c568831SAndroid Build Coastguard Worker #include <libxml/hash.h>
23*7c568831SAndroid Build Coastguard Worker #include <libxml/dict.h>
24*7c568831SAndroid Build Coastguard Worker #include <libxml/tree.h>
25*7c568831SAndroid Build Coastguard Worker 
26*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
27*7c568831SAndroid Build Coastguard Worker extern "C" {
28*7c568831SAndroid Build Coastguard Worker #endif
29*7c568831SAndroid Build Coastguard Worker 
30*7c568831SAndroid Build Coastguard Worker typedef enum {
31*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_UNKNOWN = 0,
32*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_STRING = 1,
33*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_NORMSTRING = 2,
34*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_DECIMAL = 3,
35*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_TIME = 4,
36*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_GDAY = 5,
37*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_GMONTH = 6,
38*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_GMONTHDAY = 7,
39*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_GYEAR = 8,
40*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_GYEARMONTH = 9,
41*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_DATE = 10,
42*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_DATETIME = 11,
43*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_DURATION = 12,
44*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_FLOAT = 13,
45*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_DOUBLE = 14,
46*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_BOOLEAN = 15,
47*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_TOKEN = 16,
48*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_LANGUAGE = 17,
49*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_NMTOKEN = 18,
50*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_NMTOKENS = 19,
51*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_NAME = 20,
52*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_QNAME = 21,
53*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_NCNAME = 22,
54*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_ID = 23,
55*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_IDREF = 24,
56*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_IDREFS = 25,
57*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_ENTITY = 26,
58*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_ENTITIES = 27,
59*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_NOTATION = 28,
60*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_ANYURI = 29,
61*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_INTEGER = 30,
62*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_NPINTEGER = 31,
63*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_NINTEGER = 32,
64*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_NNINTEGER = 33,
65*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_PINTEGER = 34,
66*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_INT = 35,
67*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_UINT = 36,
68*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_LONG = 37,
69*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_ULONG = 38,
70*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_SHORT = 39,
71*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_USHORT = 40,
72*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_BYTE = 41,
73*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_UBYTE = 42,
74*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_HEXBINARY = 43,
75*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_BASE64BINARY = 44,
76*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_ANYTYPE = 45,
77*7c568831SAndroid Build Coastguard Worker     XML_SCHEMAS_ANYSIMPLETYPE = 46
78*7c568831SAndroid Build Coastguard Worker } xmlSchemaValType;
79*7c568831SAndroid Build Coastguard Worker 
80*7c568831SAndroid Build Coastguard Worker /*
81*7c568831SAndroid Build Coastguard Worker  * XML Schemas defines multiple type of types.
82*7c568831SAndroid Build Coastguard Worker  */
83*7c568831SAndroid Build Coastguard Worker typedef enum {
84*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_BASIC = 1, /* A built-in datatype */
85*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_ANY,
86*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_FACET,
87*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_SIMPLE,
88*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_COMPLEX,
89*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_SEQUENCE = 6,
90*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_CHOICE,
91*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_ALL,
92*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_SIMPLE_CONTENT,
93*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_COMPLEX_CONTENT,
94*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_UR,
95*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_RESTRICTION,
96*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_EXTENSION,
97*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_ELEMENT,
98*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_ATTRIBUTE,
99*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_ATTRIBUTEGROUP,
100*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_GROUP,
101*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_NOTATION,
102*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_LIST,
103*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_UNION,
104*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_ANY_ATTRIBUTE,
105*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_IDC_UNIQUE,
106*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_IDC_KEY,
107*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_IDC_KEYREF,
108*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_PARTICLE = 25,
109*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_TYPE_ATTRIBUTE_USE,
110*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_MININCLUSIVE = 1000,
111*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_MINEXCLUSIVE,
112*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_MAXINCLUSIVE,
113*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_MAXEXCLUSIVE,
114*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_TOTALDIGITS,
115*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_FRACTIONDIGITS,
116*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_PATTERN,
117*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_ENUMERATION,
118*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_WHITESPACE,
119*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_LENGTH,
120*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_MAXLENGTH,
121*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_FACET_MINLENGTH,
122*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_EXTRA_QNAMEREF = 2000,
123*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_EXTRA_ATTR_USE_PROHIB
124*7c568831SAndroid Build Coastguard Worker } xmlSchemaTypeType;
125*7c568831SAndroid Build Coastguard Worker 
126*7c568831SAndroid Build Coastguard Worker typedef enum {
127*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_CONTENT_UNKNOWN = 0,
128*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_CONTENT_EMPTY = 1,
129*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_CONTENT_ELEMENTS,
130*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_CONTENT_MIXED,
131*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_CONTENT_SIMPLE,
132*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS, /* Obsolete */
133*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_CONTENT_BASIC,
134*7c568831SAndroid Build Coastguard Worker     XML_SCHEMA_CONTENT_ANY
135*7c568831SAndroid Build Coastguard Worker } xmlSchemaContentType;
136*7c568831SAndroid Build Coastguard Worker 
137*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaVal xmlSchemaVal;
138*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaVal *xmlSchemaValPtr;
139*7c568831SAndroid Build Coastguard Worker 
140*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaType xmlSchemaType;
141*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaType *xmlSchemaTypePtr;
142*7c568831SAndroid Build Coastguard Worker 
143*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaFacet xmlSchemaFacet;
144*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaFacet *xmlSchemaFacetPtr;
145*7c568831SAndroid Build Coastguard Worker 
146*7c568831SAndroid Build Coastguard Worker /**
147*7c568831SAndroid Build Coastguard Worker  * Annotation
148*7c568831SAndroid Build Coastguard Worker  */
149*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaAnnot xmlSchemaAnnot;
150*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaAnnot *xmlSchemaAnnotPtr;
151*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaAnnot {
152*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaAnnot *next;
153*7c568831SAndroid Build Coastguard Worker     xmlNodePtr content;         /* the annotation */
154*7c568831SAndroid Build Coastguard Worker };
155*7c568831SAndroid Build Coastguard Worker 
156*7c568831SAndroid Build Coastguard Worker /**
157*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ANYATTR_SKIP:
158*7c568831SAndroid Build Coastguard Worker  *
159*7c568831SAndroid Build Coastguard Worker  * Skip unknown attribute from validation
160*7c568831SAndroid Build Coastguard Worker  * Obsolete, not used anymore.
161*7c568831SAndroid Build Coastguard Worker  */
162*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ANYATTR_SKIP        1
163*7c568831SAndroid Build Coastguard Worker /**
164*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ANYATTR_LAX:
165*7c568831SAndroid Build Coastguard Worker  *
166*7c568831SAndroid Build Coastguard Worker  * Ignore validation non definition on attributes
167*7c568831SAndroid Build Coastguard Worker  * Obsolete, not used anymore.
168*7c568831SAndroid Build Coastguard Worker  */
169*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ANYATTR_LAX                2
170*7c568831SAndroid Build Coastguard Worker /**
171*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ANYATTR_STRICT:
172*7c568831SAndroid Build Coastguard Worker  *
173*7c568831SAndroid Build Coastguard Worker  * Apply strict validation rules on attributes
174*7c568831SAndroid Build Coastguard Worker  * Obsolete, not used anymore.
175*7c568831SAndroid Build Coastguard Worker  */
176*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ANYATTR_STRICT        3
177*7c568831SAndroid Build Coastguard Worker /**
178*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ANY_SKIP:
179*7c568831SAndroid Build Coastguard Worker  *
180*7c568831SAndroid Build Coastguard Worker  * Skip unknown attribute from validation
181*7c568831SAndroid Build Coastguard Worker  */
182*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ANY_SKIP        1
183*7c568831SAndroid Build Coastguard Worker /**
184*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ANY_LAX:
185*7c568831SAndroid Build Coastguard Worker  *
186*7c568831SAndroid Build Coastguard Worker  * Used by wildcards.
187*7c568831SAndroid Build Coastguard Worker  * Validate if type found, don't worry if not found
188*7c568831SAndroid Build Coastguard Worker  */
189*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ANY_LAX                2
190*7c568831SAndroid Build Coastguard Worker /**
191*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ANY_STRICT:
192*7c568831SAndroid Build Coastguard Worker  *
193*7c568831SAndroid Build Coastguard Worker  * Used by wildcards.
194*7c568831SAndroid Build Coastguard Worker  * Apply strict validation rules
195*7c568831SAndroid Build Coastguard Worker  */
196*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ANY_STRICT        3
197*7c568831SAndroid Build Coastguard Worker /**
198*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTR_USE_PROHIBITED:
199*7c568831SAndroid Build Coastguard Worker  *
200*7c568831SAndroid Build Coastguard Worker  * Used by wildcards.
201*7c568831SAndroid Build Coastguard Worker  * The attribute is prohibited.
202*7c568831SAndroid Build Coastguard Worker  */
203*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTR_USE_PROHIBITED 0
204*7c568831SAndroid Build Coastguard Worker /**
205*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTR_USE_REQUIRED:
206*7c568831SAndroid Build Coastguard Worker  *
207*7c568831SAndroid Build Coastguard Worker  * The attribute is required.
208*7c568831SAndroid Build Coastguard Worker  */
209*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTR_USE_REQUIRED 1
210*7c568831SAndroid Build Coastguard Worker /**
211*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTR_USE_OPTIONAL:
212*7c568831SAndroid Build Coastguard Worker  *
213*7c568831SAndroid Build Coastguard Worker  * The attribute is optional.
214*7c568831SAndroid Build Coastguard Worker  */
215*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTR_USE_OPTIONAL 2
216*7c568831SAndroid Build Coastguard Worker /**
217*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTR_GLOBAL:
218*7c568831SAndroid Build Coastguard Worker  *
219*7c568831SAndroid Build Coastguard Worker  * allow elements in no namespace
220*7c568831SAndroid Build Coastguard Worker  */
221*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTR_GLOBAL        1 << 0
222*7c568831SAndroid Build Coastguard Worker /**
223*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTR_NSDEFAULT:
224*7c568831SAndroid Build Coastguard Worker  *
225*7c568831SAndroid Build Coastguard Worker  * allow elements in no namespace
226*7c568831SAndroid Build Coastguard Worker  */
227*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTR_NSDEFAULT        1 << 7
228*7c568831SAndroid Build Coastguard Worker /**
229*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTR_INTERNAL_RESOLVED:
230*7c568831SAndroid Build Coastguard Worker  *
231*7c568831SAndroid Build Coastguard Worker  * this is set when the "type" and "ref" references
232*7c568831SAndroid Build Coastguard Worker  * have been resolved.
233*7c568831SAndroid Build Coastguard Worker  */
234*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED        1 << 8
235*7c568831SAndroid Build Coastguard Worker /**
236*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTR_FIXED:
237*7c568831SAndroid Build Coastguard Worker  *
238*7c568831SAndroid Build Coastguard Worker  * the attribute has a fixed value
239*7c568831SAndroid Build Coastguard Worker  */
240*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTR_FIXED        1 << 9
241*7c568831SAndroid Build Coastguard Worker 
242*7c568831SAndroid Build Coastguard Worker /**
243*7c568831SAndroid Build Coastguard Worker  * xmlSchemaAttribute:
244*7c568831SAndroid Build Coastguard Worker  * An attribute definition.
245*7c568831SAndroid Build Coastguard Worker  */
246*7c568831SAndroid Build Coastguard Worker 
247*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaAttribute xmlSchemaAttribute;
248*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaAttribute *xmlSchemaAttributePtr;
249*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaAttribute {
250*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypeType type;
251*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaAttribute *next; /* the next attribute (not used?) */
252*7c568831SAndroid Build Coastguard Worker     const xmlChar *name; /* the name of the declaration */
253*7c568831SAndroid Build Coastguard Worker     const xmlChar *id; /* Deprecated; not used */
254*7c568831SAndroid Build Coastguard Worker     const xmlChar *ref; /* Deprecated; not used */
255*7c568831SAndroid Build Coastguard Worker     const xmlChar *refNs; /* Deprecated; not used */
256*7c568831SAndroid Build Coastguard Worker     const xmlChar *typeName; /* the local name of the type definition */
257*7c568831SAndroid Build Coastguard Worker     const xmlChar *typeNs; /* the ns URI of the type definition */
258*7c568831SAndroid Build Coastguard Worker     xmlSchemaAnnotPtr annot;
259*7c568831SAndroid Build Coastguard Worker 
260*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypePtr base; /* Deprecated; not used */
261*7c568831SAndroid Build Coastguard Worker     int occurs; /* Deprecated; not used */
262*7c568831SAndroid Build Coastguard Worker     const xmlChar *defValue; /* The initial value of the value constraint */
263*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypePtr subtypes; /* the type definition */
264*7c568831SAndroid Build Coastguard Worker     xmlNodePtr node;
265*7c568831SAndroid Build Coastguard Worker     const xmlChar *targetNamespace;
266*7c568831SAndroid Build Coastguard Worker     int flags;
267*7c568831SAndroid Build Coastguard Worker     const xmlChar *refPrefix; /* Deprecated; not used */
268*7c568831SAndroid Build Coastguard Worker     xmlSchemaValPtr defVal; /* The compiled value constraint */
269*7c568831SAndroid Build Coastguard Worker     xmlSchemaAttributePtr refDecl; /* Deprecated; not used */
270*7c568831SAndroid Build Coastguard Worker };
271*7c568831SAndroid Build Coastguard Worker 
272*7c568831SAndroid Build Coastguard Worker /**
273*7c568831SAndroid Build Coastguard Worker  * xmlSchemaAttributeLink:
274*7c568831SAndroid Build Coastguard Worker  * Used to build a list of attribute uses on complexType definitions.
275*7c568831SAndroid Build Coastguard Worker  * WARNING: Deprecated; not used.
276*7c568831SAndroid Build Coastguard Worker  */
277*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaAttributeLink xmlSchemaAttributeLink;
278*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaAttributeLink *xmlSchemaAttributeLinkPtr;
279*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaAttributeLink {
280*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaAttributeLink *next;/* the next attribute link ... */
281*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaAttribute *attr;/* the linked attribute */
282*7c568831SAndroid Build Coastguard Worker };
283*7c568831SAndroid Build Coastguard Worker 
284*7c568831SAndroid Build Coastguard Worker /**
285*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_WILDCARD_COMPLETE:
286*7c568831SAndroid Build Coastguard Worker  *
287*7c568831SAndroid Build Coastguard Worker  * If the wildcard is complete.
288*7c568831SAndroid Build Coastguard Worker  */
289*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_WILDCARD_COMPLETE 1 << 0
290*7c568831SAndroid Build Coastguard Worker 
291*7c568831SAndroid Build Coastguard Worker /**
292*7c568831SAndroid Build Coastguard Worker  * xmlSchemaCharValueLink:
293*7c568831SAndroid Build Coastguard Worker  * Used to build a list of namespaces on wildcards.
294*7c568831SAndroid Build Coastguard Worker  */
295*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaWildcardNs xmlSchemaWildcardNs;
296*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaWildcardNs *xmlSchemaWildcardNsPtr;
297*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaWildcardNs {
298*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaWildcardNs *next;/* the next constraint link ... */
299*7c568831SAndroid Build Coastguard Worker     const xmlChar *value;/* the value */
300*7c568831SAndroid Build Coastguard Worker };
301*7c568831SAndroid Build Coastguard Worker 
302*7c568831SAndroid Build Coastguard Worker /**
303*7c568831SAndroid Build Coastguard Worker  * xmlSchemaWildcard.
304*7c568831SAndroid Build Coastguard Worker  * A wildcard.
305*7c568831SAndroid Build Coastguard Worker  */
306*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaWildcard xmlSchemaWildcard;
307*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaWildcard *xmlSchemaWildcardPtr;
308*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaWildcard {
309*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypeType type;        /* The kind of type */
310*7c568831SAndroid Build Coastguard Worker     const xmlChar *id; /* Deprecated; not used */
311*7c568831SAndroid Build Coastguard Worker     xmlSchemaAnnotPtr annot;
312*7c568831SAndroid Build Coastguard Worker     xmlNodePtr node;
313*7c568831SAndroid Build Coastguard Worker     int minOccurs; /* Deprecated; not used */
314*7c568831SAndroid Build Coastguard Worker     int maxOccurs; /* Deprecated; not used */
315*7c568831SAndroid Build Coastguard Worker     int processContents;
316*7c568831SAndroid Build Coastguard Worker     int any; /* Indicates if the ns constraint is of ##any */
317*7c568831SAndroid Build Coastguard Worker     xmlSchemaWildcardNsPtr nsSet; /* The list of allowed namespaces */
318*7c568831SAndroid Build Coastguard Worker     xmlSchemaWildcardNsPtr negNsSet; /* The negated namespace */
319*7c568831SAndroid Build Coastguard Worker     int flags;
320*7c568831SAndroid Build Coastguard Worker };
321*7c568831SAndroid Build Coastguard Worker 
322*7c568831SAndroid Build Coastguard Worker /**
323*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
324*7c568831SAndroid Build Coastguard Worker  *
325*7c568831SAndroid Build Coastguard Worker  * The attribute wildcard has been built.
326*7c568831SAndroid Build Coastguard Worker  */
327*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED 1 << 0
328*7c568831SAndroid Build Coastguard Worker /**
329*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTRGROUP_GLOBAL:
330*7c568831SAndroid Build Coastguard Worker  *
331*7c568831SAndroid Build Coastguard Worker  * The attribute group has been defined.
332*7c568831SAndroid Build Coastguard Worker  */
333*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTRGROUP_GLOBAL 1 << 1
334*7c568831SAndroid Build Coastguard Worker /**
335*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTRGROUP_MARKED:
336*7c568831SAndroid Build Coastguard Worker  *
337*7c568831SAndroid Build Coastguard Worker  * Marks the attr group as marked; used for circular checks.
338*7c568831SAndroid Build Coastguard Worker  */
339*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTRGROUP_MARKED 1 << 2
340*7c568831SAndroid Build Coastguard Worker 
341*7c568831SAndroid Build Coastguard Worker /**
342*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTRGROUP_REDEFINED:
343*7c568831SAndroid Build Coastguard Worker  *
344*7c568831SAndroid Build Coastguard Worker  * The attr group was redefined.
345*7c568831SAndroid Build Coastguard Worker  */
346*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTRGROUP_REDEFINED 1 << 3
347*7c568831SAndroid Build Coastguard Worker /**
348*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ATTRGROUP_HAS_REFS:
349*7c568831SAndroid Build Coastguard Worker  *
350*7c568831SAndroid Build Coastguard Worker  * Whether this attr. group contains attr. group references.
351*7c568831SAndroid Build Coastguard Worker  */
352*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ATTRGROUP_HAS_REFS 1 << 4
353*7c568831SAndroid Build Coastguard Worker 
354*7c568831SAndroid Build Coastguard Worker /**
355*7c568831SAndroid Build Coastguard Worker  * An attribute group definition.
356*7c568831SAndroid Build Coastguard Worker  *
357*7c568831SAndroid Build Coastguard Worker  * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures
358*7c568831SAndroid Build Coastguard Worker  * must be kept similar
359*7c568831SAndroid Build Coastguard Worker  */
360*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaAttributeGroup xmlSchemaAttributeGroup;
361*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaAttributeGroup *xmlSchemaAttributeGroupPtr;
362*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaAttributeGroup {
363*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypeType type;        /* The kind of type */
364*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */
365*7c568831SAndroid Build Coastguard Worker     const xmlChar *name;
366*7c568831SAndroid Build Coastguard Worker     const xmlChar *id;
367*7c568831SAndroid Build Coastguard Worker     const xmlChar *ref; /* Deprecated; not used */
368*7c568831SAndroid Build Coastguard Worker     const xmlChar *refNs; /* Deprecated; not used */
369*7c568831SAndroid Build Coastguard Worker     xmlSchemaAnnotPtr annot;
370*7c568831SAndroid Build Coastguard Worker 
371*7c568831SAndroid Build Coastguard Worker     xmlSchemaAttributePtr attributes; /* Deprecated; not used */
372*7c568831SAndroid Build Coastguard Worker     xmlNodePtr node;
373*7c568831SAndroid Build Coastguard Worker     int flags;
374*7c568831SAndroid Build Coastguard Worker     xmlSchemaWildcardPtr attributeWildcard;
375*7c568831SAndroid Build Coastguard Worker     const xmlChar *refPrefix; /* Deprecated; not used */
376*7c568831SAndroid Build Coastguard Worker     xmlSchemaAttributeGroupPtr refItem; /* Deprecated; not used */
377*7c568831SAndroid Build Coastguard Worker     const xmlChar *targetNamespace;
378*7c568831SAndroid Build Coastguard Worker     void *attrUses;
379*7c568831SAndroid Build Coastguard Worker };
380*7c568831SAndroid Build Coastguard Worker 
381*7c568831SAndroid Build Coastguard Worker /**
382*7c568831SAndroid Build Coastguard Worker  * xmlSchemaTypeLink:
383*7c568831SAndroid Build Coastguard Worker  * Used to build a list of types (e.g. member types of
384*7c568831SAndroid Build Coastguard Worker  * simpleType with variety "union").
385*7c568831SAndroid Build Coastguard Worker  */
386*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaTypeLink xmlSchemaTypeLink;
387*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaTypeLink *xmlSchemaTypeLinkPtr;
388*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaTypeLink {
389*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaTypeLink *next;/* the next type link ... */
390*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypePtr type;/* the linked type */
391*7c568831SAndroid Build Coastguard Worker };
392*7c568831SAndroid Build Coastguard Worker 
393*7c568831SAndroid Build Coastguard Worker /**
394*7c568831SAndroid Build Coastguard Worker  * xmlSchemaFacetLink:
395*7c568831SAndroid Build Coastguard Worker  * Used to build a list of facets.
396*7c568831SAndroid Build Coastguard Worker  */
397*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaFacetLink xmlSchemaFacetLink;
398*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaFacetLink *xmlSchemaFacetLinkPtr;
399*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaFacetLink {
400*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaFacetLink *next;/* the next facet link ... */
401*7c568831SAndroid Build Coastguard Worker     xmlSchemaFacetPtr facet;/* the linked facet */
402*7c568831SAndroid Build Coastguard Worker };
403*7c568831SAndroid Build Coastguard Worker 
404*7c568831SAndroid Build Coastguard Worker /**
405*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_MIXED:
406*7c568831SAndroid Build Coastguard Worker  *
407*7c568831SAndroid Build Coastguard Worker  * the element content type is mixed
408*7c568831SAndroid Build Coastguard Worker  */
409*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_MIXED                1 << 0
410*7c568831SAndroid Build Coastguard Worker /**
411*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION:
412*7c568831SAndroid Build Coastguard Worker  *
413*7c568831SAndroid Build Coastguard Worker  * the simple or complex type has a derivation method of "extension".
414*7c568831SAndroid Build Coastguard Worker  */
415*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION                1 << 1
416*7c568831SAndroid Build Coastguard Worker /**
417*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION:
418*7c568831SAndroid Build Coastguard Worker  *
419*7c568831SAndroid Build Coastguard Worker  * the simple or complex type has a derivation method of "restriction".
420*7c568831SAndroid Build Coastguard Worker  */
421*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION                1 << 2
422*7c568831SAndroid Build Coastguard Worker /**
423*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_GLOBAL:
424*7c568831SAndroid Build Coastguard Worker  *
425*7c568831SAndroid Build Coastguard Worker  * the type is global
426*7c568831SAndroid Build Coastguard Worker  */
427*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_GLOBAL                1 << 3
428*7c568831SAndroid Build Coastguard Worker /**
429*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD:
430*7c568831SAndroid Build Coastguard Worker  *
431*7c568831SAndroid Build Coastguard Worker  * the complexType owns an attribute wildcard, i.e.
432*7c568831SAndroid Build Coastguard Worker  * it can be freed by the complexType
433*7c568831SAndroid Build Coastguard Worker  */
434*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD    1 << 4 /* Obsolete. */
435*7c568831SAndroid Build Coastguard Worker /**
436*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_VARIETY_ABSENT:
437*7c568831SAndroid Build Coastguard Worker  *
438*7c568831SAndroid Build Coastguard Worker  * the simpleType has a variety of "absent".
439*7c568831SAndroid Build Coastguard Worker  * TODO: Actually not necessary :-/, since if
440*7c568831SAndroid Build Coastguard Worker  * none of the variety flags occur then it's
441*7c568831SAndroid Build Coastguard Worker  * automatically absent.
442*7c568831SAndroid Build Coastguard Worker  */
443*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_VARIETY_ABSENT    1 << 5
444*7c568831SAndroid Build Coastguard Worker /**
445*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_VARIETY_LIST:
446*7c568831SAndroid Build Coastguard Worker  *
447*7c568831SAndroid Build Coastguard Worker  * the simpleType has a variety of "list".
448*7c568831SAndroid Build Coastguard Worker  */
449*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_VARIETY_LIST    1 << 6
450*7c568831SAndroid Build Coastguard Worker /**
451*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_VARIETY_UNION:
452*7c568831SAndroid Build Coastguard Worker  *
453*7c568831SAndroid Build Coastguard Worker  * the simpleType has a variety of "union".
454*7c568831SAndroid Build Coastguard Worker  */
455*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_VARIETY_UNION    1 << 7
456*7c568831SAndroid Build Coastguard Worker /**
457*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_VARIETY_ATOMIC:
458*7c568831SAndroid Build Coastguard Worker  *
459*7c568831SAndroid Build Coastguard Worker  * the simpleType has a variety of "union".
460*7c568831SAndroid Build Coastguard Worker  */
461*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_VARIETY_ATOMIC    1 << 8
462*7c568831SAndroid Build Coastguard Worker /**
463*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_FINAL_EXTENSION:
464*7c568831SAndroid Build Coastguard Worker  *
465*7c568831SAndroid Build Coastguard Worker  * the complexType has a final of "extension".
466*7c568831SAndroid Build Coastguard Worker  */
467*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_FINAL_EXTENSION    1 << 9
468*7c568831SAndroid Build Coastguard Worker /**
469*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_FINAL_RESTRICTION:
470*7c568831SAndroid Build Coastguard Worker  *
471*7c568831SAndroid Build Coastguard Worker  * the simpleType/complexType has a final of "restriction".
472*7c568831SAndroid Build Coastguard Worker  */
473*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_FINAL_RESTRICTION    1 << 10
474*7c568831SAndroid Build Coastguard Worker /**
475*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_FINAL_LIST:
476*7c568831SAndroid Build Coastguard Worker  *
477*7c568831SAndroid Build Coastguard Worker  * the simpleType has a final of "list".
478*7c568831SAndroid Build Coastguard Worker  */
479*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_FINAL_LIST    1 << 11
480*7c568831SAndroid Build Coastguard Worker /**
481*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_FINAL_UNION:
482*7c568831SAndroid Build Coastguard Worker  *
483*7c568831SAndroid Build Coastguard Worker  * the simpleType has a final of "union".
484*7c568831SAndroid Build Coastguard Worker  */
485*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_FINAL_UNION    1 << 12
486*7c568831SAndroid Build Coastguard Worker /**
487*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_FINAL_DEFAULT:
488*7c568831SAndroid Build Coastguard Worker  *
489*7c568831SAndroid Build Coastguard Worker  * the simpleType has a final of "default".
490*7c568831SAndroid Build Coastguard Worker  */
491*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_FINAL_DEFAULT    1 << 13
492*7c568831SAndroid Build Coastguard Worker /**
493*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE:
494*7c568831SAndroid Build Coastguard Worker  *
495*7c568831SAndroid Build Coastguard Worker  * Marks the item as a builtin primitive.
496*7c568831SAndroid Build Coastguard Worker  */
497*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE    1 << 14
498*7c568831SAndroid Build Coastguard Worker /**
499*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_MARKED:
500*7c568831SAndroid Build Coastguard Worker  *
501*7c568831SAndroid Build Coastguard Worker  * Marks the item as marked; used for circular checks.
502*7c568831SAndroid Build Coastguard Worker  */
503*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_MARKED        1 << 16
504*7c568831SAndroid Build Coastguard Worker /**
505*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_BLOCK_DEFAULT:
506*7c568831SAndroid Build Coastguard Worker  *
507*7c568831SAndroid Build Coastguard Worker  * the complexType did not specify 'block' so use the default of the
508*7c568831SAndroid Build Coastguard Worker  * <schema> item.
509*7c568831SAndroid Build Coastguard Worker  */
510*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_BLOCK_DEFAULT    1 << 17
511*7c568831SAndroid Build Coastguard Worker /**
512*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_BLOCK_EXTENSION:
513*7c568831SAndroid Build Coastguard Worker  *
514*7c568831SAndroid Build Coastguard Worker  * the complexType has a 'block' of "extension".
515*7c568831SAndroid Build Coastguard Worker  */
516*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_BLOCK_EXTENSION    1 << 18
517*7c568831SAndroid Build Coastguard Worker /**
518*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_BLOCK_RESTRICTION:
519*7c568831SAndroid Build Coastguard Worker  *
520*7c568831SAndroid Build Coastguard Worker  * the complexType has a 'block' of "restriction".
521*7c568831SAndroid Build Coastguard Worker  */
522*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION    1 << 19
523*7c568831SAndroid Build Coastguard Worker /**
524*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_ABSTRACT:
525*7c568831SAndroid Build Coastguard Worker  *
526*7c568831SAndroid Build Coastguard Worker  * the simple/complexType is abstract.
527*7c568831SAndroid Build Coastguard Worker  */
528*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_ABSTRACT    1 << 20
529*7c568831SAndroid Build Coastguard Worker /**
530*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_FACETSNEEDVALUE:
531*7c568831SAndroid Build Coastguard Worker  *
532*7c568831SAndroid Build Coastguard Worker  * indicates if the facets need a computed value
533*7c568831SAndroid Build Coastguard Worker  */
534*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_FACETSNEEDVALUE    1 << 21
535*7c568831SAndroid Build Coastguard Worker /**
536*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED:
537*7c568831SAndroid Build Coastguard Worker  *
538*7c568831SAndroid Build Coastguard Worker  * indicates that the type was typefixed
539*7c568831SAndroid Build Coastguard Worker  */
540*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED    1 << 22
541*7c568831SAndroid Build Coastguard Worker /**
542*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_INTERNAL_INVALID:
543*7c568831SAndroid Build Coastguard Worker  *
544*7c568831SAndroid Build Coastguard Worker  * indicates that the type is invalid
545*7c568831SAndroid Build Coastguard Worker  */
546*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_INTERNAL_INVALID    1 << 23
547*7c568831SAndroid Build Coastguard Worker /**
548*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE:
549*7c568831SAndroid Build Coastguard Worker  *
550*7c568831SAndroid Build Coastguard Worker  * a whitespace-facet value of "preserve"
551*7c568831SAndroid Build Coastguard Worker  */
552*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE    1 << 24
553*7c568831SAndroid Build Coastguard Worker /**
554*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_WHITESPACE_REPLACE:
555*7c568831SAndroid Build Coastguard Worker  *
556*7c568831SAndroid Build Coastguard Worker  * a whitespace-facet value of "replace"
557*7c568831SAndroid Build Coastguard Worker  */
558*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE    1 << 25
559*7c568831SAndroid Build Coastguard Worker /**
560*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE:
561*7c568831SAndroid Build Coastguard Worker  *
562*7c568831SAndroid Build Coastguard Worker  * a whitespace-facet value of "collapse"
563*7c568831SAndroid Build Coastguard Worker  */
564*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE    1 << 26
565*7c568831SAndroid Build Coastguard Worker /**
566*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_HAS_FACETS:
567*7c568831SAndroid Build Coastguard Worker  *
568*7c568831SAndroid Build Coastguard Worker  * has facets
569*7c568831SAndroid Build Coastguard Worker  */
570*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_HAS_FACETS    1 << 27
571*7c568831SAndroid Build Coastguard Worker /**
572*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_NORMVALUENEEDED:
573*7c568831SAndroid Build Coastguard Worker  *
574*7c568831SAndroid Build Coastguard Worker  * indicates if the facets (pattern) need a normalized value
575*7c568831SAndroid Build Coastguard Worker  */
576*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_NORMVALUENEEDED    1 << 28
577*7c568831SAndroid Build Coastguard Worker 
578*7c568831SAndroid Build Coastguard Worker /**
579*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_FIXUP_1:
580*7c568831SAndroid Build Coastguard Worker  *
581*7c568831SAndroid Build Coastguard Worker  * First stage of fixup was done.
582*7c568831SAndroid Build Coastguard Worker  */
583*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_FIXUP_1    1 << 29
584*7c568831SAndroid Build Coastguard Worker 
585*7c568831SAndroid Build Coastguard Worker /**
586*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_REDEFINED:
587*7c568831SAndroid Build Coastguard Worker  *
588*7c568831SAndroid Build Coastguard Worker  * The type was redefined.
589*7c568831SAndroid Build Coastguard Worker  */
590*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_TYPE_REDEFINED    1 << 30
591*7c568831SAndroid Build Coastguard Worker /**
592*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_TYPE_REDEFINING:
593*7c568831SAndroid Build Coastguard Worker  *
594*7c568831SAndroid Build Coastguard Worker  * The type redefines an other type.
595*7c568831SAndroid Build Coastguard Worker  */
596*7c568831SAndroid Build Coastguard Worker /* #define XML_SCHEMAS_TYPE_REDEFINING    1 << 31 */
597*7c568831SAndroid Build Coastguard Worker 
598*7c568831SAndroid Build Coastguard Worker /**
599*7c568831SAndroid Build Coastguard Worker  * _xmlSchemaType:
600*7c568831SAndroid Build Coastguard Worker  *
601*7c568831SAndroid Build Coastguard Worker  * Schemas type definition.
602*7c568831SAndroid Build Coastguard Worker  */
603*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaType {
604*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypeType type; /* The kind of type */
605*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaType *next; /* the next type if in a sequence ... */
606*7c568831SAndroid Build Coastguard Worker     const xmlChar *name;
607*7c568831SAndroid Build Coastguard Worker     const xmlChar *id ; /* Deprecated; not used */
608*7c568831SAndroid Build Coastguard Worker     const xmlChar *ref; /* Deprecated; not used */
609*7c568831SAndroid Build Coastguard Worker     const xmlChar *refNs; /* Deprecated; not used */
610*7c568831SAndroid Build Coastguard Worker     xmlSchemaAnnotPtr annot;
611*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypePtr subtypes;
612*7c568831SAndroid Build Coastguard Worker     xmlSchemaAttributePtr attributes; /* Deprecated; not used */
613*7c568831SAndroid Build Coastguard Worker     xmlNodePtr node;
614*7c568831SAndroid Build Coastguard Worker     int minOccurs; /* Deprecated; not used */
615*7c568831SAndroid Build Coastguard Worker     int maxOccurs; /* Deprecated; not used */
616*7c568831SAndroid Build Coastguard Worker 
617*7c568831SAndroid Build Coastguard Worker     int flags;
618*7c568831SAndroid Build Coastguard Worker     xmlSchemaContentType contentType;
619*7c568831SAndroid Build Coastguard Worker     const xmlChar *base; /* Base type's local name */
620*7c568831SAndroid Build Coastguard Worker     const xmlChar *baseNs; /* Base type's target namespace */
621*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypePtr baseType; /* The base type component */
622*7c568831SAndroid Build Coastguard Worker     xmlSchemaFacetPtr facets; /* Local facets */
623*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaType *redef; /* Deprecated; not used */
624*7c568831SAndroid Build Coastguard Worker     int recurse; /* Obsolete */
625*7c568831SAndroid Build Coastguard Worker     xmlSchemaAttributeLinkPtr *attributeUses; /* Deprecated; not used */
626*7c568831SAndroid Build Coastguard Worker     xmlSchemaWildcardPtr attributeWildcard;
627*7c568831SAndroid Build Coastguard Worker     int builtInType; /* Type of built-in types. */
628*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypeLinkPtr memberTypes; /* member-types if a union type. */
629*7c568831SAndroid Build Coastguard Worker     xmlSchemaFacetLinkPtr facetSet; /* All facets (incl. inherited) */
630*7c568831SAndroid Build Coastguard Worker     const xmlChar *refPrefix; /* Deprecated; not used */
631*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypePtr contentTypeDef; /* Used for the simple content of complex types.
632*7c568831SAndroid Build Coastguard Worker                                         Could we use @subtypes for this? */
633*7c568831SAndroid Build Coastguard Worker     xmlRegexpPtr contModel; /* Holds the automaton of the content model */
634*7c568831SAndroid Build Coastguard Worker     const xmlChar *targetNamespace;
635*7c568831SAndroid Build Coastguard Worker     void *attrUses;
636*7c568831SAndroid Build Coastguard Worker };
637*7c568831SAndroid Build Coastguard Worker 
638*7c568831SAndroid Build Coastguard Worker /*
639*7c568831SAndroid Build Coastguard Worker  * xmlSchemaElement:
640*7c568831SAndroid Build Coastguard Worker  * An element definition.
641*7c568831SAndroid Build Coastguard Worker  *
642*7c568831SAndroid Build Coastguard Worker  * xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of
643*7c568831SAndroid Build Coastguard Worker  * structures must be kept similar
644*7c568831SAndroid Build Coastguard Worker  */
645*7c568831SAndroid Build Coastguard Worker /**
646*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_NILLABLE:
647*7c568831SAndroid Build Coastguard Worker  *
648*7c568831SAndroid Build Coastguard Worker  * the element is nillable
649*7c568831SAndroid Build Coastguard Worker  */
650*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_NILLABLE        1 << 0
651*7c568831SAndroid Build Coastguard Worker /**
652*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_GLOBAL:
653*7c568831SAndroid Build Coastguard Worker  *
654*7c568831SAndroid Build Coastguard Worker  * the element is global
655*7c568831SAndroid Build Coastguard Worker  */
656*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_GLOBAL                1 << 1
657*7c568831SAndroid Build Coastguard Worker /**
658*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_DEFAULT:
659*7c568831SAndroid Build Coastguard Worker  *
660*7c568831SAndroid Build Coastguard Worker  * the element has a default value
661*7c568831SAndroid Build Coastguard Worker  */
662*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_DEFAULT        1 << 2
663*7c568831SAndroid Build Coastguard Worker /**
664*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_FIXED:
665*7c568831SAndroid Build Coastguard Worker  *
666*7c568831SAndroid Build Coastguard Worker  * the element has a fixed value
667*7c568831SAndroid Build Coastguard Worker  */
668*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_FIXED                1 << 3
669*7c568831SAndroid Build Coastguard Worker /**
670*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_ABSTRACT:
671*7c568831SAndroid Build Coastguard Worker  *
672*7c568831SAndroid Build Coastguard Worker  * the element is abstract
673*7c568831SAndroid Build Coastguard Worker  */
674*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_ABSTRACT        1 << 4
675*7c568831SAndroid Build Coastguard Worker /**
676*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_TOPLEVEL:
677*7c568831SAndroid Build Coastguard Worker  *
678*7c568831SAndroid Build Coastguard Worker  * the element is top level
679*7c568831SAndroid Build Coastguard Worker  * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead
680*7c568831SAndroid Build Coastguard Worker  */
681*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_TOPLEVEL        1 << 5
682*7c568831SAndroid Build Coastguard Worker /**
683*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_REF:
684*7c568831SAndroid Build Coastguard Worker  *
685*7c568831SAndroid Build Coastguard Worker  * the element is a reference to a type
686*7c568831SAndroid Build Coastguard Worker  */
687*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_REF                1 << 6
688*7c568831SAndroid Build Coastguard Worker /**
689*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_NSDEFAULT:
690*7c568831SAndroid Build Coastguard Worker  *
691*7c568831SAndroid Build Coastguard Worker  * allow elements in no namespace
692*7c568831SAndroid Build Coastguard Worker  * Obsolete, not used anymore.
693*7c568831SAndroid Build Coastguard Worker  */
694*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_NSDEFAULT        1 << 7
695*7c568831SAndroid Build Coastguard Worker /**
696*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_INTERNAL_RESOLVED:
697*7c568831SAndroid Build Coastguard Worker  *
698*7c568831SAndroid Build Coastguard Worker  * this is set when "type", "ref", "substitutionGroup"
699*7c568831SAndroid Build Coastguard Worker  * references have been resolved.
700*7c568831SAndroid Build Coastguard Worker  */
701*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED        1 << 8
702*7c568831SAndroid Build Coastguard Worker  /**
703*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_CIRCULAR:
704*7c568831SAndroid Build Coastguard Worker  *
705*7c568831SAndroid Build Coastguard Worker  * a helper flag for the search of circular references.
706*7c568831SAndroid Build Coastguard Worker  */
707*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_CIRCULAR        1 << 9
708*7c568831SAndroid Build Coastguard Worker /**
709*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_BLOCK_ABSENT:
710*7c568831SAndroid Build Coastguard Worker  *
711*7c568831SAndroid Build Coastguard Worker  * the "block" attribute is absent
712*7c568831SAndroid Build Coastguard Worker  */
713*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_BLOCK_ABSENT        1 << 10
714*7c568831SAndroid Build Coastguard Worker /**
715*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_BLOCK_EXTENSION:
716*7c568831SAndroid Build Coastguard Worker  *
717*7c568831SAndroid Build Coastguard Worker  * disallowed substitutions are absent
718*7c568831SAndroid Build Coastguard Worker  */
719*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_BLOCK_EXTENSION        1 << 11
720*7c568831SAndroid Build Coastguard Worker /**
721*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_BLOCK_RESTRICTION:
722*7c568831SAndroid Build Coastguard Worker  *
723*7c568831SAndroid Build Coastguard Worker  * disallowed substitutions: "restriction"
724*7c568831SAndroid Build Coastguard Worker  */
725*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION        1 << 12
726*7c568831SAndroid Build Coastguard Worker /**
727*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION:
728*7c568831SAndroid Build Coastguard Worker  *
729*7c568831SAndroid Build Coastguard Worker  * disallowed substitutions: "substitution"
730*7c568831SAndroid Build Coastguard Worker  */
731*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION        1 << 13
732*7c568831SAndroid Build Coastguard Worker /**
733*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_FINAL_ABSENT:
734*7c568831SAndroid Build Coastguard Worker  *
735*7c568831SAndroid Build Coastguard Worker  * substitution group exclusions are absent
736*7c568831SAndroid Build Coastguard Worker  */
737*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_FINAL_ABSENT        1 << 14
738*7c568831SAndroid Build Coastguard Worker /**
739*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_FINAL_EXTENSION:
740*7c568831SAndroid Build Coastguard Worker  *
741*7c568831SAndroid Build Coastguard Worker  * substitution group exclusions: "extension"
742*7c568831SAndroid Build Coastguard Worker  */
743*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_FINAL_EXTENSION        1 << 15
744*7c568831SAndroid Build Coastguard Worker /**
745*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_FINAL_RESTRICTION:
746*7c568831SAndroid Build Coastguard Worker  *
747*7c568831SAndroid Build Coastguard Worker  * substitution group exclusions: "restriction"
748*7c568831SAndroid Build Coastguard Worker  */
749*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_FINAL_RESTRICTION        1 << 16
750*7c568831SAndroid Build Coastguard Worker /**
751*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD:
752*7c568831SAndroid Build Coastguard Worker  *
753*7c568831SAndroid Build Coastguard Worker  * the declaration is a substitution group head
754*7c568831SAndroid Build Coastguard Worker  */
755*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD        1 << 17
756*7c568831SAndroid Build Coastguard Worker /**
757*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_ELEM_INTERNAL_CHECKED:
758*7c568831SAndroid Build Coastguard Worker  *
759*7c568831SAndroid Build Coastguard Worker  * this is set when the elem decl has been checked against
760*7c568831SAndroid Build Coastguard Worker  * all constraints
761*7c568831SAndroid Build Coastguard Worker  */
762*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_ELEM_INTERNAL_CHECKED        1 << 18
763*7c568831SAndroid Build Coastguard Worker 
764*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaElement xmlSchemaElement;
765*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaElement *xmlSchemaElementPtr;
766*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaElement {
767*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypeType type; /* The kind of type */
768*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaType *next; /* Not used? */
769*7c568831SAndroid Build Coastguard Worker     const xmlChar *name;
770*7c568831SAndroid Build Coastguard Worker     const xmlChar *id; /* Deprecated; not used */
771*7c568831SAndroid Build Coastguard Worker     const xmlChar *ref; /* Deprecated; not used */
772*7c568831SAndroid Build Coastguard Worker     const xmlChar *refNs; /* Deprecated; not used */
773*7c568831SAndroid Build Coastguard Worker     xmlSchemaAnnotPtr annot;
774*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypePtr subtypes; /* the type definition */
775*7c568831SAndroid Build Coastguard Worker     xmlSchemaAttributePtr attributes;
776*7c568831SAndroid Build Coastguard Worker     xmlNodePtr node;
777*7c568831SAndroid Build Coastguard Worker     int minOccurs; /* Deprecated; not used */
778*7c568831SAndroid Build Coastguard Worker     int maxOccurs; /* Deprecated; not used */
779*7c568831SAndroid Build Coastguard Worker 
780*7c568831SAndroid Build Coastguard Worker     int flags;
781*7c568831SAndroid Build Coastguard Worker     const xmlChar *targetNamespace;
782*7c568831SAndroid Build Coastguard Worker     const xmlChar *namedType;
783*7c568831SAndroid Build Coastguard Worker     const xmlChar *namedTypeNs;
784*7c568831SAndroid Build Coastguard Worker     const xmlChar *substGroup;
785*7c568831SAndroid Build Coastguard Worker     const xmlChar *substGroupNs;
786*7c568831SAndroid Build Coastguard Worker     const xmlChar *scope;
787*7c568831SAndroid Build Coastguard Worker     const xmlChar *value; /* The original value of the value constraint. */
788*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaElement *refDecl; /* This will now be used for the
789*7c568831SAndroid Build Coastguard Worker                                           substitution group affiliation */
790*7c568831SAndroid Build Coastguard Worker     xmlRegexpPtr contModel; /* Obsolete for WXS, maybe used for RelaxNG */
791*7c568831SAndroid Build Coastguard Worker     xmlSchemaContentType contentType;
792*7c568831SAndroid Build Coastguard Worker     const xmlChar *refPrefix; /* Deprecated; not used */
793*7c568831SAndroid Build Coastguard Worker     xmlSchemaValPtr defVal; /* The compiled value constraint. */
794*7c568831SAndroid Build Coastguard Worker     void *idcs; /* The identity-constraint defs */
795*7c568831SAndroid Build Coastguard Worker };
796*7c568831SAndroid Build Coastguard Worker 
797*7c568831SAndroid Build Coastguard Worker /*
798*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_FACET_UNKNOWN:
799*7c568831SAndroid Build Coastguard Worker  *
800*7c568831SAndroid Build Coastguard Worker  * unknown facet handling
801*7c568831SAndroid Build Coastguard Worker  */
802*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_FACET_UNKNOWN        0
803*7c568831SAndroid Build Coastguard Worker /*
804*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_FACET_PRESERVE:
805*7c568831SAndroid Build Coastguard Worker  *
806*7c568831SAndroid Build Coastguard Worker  * preserve the type of the facet
807*7c568831SAndroid Build Coastguard Worker  */
808*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_FACET_PRESERVE        1
809*7c568831SAndroid Build Coastguard Worker /*
810*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_FACET_REPLACE:
811*7c568831SAndroid Build Coastguard Worker  *
812*7c568831SAndroid Build Coastguard Worker  * replace the type of the facet
813*7c568831SAndroid Build Coastguard Worker  */
814*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_FACET_REPLACE        2
815*7c568831SAndroid Build Coastguard Worker /*
816*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_FACET_COLLAPSE:
817*7c568831SAndroid Build Coastguard Worker  *
818*7c568831SAndroid Build Coastguard Worker  * collapse the types of the facet
819*7c568831SAndroid Build Coastguard Worker  */
820*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_FACET_COLLAPSE        3
821*7c568831SAndroid Build Coastguard Worker /**
822*7c568831SAndroid Build Coastguard Worker  * A facet definition.
823*7c568831SAndroid Build Coastguard Worker  */
824*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaFacet {
825*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypeType type;        /* The kind of type */
826*7c568831SAndroid Build Coastguard Worker     struct _xmlSchemaFacet *next;/* the next type if in a sequence ... */
827*7c568831SAndroid Build Coastguard Worker     const xmlChar *value; /* The original value */
828*7c568831SAndroid Build Coastguard Worker     const xmlChar *id; /* Obsolete */
829*7c568831SAndroid Build Coastguard Worker     xmlSchemaAnnotPtr annot;
830*7c568831SAndroid Build Coastguard Worker     xmlNodePtr node;
831*7c568831SAndroid Build Coastguard Worker     int fixed; /* XML_SCHEMAS_FACET_PRESERVE, etc. */
832*7c568831SAndroid Build Coastguard Worker     int whitespace;
833*7c568831SAndroid Build Coastguard Worker     xmlSchemaValPtr val; /* The compiled value */
834*7c568831SAndroid Build Coastguard Worker     xmlRegexpPtr    regexp; /* The regex for patterns */
835*7c568831SAndroid Build Coastguard Worker };
836*7c568831SAndroid Build Coastguard Worker 
837*7c568831SAndroid Build Coastguard Worker /**
838*7c568831SAndroid Build Coastguard Worker  * A notation definition.
839*7c568831SAndroid Build Coastguard Worker  */
840*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchemaNotation xmlSchemaNotation;
841*7c568831SAndroid Build Coastguard Worker typedef xmlSchemaNotation *xmlSchemaNotationPtr;
842*7c568831SAndroid Build Coastguard Worker struct _xmlSchemaNotation {
843*7c568831SAndroid Build Coastguard Worker     xmlSchemaTypeType type; /* The kind of type */
844*7c568831SAndroid Build Coastguard Worker     const xmlChar *name;
845*7c568831SAndroid Build Coastguard Worker     xmlSchemaAnnotPtr annot;
846*7c568831SAndroid Build Coastguard Worker     const xmlChar *identifier;
847*7c568831SAndroid Build Coastguard Worker     const xmlChar *targetNamespace;
848*7c568831SAndroid Build Coastguard Worker };
849*7c568831SAndroid Build Coastguard Worker 
850*7c568831SAndroid Build Coastguard Worker /*
851*7c568831SAndroid Build Coastguard Worker * TODO: Actually all those flags used for the schema should sit
852*7c568831SAndroid Build Coastguard Worker * on the schema parser context, since they are used only
853*7c568831SAndroid Build Coastguard Worker * during parsing an XML schema document, and not available
854*7c568831SAndroid Build Coastguard Worker * on the component level as per spec.
855*7c568831SAndroid Build Coastguard Worker */
856*7c568831SAndroid Build Coastguard Worker /**
857*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_QUALIF_ELEM:
858*7c568831SAndroid Build Coastguard Worker  *
859*7c568831SAndroid Build Coastguard Worker  * Reflects elementFormDefault == qualified in
860*7c568831SAndroid Build Coastguard Worker  * an XML schema document.
861*7c568831SAndroid Build Coastguard Worker  */
862*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_QUALIF_ELEM                1 << 0
863*7c568831SAndroid Build Coastguard Worker /**
864*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_QUALIF_ATTR:
865*7c568831SAndroid Build Coastguard Worker  *
866*7c568831SAndroid Build Coastguard Worker  * Reflects attributeFormDefault == qualified in
867*7c568831SAndroid Build Coastguard Worker  * an XML schema document.
868*7c568831SAndroid Build Coastguard Worker  */
869*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_QUALIF_ATTR            1 << 1
870*7c568831SAndroid Build Coastguard Worker /**
871*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION:
872*7c568831SAndroid Build Coastguard Worker  *
873*7c568831SAndroid Build Coastguard Worker  * the schema has "extension" in the set of finalDefault.
874*7c568831SAndroid Build Coastguard Worker  */
875*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION        1 << 2
876*7c568831SAndroid Build Coastguard Worker /**
877*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION:
878*7c568831SAndroid Build Coastguard Worker  *
879*7c568831SAndroid Build Coastguard Worker  * the schema has "restriction" in the set of finalDefault.
880*7c568831SAndroid Build Coastguard Worker  */
881*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION            1 << 3
882*7c568831SAndroid Build Coastguard Worker /**
883*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_FINAL_DEFAULT_LIST:
884*7c568831SAndroid Build Coastguard Worker  *
885*7c568831SAndroid Build Coastguard Worker  * the schema has "list" in the set of finalDefault.
886*7c568831SAndroid Build Coastguard Worker  */
887*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_FINAL_DEFAULT_LIST            1 << 4
888*7c568831SAndroid Build Coastguard Worker /**
889*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_FINAL_DEFAULT_UNION:
890*7c568831SAndroid Build Coastguard Worker  *
891*7c568831SAndroid Build Coastguard Worker  * the schema has "union" in the set of finalDefault.
892*7c568831SAndroid Build Coastguard Worker  */
893*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_FINAL_DEFAULT_UNION            1 << 5
894*7c568831SAndroid Build Coastguard Worker /**
895*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION:
896*7c568831SAndroid Build Coastguard Worker  *
897*7c568831SAndroid Build Coastguard Worker  * the schema has "extension" in the set of blockDefault.
898*7c568831SAndroid Build Coastguard Worker  */
899*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION            1 << 6
900*7c568831SAndroid Build Coastguard Worker /**
901*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION:
902*7c568831SAndroid Build Coastguard Worker  *
903*7c568831SAndroid Build Coastguard Worker  * the schema has "restriction" in the set of blockDefault.
904*7c568831SAndroid Build Coastguard Worker  */
905*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION            1 << 7
906*7c568831SAndroid Build Coastguard Worker /**
907*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION:
908*7c568831SAndroid Build Coastguard Worker  *
909*7c568831SAndroid Build Coastguard Worker  * the schema has "substitution" in the set of blockDefault.
910*7c568831SAndroid Build Coastguard Worker  */
911*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION            1 << 8
912*7c568831SAndroid Build Coastguard Worker /**
913*7c568831SAndroid Build Coastguard Worker  * XML_SCHEMAS_INCLUDING_CONVERT_NS:
914*7c568831SAndroid Build Coastguard Worker  *
915*7c568831SAndroid Build Coastguard Worker  * the schema is currently including an other schema with
916*7c568831SAndroid Build Coastguard Worker  * no target namespace.
917*7c568831SAndroid Build Coastguard Worker  */
918*7c568831SAndroid Build Coastguard Worker #define XML_SCHEMAS_INCLUDING_CONVERT_NS            1 << 9
919*7c568831SAndroid Build Coastguard Worker /**
920*7c568831SAndroid Build Coastguard Worker  * _xmlSchema:
921*7c568831SAndroid Build Coastguard Worker  *
922*7c568831SAndroid Build Coastguard Worker  * A Schemas definition
923*7c568831SAndroid Build Coastguard Worker  */
924*7c568831SAndroid Build Coastguard Worker struct _xmlSchema {
925*7c568831SAndroid Build Coastguard Worker     const xmlChar *name; /* schema name */
926*7c568831SAndroid Build Coastguard Worker     const xmlChar *targetNamespace; /* the target namespace */
927*7c568831SAndroid Build Coastguard Worker     const xmlChar *version;
928*7c568831SAndroid Build Coastguard Worker     const xmlChar *id; /* Obsolete */
929*7c568831SAndroid Build Coastguard Worker     xmlDocPtr doc;
930*7c568831SAndroid Build Coastguard Worker     xmlSchemaAnnotPtr annot;
931*7c568831SAndroid Build Coastguard Worker     int flags;
932*7c568831SAndroid Build Coastguard Worker 
933*7c568831SAndroid Build Coastguard Worker     xmlHashTablePtr typeDecl;
934*7c568831SAndroid Build Coastguard Worker     xmlHashTablePtr attrDecl;
935*7c568831SAndroid Build Coastguard Worker     xmlHashTablePtr attrgrpDecl;
936*7c568831SAndroid Build Coastguard Worker     xmlHashTablePtr elemDecl;
937*7c568831SAndroid Build Coastguard Worker     xmlHashTablePtr notaDecl;
938*7c568831SAndroid Build Coastguard Worker 
939*7c568831SAndroid Build Coastguard Worker     xmlHashTablePtr schemasImports;
940*7c568831SAndroid Build Coastguard Worker 
941*7c568831SAndroid Build Coastguard Worker     void *_private;        /* unused by the library for users or bindings */
942*7c568831SAndroid Build Coastguard Worker     xmlHashTablePtr groupDecl;
943*7c568831SAndroid Build Coastguard Worker     xmlDictPtr      dict;
944*7c568831SAndroid Build Coastguard Worker     void *includes;     /* the includes, this is opaque for now */
945*7c568831SAndroid Build Coastguard Worker     int preserve;        /* whether to free the document */
946*7c568831SAndroid Build Coastguard Worker     int counter; /* used to give anonymous components unique names */
947*7c568831SAndroid Build Coastguard Worker     xmlHashTablePtr idcDef; /* All identity-constraint defs. */
948*7c568831SAndroid Build Coastguard Worker     void *volatiles; /* Obsolete */
949*7c568831SAndroid Build Coastguard Worker };
950*7c568831SAndroid Build Coastguard Worker 
951*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void         xmlSchemaFreeType        (xmlSchemaTypePtr type);
952*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void         xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard);
953*7c568831SAndroid Build Coastguard Worker 
954*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
955*7c568831SAndroid Build Coastguard Worker }
956*7c568831SAndroid Build Coastguard Worker #endif
957*7c568831SAndroid Build Coastguard Worker 
958*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SCHEMAS_ENABLED */
959*7c568831SAndroid Build Coastguard Worker #endif /* __XML_SCHEMA_INTERNALS_H__ */
960