xref: /aosp_15_r20/external/libxml2/include/libxml/valid.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker /*
2*7c568831SAndroid Build Coastguard Worker  * Summary: The DTD validation
3*7c568831SAndroid Build Coastguard Worker  * Description: API for the DTD handling and the validity checking
4*7c568831SAndroid Build Coastguard Worker  *
5*7c568831SAndroid Build Coastguard Worker  * Copy: See Copyright for the status of this software.
6*7c568831SAndroid Build Coastguard Worker  *
7*7c568831SAndroid Build Coastguard Worker  * Author: Daniel Veillard
8*7c568831SAndroid Build Coastguard Worker  */
9*7c568831SAndroid Build Coastguard Worker 
10*7c568831SAndroid Build Coastguard Worker 
11*7c568831SAndroid Build Coastguard Worker #ifndef __XML_VALID_H__
12*7c568831SAndroid Build Coastguard Worker #define __XML_VALID_H__
13*7c568831SAndroid Build Coastguard Worker 
14*7c568831SAndroid Build Coastguard Worker /** DOC_DISABLE */
15*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h>
16*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlerror.h>
17*7c568831SAndroid Build Coastguard Worker #define XML_TREE_INTERNALS
18*7c568831SAndroid Build Coastguard Worker #include <libxml/tree.h>
19*7c568831SAndroid Build Coastguard Worker #undef XML_TREE_INTERNALS
20*7c568831SAndroid Build Coastguard Worker #include <libxml/list.h>
21*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlautomata.h>
22*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlregexp.h>
23*7c568831SAndroid Build Coastguard Worker /** DOC_ENABLE */
24*7c568831SAndroid Build Coastguard Worker 
25*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
26*7c568831SAndroid Build Coastguard Worker extern "C" {
27*7c568831SAndroid Build Coastguard Worker #endif
28*7c568831SAndroid Build Coastguard Worker 
29*7c568831SAndroid Build Coastguard Worker /*
30*7c568831SAndroid Build Coastguard Worker  * Validation state added for non-determinist content model.
31*7c568831SAndroid Build Coastguard Worker  */
32*7c568831SAndroid Build Coastguard Worker typedef struct _xmlValidState xmlValidState;
33*7c568831SAndroid Build Coastguard Worker typedef xmlValidState *xmlValidStatePtr;
34*7c568831SAndroid Build Coastguard Worker 
35*7c568831SAndroid Build Coastguard Worker /**
36*7c568831SAndroid Build Coastguard Worker  * xmlValidityErrorFunc:
37*7c568831SAndroid Build Coastguard Worker  * @ctx:  usually an xmlValidCtxtPtr to a validity error context,
38*7c568831SAndroid Build Coastguard Worker  *        but comes from ctxt->userData (which normally contains such
39*7c568831SAndroid Build Coastguard Worker  *        a pointer); ctxt->userData can be changed by the user.
40*7c568831SAndroid Build Coastguard Worker  * @msg:  the string to format *printf like vararg
41*7c568831SAndroid Build Coastguard Worker  * @...:  remaining arguments to the format
42*7c568831SAndroid Build Coastguard Worker  *
43*7c568831SAndroid Build Coastguard Worker  * Callback called when a validity error is found. This is a message
44*7c568831SAndroid Build Coastguard Worker  * oriented function similar to an *printf function.
45*7c568831SAndroid Build Coastguard Worker  */
46*7c568831SAndroid Build Coastguard Worker typedef void (*xmlValidityErrorFunc) (void *ctx,
47*7c568831SAndroid Build Coastguard Worker 			     const char *msg,
48*7c568831SAndroid Build Coastguard Worker 			     ...) LIBXML_ATTR_FORMAT(2,3);
49*7c568831SAndroid Build Coastguard Worker 
50*7c568831SAndroid Build Coastguard Worker /**
51*7c568831SAndroid Build Coastguard Worker  * xmlValidityWarningFunc:
52*7c568831SAndroid Build Coastguard Worker  * @ctx:  usually an xmlValidCtxtPtr to a validity error context,
53*7c568831SAndroid Build Coastguard Worker  *        but comes from ctxt->userData (which normally contains such
54*7c568831SAndroid Build Coastguard Worker  *        a pointer); ctxt->userData can be changed by the user.
55*7c568831SAndroid Build Coastguard Worker  * @msg:  the string to format *printf like vararg
56*7c568831SAndroid Build Coastguard Worker  * @...:  remaining arguments to the format
57*7c568831SAndroid Build Coastguard Worker  *
58*7c568831SAndroid Build Coastguard Worker  * Callback called when a validity warning is found. This is a message
59*7c568831SAndroid Build Coastguard Worker  * oriented function similar to an *printf function.
60*7c568831SAndroid Build Coastguard Worker  */
61*7c568831SAndroid Build Coastguard Worker typedef void (*xmlValidityWarningFunc) (void *ctx,
62*7c568831SAndroid Build Coastguard Worker 			       const char *msg,
63*7c568831SAndroid Build Coastguard Worker 			       ...) LIBXML_ATTR_FORMAT(2,3);
64*7c568831SAndroid Build Coastguard Worker 
65*7c568831SAndroid Build Coastguard Worker /*
66*7c568831SAndroid Build Coastguard Worker  * xmlValidCtxt:
67*7c568831SAndroid Build Coastguard Worker  * An xmlValidCtxt is used for error reporting when validating.
68*7c568831SAndroid Build Coastguard Worker  */
69*7c568831SAndroid Build Coastguard Worker typedef struct _xmlValidCtxt xmlValidCtxt;
70*7c568831SAndroid Build Coastguard Worker typedef xmlValidCtxt *xmlValidCtxtPtr;
71*7c568831SAndroid Build Coastguard Worker struct _xmlValidCtxt {
72*7c568831SAndroid Build Coastguard Worker     void *userData;			/* user specific data block */
73*7c568831SAndroid Build Coastguard Worker     xmlValidityErrorFunc error;		/* the callback in case of errors */
74*7c568831SAndroid Build Coastguard Worker     xmlValidityWarningFunc warning;	/* the callback in case of warning */
75*7c568831SAndroid Build Coastguard Worker 
76*7c568831SAndroid Build Coastguard Worker     /* Node analysis stack used when validating within entities */
77*7c568831SAndroid Build Coastguard Worker     xmlNodePtr         node;          /* Current parsed Node */
78*7c568831SAndroid Build Coastguard Worker     int                nodeNr;        /* Depth of the parsing stack */
79*7c568831SAndroid Build Coastguard Worker     int                nodeMax;       /* Max depth of the parsing stack */
80*7c568831SAndroid Build Coastguard Worker     xmlNodePtr        *nodeTab;       /* array of nodes */
81*7c568831SAndroid Build Coastguard Worker 
82*7c568831SAndroid Build Coastguard Worker     unsigned int         flags;       /* internal flags */
83*7c568831SAndroid Build Coastguard Worker     xmlDocPtr              doc;       /* the document */
84*7c568831SAndroid Build Coastguard Worker     int                  valid;       /* temporary validity check result */
85*7c568831SAndroid Build Coastguard Worker 
86*7c568831SAndroid Build Coastguard Worker     /* state state used for non-determinist content validation */
87*7c568831SAndroid Build Coastguard Worker     xmlValidState     *vstate;        /* current state */
88*7c568831SAndroid Build Coastguard Worker     int                vstateNr;      /* Depth of the validation stack */
89*7c568831SAndroid Build Coastguard Worker     int                vstateMax;     /* Max depth of the validation stack */
90*7c568831SAndroid Build Coastguard Worker     xmlValidState     *vstateTab;     /* array of validation states */
91*7c568831SAndroid Build Coastguard Worker 
92*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_REGEXP_ENABLED
93*7c568831SAndroid Build Coastguard Worker     xmlAutomataPtr            am;     /* the automata */
94*7c568831SAndroid Build Coastguard Worker     xmlAutomataStatePtr    state;     /* used to build the automata */
95*7c568831SAndroid Build Coastguard Worker #else
96*7c568831SAndroid Build Coastguard Worker     void                     *am;
97*7c568831SAndroid Build Coastguard Worker     void                  *state;
98*7c568831SAndroid Build Coastguard Worker #endif
99*7c568831SAndroid Build Coastguard Worker };
100*7c568831SAndroid Build Coastguard Worker 
101*7c568831SAndroid Build Coastguard Worker /*
102*7c568831SAndroid Build Coastguard Worker  * ALL notation declarations are stored in a table.
103*7c568831SAndroid Build Coastguard Worker  * There is one table per DTD.
104*7c568831SAndroid Build Coastguard Worker  */
105*7c568831SAndroid Build Coastguard Worker 
106*7c568831SAndroid Build Coastguard Worker typedef struct _xmlHashTable xmlNotationTable;
107*7c568831SAndroid Build Coastguard Worker typedef xmlNotationTable *xmlNotationTablePtr;
108*7c568831SAndroid Build Coastguard Worker 
109*7c568831SAndroid Build Coastguard Worker /*
110*7c568831SAndroid Build Coastguard Worker  * ALL element declarations are stored in a table.
111*7c568831SAndroid Build Coastguard Worker  * There is one table per DTD.
112*7c568831SAndroid Build Coastguard Worker  */
113*7c568831SAndroid Build Coastguard Worker 
114*7c568831SAndroid Build Coastguard Worker typedef struct _xmlHashTable xmlElementTable;
115*7c568831SAndroid Build Coastguard Worker typedef xmlElementTable *xmlElementTablePtr;
116*7c568831SAndroid Build Coastguard Worker 
117*7c568831SAndroid Build Coastguard Worker /*
118*7c568831SAndroid Build Coastguard Worker  * ALL attribute declarations are stored in a table.
119*7c568831SAndroid Build Coastguard Worker  * There is one table per DTD.
120*7c568831SAndroid Build Coastguard Worker  */
121*7c568831SAndroid Build Coastguard Worker 
122*7c568831SAndroid Build Coastguard Worker typedef struct _xmlHashTable xmlAttributeTable;
123*7c568831SAndroid Build Coastguard Worker typedef xmlAttributeTable *xmlAttributeTablePtr;
124*7c568831SAndroid Build Coastguard Worker 
125*7c568831SAndroid Build Coastguard Worker /*
126*7c568831SAndroid Build Coastguard Worker  * ALL IDs attributes are stored in a table.
127*7c568831SAndroid Build Coastguard Worker  * There is one table per document.
128*7c568831SAndroid Build Coastguard Worker  */
129*7c568831SAndroid Build Coastguard Worker 
130*7c568831SAndroid Build Coastguard Worker typedef struct _xmlHashTable xmlIDTable;
131*7c568831SAndroid Build Coastguard Worker typedef xmlIDTable *xmlIDTablePtr;
132*7c568831SAndroid Build Coastguard Worker 
133*7c568831SAndroid Build Coastguard Worker /*
134*7c568831SAndroid Build Coastguard Worker  * ALL Refs attributes are stored in a table.
135*7c568831SAndroid Build Coastguard Worker  * There is one table per document.
136*7c568831SAndroid Build Coastguard Worker  */
137*7c568831SAndroid Build Coastguard Worker 
138*7c568831SAndroid Build Coastguard Worker typedef struct _xmlHashTable xmlRefTable;
139*7c568831SAndroid Build Coastguard Worker typedef xmlRefTable *xmlRefTablePtr;
140*7c568831SAndroid Build Coastguard Worker 
141*7c568831SAndroid Build Coastguard Worker /* Notation */
142*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlNotationPtr
143*7c568831SAndroid Build Coastguard Worker 		xmlAddNotationDecl	(xmlValidCtxtPtr ctxt,
144*7c568831SAndroid Build Coastguard Worker 					 xmlDtdPtr dtd,
145*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name,
146*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *PublicID,
147*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *SystemID);
148*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlNotationTablePtr
149*7c568831SAndroid Build Coastguard Worker 		xmlCopyNotationTable	(xmlNotationTablePtr table);
150*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
151*7c568831SAndroid Build Coastguard Worker 		xmlFreeNotationTable	(xmlNotationTablePtr table);
152*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_OUTPUT_ENABLED
153*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
154*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
155*7c568831SAndroid Build Coastguard Worker 		xmlDumpNotationDecl	(xmlBufferPtr buf,
156*7c568831SAndroid Build Coastguard Worker 					 xmlNotationPtr nota);
157*7c568831SAndroid Build Coastguard Worker /* XML_DEPRECATED, still used in lxml */
158*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
159*7c568831SAndroid Build Coastguard Worker 		xmlDumpNotationTable	(xmlBufferPtr buf,
160*7c568831SAndroid Build Coastguard Worker 					 xmlNotationTablePtr table);
161*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_OUTPUT_ENABLED */
162*7c568831SAndroid Build Coastguard Worker 
163*7c568831SAndroid Build Coastguard Worker /* Element Content */
164*7c568831SAndroid Build Coastguard Worker /* the non Doc version are being deprecated */
165*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlElementContentPtr
166*7c568831SAndroid Build Coastguard Worker 		xmlNewElementContent	(const xmlChar *name,
167*7c568831SAndroid Build Coastguard Worker 					 xmlElementContentType type);
168*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlElementContentPtr
169*7c568831SAndroid Build Coastguard Worker 		xmlCopyElementContent	(xmlElementContentPtr content);
170*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
171*7c568831SAndroid Build Coastguard Worker 		xmlFreeElementContent	(xmlElementContentPtr cur);
172*7c568831SAndroid Build Coastguard Worker /* the new versions with doc argument */
173*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlElementContentPtr
174*7c568831SAndroid Build Coastguard Worker 		xmlNewDocElementContent	(xmlDocPtr doc,
175*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name,
176*7c568831SAndroid Build Coastguard Worker 					 xmlElementContentType type);
177*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlElementContentPtr
178*7c568831SAndroid Build Coastguard Worker 		xmlCopyDocElementContent(xmlDocPtr doc,
179*7c568831SAndroid Build Coastguard Worker 					 xmlElementContentPtr content);
180*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
181*7c568831SAndroid Build Coastguard Worker 		xmlFreeDocElementContent(xmlDocPtr doc,
182*7c568831SAndroid Build Coastguard Worker 					 xmlElementContentPtr cur);
183*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
184*7c568831SAndroid Build Coastguard Worker 		xmlSnprintfElementContent(char *buf,
185*7c568831SAndroid Build Coastguard Worker 					 int size,
186*7c568831SAndroid Build Coastguard Worker 	                                 xmlElementContentPtr content,
187*7c568831SAndroid Build Coastguard Worker 					 int englob);
188*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_OUTPUT_ENABLED
189*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
190*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
191*7c568831SAndroid Build Coastguard Worker 		xmlSprintfElementContent(char *buf,
192*7c568831SAndroid Build Coastguard Worker 	                                 xmlElementContentPtr content,
193*7c568831SAndroid Build Coastguard Worker 					 int englob);
194*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_OUTPUT_ENABLED */
195*7c568831SAndroid Build Coastguard Worker 
196*7c568831SAndroid Build Coastguard Worker /* Element */
197*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlElementPtr
198*7c568831SAndroid Build Coastguard Worker 		xmlAddElementDecl	(xmlValidCtxtPtr ctxt,
199*7c568831SAndroid Build Coastguard Worker 					 xmlDtdPtr dtd,
200*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name,
201*7c568831SAndroid Build Coastguard Worker 					 xmlElementTypeVal type,
202*7c568831SAndroid Build Coastguard Worker 					 xmlElementContentPtr content);
203*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlElementTablePtr
204*7c568831SAndroid Build Coastguard Worker 		xmlCopyElementTable	(xmlElementTablePtr table);
205*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
206*7c568831SAndroid Build Coastguard Worker 		xmlFreeElementTable	(xmlElementTablePtr table);
207*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_OUTPUT_ENABLED
208*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
209*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
210*7c568831SAndroid Build Coastguard Worker 		xmlDumpElementTable	(xmlBufferPtr buf,
211*7c568831SAndroid Build Coastguard Worker 					 xmlElementTablePtr table);
212*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
213*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
214*7c568831SAndroid Build Coastguard Worker 		xmlDumpElementDecl	(xmlBufferPtr buf,
215*7c568831SAndroid Build Coastguard Worker 					 xmlElementPtr elem);
216*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_OUTPUT_ENABLED */
217*7c568831SAndroid Build Coastguard Worker 
218*7c568831SAndroid Build Coastguard Worker /* Enumeration */
219*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlEnumerationPtr
220*7c568831SAndroid Build Coastguard Worker 		xmlCreateEnumeration	(const xmlChar *name);
221*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
222*7c568831SAndroid Build Coastguard Worker 		xmlFreeEnumeration	(xmlEnumerationPtr cur);
223*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlEnumerationPtr
224*7c568831SAndroid Build Coastguard Worker 		xmlCopyEnumeration	(xmlEnumerationPtr cur);
225*7c568831SAndroid Build Coastguard Worker 
226*7c568831SAndroid Build Coastguard Worker /* Attribute */
227*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlAttributePtr
228*7c568831SAndroid Build Coastguard Worker 		xmlAddAttributeDecl	(xmlValidCtxtPtr ctxt,
229*7c568831SAndroid Build Coastguard Worker 					 xmlDtdPtr dtd,
230*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *elem,
231*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name,
232*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *ns,
233*7c568831SAndroid Build Coastguard Worker 					 xmlAttributeType type,
234*7c568831SAndroid Build Coastguard Worker 					 xmlAttributeDefault def,
235*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *defaultValue,
236*7c568831SAndroid Build Coastguard Worker 					 xmlEnumerationPtr tree);
237*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlAttributeTablePtr
238*7c568831SAndroid Build Coastguard Worker 		xmlCopyAttributeTable  (xmlAttributeTablePtr table);
239*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
240*7c568831SAndroid Build Coastguard Worker 		xmlFreeAttributeTable  (xmlAttributeTablePtr table);
241*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_OUTPUT_ENABLED
242*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
243*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
244*7c568831SAndroid Build Coastguard Worker 		xmlDumpAttributeTable  (xmlBufferPtr buf,
245*7c568831SAndroid Build Coastguard Worker 					xmlAttributeTablePtr table);
246*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
247*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
248*7c568831SAndroid Build Coastguard Worker 		xmlDumpAttributeDecl   (xmlBufferPtr buf,
249*7c568831SAndroid Build Coastguard Worker 					xmlAttributePtr attr);
250*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_OUTPUT_ENABLED */
251*7c568831SAndroid Build Coastguard Worker 
252*7c568831SAndroid Build Coastguard Worker /* IDs */
253*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
254*7c568831SAndroid Build Coastguard Worker 		xmlAddIDSafe	       (xmlAttrPtr attr,
255*7c568831SAndroid Build Coastguard Worker 					const xmlChar *value);
256*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlIDPtr
257*7c568831SAndroid Build Coastguard Worker 		xmlAddID	       (xmlValidCtxtPtr ctxt,
258*7c568831SAndroid Build Coastguard Worker 					xmlDocPtr doc,
259*7c568831SAndroid Build Coastguard Worker 					const xmlChar *value,
260*7c568831SAndroid Build Coastguard Worker 					xmlAttrPtr attr);
261*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
262*7c568831SAndroid Build Coastguard Worker 		xmlFreeIDTable	       (xmlIDTablePtr table);
263*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlAttrPtr
264*7c568831SAndroid Build Coastguard Worker 		xmlGetID	       (xmlDocPtr doc,
265*7c568831SAndroid Build Coastguard Worker 					const xmlChar *ID);
266*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
267*7c568831SAndroid Build Coastguard Worker 		xmlIsID		       (xmlDocPtr doc,
268*7c568831SAndroid Build Coastguard Worker 					xmlNodePtr elem,
269*7c568831SAndroid Build Coastguard Worker 					xmlAttrPtr attr);
270*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
271*7c568831SAndroid Build Coastguard Worker 		xmlRemoveID	       (xmlDocPtr doc,
272*7c568831SAndroid Build Coastguard Worker 					xmlAttrPtr attr);
273*7c568831SAndroid Build Coastguard Worker 
274*7c568831SAndroid Build Coastguard Worker /* IDREFs */
275*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
276*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlRefPtr
277*7c568831SAndroid Build Coastguard Worker 		xmlAddRef	       (xmlValidCtxtPtr ctxt,
278*7c568831SAndroid Build Coastguard Worker 					xmlDocPtr doc,
279*7c568831SAndroid Build Coastguard Worker 					const xmlChar *value,
280*7c568831SAndroid Build Coastguard Worker 					xmlAttrPtr attr);
281*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
282*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
283*7c568831SAndroid Build Coastguard Worker 		xmlFreeRefTable	       (xmlRefTablePtr table);
284*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
285*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
286*7c568831SAndroid Build Coastguard Worker 		xmlIsRef	       (xmlDocPtr doc,
287*7c568831SAndroid Build Coastguard Worker 					xmlNodePtr elem,
288*7c568831SAndroid Build Coastguard Worker 					xmlAttrPtr attr);
289*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
290*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
291*7c568831SAndroid Build Coastguard Worker 		xmlRemoveRef	       (xmlDocPtr doc,
292*7c568831SAndroid Build Coastguard Worker 					xmlAttrPtr attr);
293*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
294*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlListPtr
295*7c568831SAndroid Build Coastguard Worker 		xmlGetRefs	       (xmlDocPtr doc,
296*7c568831SAndroid Build Coastguard Worker 					const xmlChar *ID);
297*7c568831SAndroid Build Coastguard Worker 
298*7c568831SAndroid Build Coastguard Worker /**
299*7c568831SAndroid Build Coastguard Worker  * The public function calls related to validity checking.
300*7c568831SAndroid Build Coastguard Worker  */
301*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_VALID_ENABLED
302*7c568831SAndroid Build Coastguard Worker /* Allocate/Release Validation Contexts */
303*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlValidCtxtPtr
304*7c568831SAndroid Build Coastguard Worker 		xmlNewValidCtxt(void);
305*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
306*7c568831SAndroid Build Coastguard Worker 		xmlFreeValidCtxt(xmlValidCtxtPtr);
307*7c568831SAndroid Build Coastguard Worker 
308*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
309*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
310*7c568831SAndroid Build Coastguard Worker 		xmlValidateRoot		(xmlValidCtxtPtr ctxt,
311*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc);
312*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
313*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
314*7c568831SAndroid Build Coastguard Worker 		xmlValidateElementDecl	(xmlValidCtxtPtr ctxt,
315*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
316*7c568831SAndroid Build Coastguard Worker 		                         xmlElementPtr elem);
317*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
318*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlChar *
319*7c568831SAndroid Build Coastguard Worker 		xmlValidNormalizeAttributeValue(xmlDocPtr doc,
320*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr elem,
321*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name,
322*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *value);
323*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
324*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlChar *
325*7c568831SAndroid Build Coastguard Worker 		xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt,
326*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
327*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr elem,
328*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name,
329*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *value);
330*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
331*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
332*7c568831SAndroid Build Coastguard Worker 		xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt,
333*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
334*7c568831SAndroid Build Coastguard Worker 		                         xmlAttributePtr attr);
335*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
336*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
337*7c568831SAndroid Build Coastguard Worker 		xmlValidateAttributeValue(xmlAttributeType type,
338*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *value);
339*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
340*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
341*7c568831SAndroid Build Coastguard Worker 		xmlValidateNotationDecl	(xmlValidCtxtPtr ctxt,
342*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
343*7c568831SAndroid Build Coastguard Worker 		                         xmlNotationPtr nota);
344*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
345*7c568831SAndroid Build Coastguard Worker 		xmlValidateDtd		(xmlValidCtxtPtr ctxt,
346*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
347*7c568831SAndroid Build Coastguard Worker 					 xmlDtdPtr dtd);
348*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
349*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
350*7c568831SAndroid Build Coastguard Worker 		xmlValidateDtdFinal	(xmlValidCtxtPtr ctxt,
351*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc);
352*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
353*7c568831SAndroid Build Coastguard Worker 		xmlValidateDocument	(xmlValidCtxtPtr ctxt,
354*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc);
355*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
356*7c568831SAndroid Build Coastguard Worker 		xmlValidateElement	(xmlValidCtxtPtr ctxt,
357*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
358*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr elem);
359*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
360*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
361*7c568831SAndroid Build Coastguard Worker 		xmlValidateOneElement	(xmlValidCtxtPtr ctxt,
362*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
363*7c568831SAndroid Build Coastguard Worker 		                         xmlNodePtr elem);
364*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
365*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
366*7c568831SAndroid Build Coastguard Worker 		xmlValidateOneAttribute	(xmlValidCtxtPtr ctxt,
367*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
368*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr	elem,
369*7c568831SAndroid Build Coastguard Worker 					 xmlAttrPtr attr,
370*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *value);
371*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
372*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
373*7c568831SAndroid Build Coastguard Worker 		xmlValidateOneNamespace	(xmlValidCtxtPtr ctxt,
374*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
375*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr elem,
376*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *prefix,
377*7c568831SAndroid Build Coastguard Worker 					 xmlNsPtr ns,
378*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *value);
379*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
380*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
381*7c568831SAndroid Build Coastguard Worker 		xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt,
382*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc);
383*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
384*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
385*7c568831SAndroid Build Coastguard Worker 		xmlValidateNotationUse	(xmlValidCtxtPtr ctxt,
386*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
387*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *notationName);
388*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_VALID_ENABLED */
389*7c568831SAndroid Build Coastguard Worker 
390*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
391*7c568831SAndroid Build Coastguard Worker 		xmlIsMixedElement	(xmlDocPtr doc,
392*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name);
393*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlAttributePtr
394*7c568831SAndroid Build Coastguard Worker 		xmlGetDtdAttrDesc	(xmlDtdPtr dtd,
395*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *elem,
396*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name);
397*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlAttributePtr
398*7c568831SAndroid Build Coastguard Worker 		xmlGetDtdQAttrDesc	(xmlDtdPtr dtd,
399*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *elem,
400*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name,
401*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *prefix);
402*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlNotationPtr
403*7c568831SAndroid Build Coastguard Worker 		xmlGetDtdNotationDesc	(xmlDtdPtr dtd,
404*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name);
405*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlElementPtr
406*7c568831SAndroid Build Coastguard Worker 		xmlGetDtdQElementDesc	(xmlDtdPtr dtd,
407*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name,
408*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *prefix);
409*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlElementPtr
410*7c568831SAndroid Build Coastguard Worker 		xmlGetDtdElementDesc	(xmlDtdPtr dtd,
411*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *name);
412*7c568831SAndroid Build Coastguard Worker 
413*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_VALID_ENABLED
414*7c568831SAndroid Build Coastguard Worker 
415*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
416*7c568831SAndroid Build Coastguard Worker 		xmlValidGetPotentialChildren(xmlElementContent *ctree,
417*7c568831SAndroid Build Coastguard Worker 					 const xmlChar **names,
418*7c568831SAndroid Build Coastguard Worker 					 int *len,
419*7c568831SAndroid Build Coastguard Worker 					 int max);
420*7c568831SAndroid Build Coastguard Worker 
421*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
422*7c568831SAndroid Build Coastguard Worker 		xmlValidGetValidElements(xmlNode *prev,
423*7c568831SAndroid Build Coastguard Worker 					 xmlNode *next,
424*7c568831SAndroid Build Coastguard Worker 					 const xmlChar **names,
425*7c568831SAndroid Build Coastguard Worker 					 int max);
426*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
427*7c568831SAndroid Build Coastguard Worker 		xmlValidateNameValue	(const xmlChar *value);
428*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
429*7c568831SAndroid Build Coastguard Worker 		xmlValidateNamesValue	(const xmlChar *value);
430*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
431*7c568831SAndroid Build Coastguard Worker 		xmlValidateNmtokenValue	(const xmlChar *value);
432*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
433*7c568831SAndroid Build Coastguard Worker 		xmlValidateNmtokensValue(const xmlChar *value);
434*7c568831SAndroid Build Coastguard Worker 
435*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_REGEXP_ENABLED
436*7c568831SAndroid Build Coastguard Worker /*
437*7c568831SAndroid Build Coastguard Worker  * Validation based on the regexp support
438*7c568831SAndroid Build Coastguard Worker  */
439*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
440*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
441*7c568831SAndroid Build Coastguard Worker 		xmlValidBuildContentModel(xmlValidCtxtPtr ctxt,
442*7c568831SAndroid Build Coastguard Worker 					 xmlElementPtr elem);
443*7c568831SAndroid Build Coastguard Worker 
444*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
445*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
446*7c568831SAndroid Build Coastguard Worker 		xmlValidatePushElement	(xmlValidCtxtPtr ctxt,
447*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
448*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr elem,
449*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *qname);
450*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
451*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
452*7c568831SAndroid Build Coastguard Worker 		xmlValidatePushCData	(xmlValidCtxtPtr ctxt,
453*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *data,
454*7c568831SAndroid Build Coastguard Worker 					 int len);
455*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
456*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
457*7c568831SAndroid Build Coastguard Worker 		xmlValidatePopElement	(xmlValidCtxtPtr ctxt,
458*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr doc,
459*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr elem,
460*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *qname);
461*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_REGEXP_ENABLED */
462*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_VALID_ENABLED */
463*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
464*7c568831SAndroid Build Coastguard Worker }
465*7c568831SAndroid Build Coastguard Worker #endif
466*7c568831SAndroid Build Coastguard Worker #endif /* __XML_VALID_H__ */
467