Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hhhrrrttt222111
GitHub Repository: hhhrrrttt222111/Dorkify
Path: blob/master/venv/Lib/site-packages/lxml/includes/libxml/relaxng.h
811 views
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__ */
218
219