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