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