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