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