11 #ifndef __XML_VALID_H__
12 #define __XML_VALID_H__
14 #include <libxml/xmlversion.h>
15 #include <libxml/xmlerror.h>
16 #include <libxml/tree.h>
17 #include <libxml/list.h>
18 #include <libxml/xmlautomata.h>
19 #include <libxml/xmlregexp.h>
28 typedef struct _xmlValidState xmlValidState;
29 typedef xmlValidState *xmlValidStatePtr;
42 typedef void (XMLCDECL *xmlValidityErrorFunc) (
void *ctx,
44 ...) LIBXML_ATTR_FORMAT(2,3);
57 typedef void (XMLCDECL *xmlValidityWarningFunc) (
void *ctx,
59 ...) LIBXML_ATTR_FORMAT(2,3);
67 #define XML_CTXT_FINISH_DTD_0 0xabcd1234
73 #define XML_CTXT_FINISH_DTD_1 0xabcd1235
80 typedef struct _xmlValidCtxt xmlValidCtxt;
81 typedef xmlValidCtxt *xmlValidCtxtPtr;
82 struct _xmlValidCtxt {
84 xmlValidityErrorFunc error;
85 xmlValidityWarningFunc warning;
93 unsigned int finishDtd;
98 xmlValidState *vstate;
101 xmlValidState *vstateTab;
103 #ifdef LIBXML_REGEXP_ENABLED
105 xmlAutomataStatePtr state;
117 typedef struct _xmlHashTable xmlNotationTable;
118 typedef xmlNotationTable *xmlNotationTablePtr;
125 typedef struct _xmlHashTable xmlElementTable;
126 typedef xmlElementTable *xmlElementTablePtr;
133 typedef struct _xmlHashTable xmlAttributeTable;
134 typedef xmlAttributeTable *xmlAttributeTablePtr;
141 typedef struct _xmlHashTable xmlIDTable;
142 typedef xmlIDTable *xmlIDTablePtr;
149 typedef struct _xmlHashTable xmlRefTable;
150 typedef xmlRefTable *xmlRefTablePtr;
153 XMLPUBFUN xmlNotationPtr XMLCALL
154 xmlAddNotationDecl (xmlValidCtxtPtr ctxt,
157 const xmlChar *PublicID,
158 const xmlChar *SystemID);
159 #ifdef LIBXML_TREE_ENABLED
160 XMLPUBFUN xmlNotationTablePtr XMLCALL
161 xmlCopyNotationTable (xmlNotationTablePtr table);
163 XMLPUBFUN
void XMLCALL
164 xmlFreeNotationTable (xmlNotationTablePtr table);
165 #ifdef LIBXML_OUTPUT_ENABLED
166 XMLPUBFUN
void XMLCALL
167 xmlDumpNotationDecl (xmlBufferPtr buf,
168 xmlNotationPtr nota);
169 XMLPUBFUN
void XMLCALL
170 xmlDumpNotationTable (xmlBufferPtr buf,
171 xmlNotationTablePtr table);
176 XMLPUBFUN xmlElementContentPtr XMLCALL
177 xmlNewElementContent (
const xmlChar *name,
178 xmlElementContentType type);
179 XMLPUBFUN xmlElementContentPtr XMLCALL
180 xmlCopyElementContent (xmlElementContentPtr content);
181 XMLPUBFUN
void XMLCALL
182 xmlFreeElementContent (xmlElementContentPtr cur);
184 XMLPUBFUN xmlElementContentPtr XMLCALL
185 xmlNewDocElementContent (xmlDocPtr doc,
187 xmlElementContentType type);
188 XMLPUBFUN xmlElementContentPtr XMLCALL
189 xmlCopyDocElementContent(xmlDocPtr doc,
190 xmlElementContentPtr content);
191 XMLPUBFUN
void XMLCALL
192 xmlFreeDocElementContent(xmlDocPtr doc,
193 xmlElementContentPtr cur);
194 XMLPUBFUN
void XMLCALL
195 xmlSnprintfElementContent(
char *buf,
197 xmlElementContentPtr content,
199 #ifdef LIBXML_OUTPUT_ENABLED
201 XMLPUBFUN
void XMLCALL
202 xmlSprintfElementContent(
char *buf,
203 xmlElementContentPtr content,
209 XMLPUBFUN xmlElementPtr XMLCALL
210 xmlAddElementDecl (xmlValidCtxtPtr ctxt,
213 xmlElementTypeVal type,
214 xmlElementContentPtr content);
215 #ifdef LIBXML_TREE_ENABLED
216 XMLPUBFUN xmlElementTablePtr XMLCALL
217 xmlCopyElementTable (xmlElementTablePtr table);
219 XMLPUBFUN
void XMLCALL
220 xmlFreeElementTable (xmlElementTablePtr table);
221 #ifdef LIBXML_OUTPUT_ENABLED
222 XMLPUBFUN
void XMLCALL
223 xmlDumpElementTable (xmlBufferPtr buf,
224 xmlElementTablePtr table);
225 XMLPUBFUN
void XMLCALL
226 xmlDumpElementDecl (xmlBufferPtr buf,
231 XMLPUBFUN xmlEnumerationPtr XMLCALL
232 xmlCreateEnumeration (
const xmlChar *name);
233 XMLPUBFUN
void XMLCALL
234 xmlFreeEnumeration (xmlEnumerationPtr cur);
235 #ifdef LIBXML_TREE_ENABLED
236 XMLPUBFUN xmlEnumerationPtr XMLCALL
237 xmlCopyEnumeration (xmlEnumerationPtr cur);
241 XMLPUBFUN xmlAttributePtr XMLCALL
242 xmlAddAttributeDecl (xmlValidCtxtPtr ctxt,
247 xmlAttributeType type,
248 xmlAttributeDefault def,
249 const xmlChar *defaultValue,
250 xmlEnumerationPtr tree);
251 #ifdef LIBXML_TREE_ENABLED
252 XMLPUBFUN xmlAttributeTablePtr XMLCALL
253 xmlCopyAttributeTable (xmlAttributeTablePtr table);
255 XMLPUBFUN
void XMLCALL
256 xmlFreeAttributeTable (xmlAttributeTablePtr table);
257 #ifdef LIBXML_OUTPUT_ENABLED
258 XMLPUBFUN
void XMLCALL
259 xmlDumpAttributeTable (xmlBufferPtr buf,
260 xmlAttributeTablePtr table);
261 XMLPUBFUN
void XMLCALL
262 xmlDumpAttributeDecl (xmlBufferPtr buf,
263 xmlAttributePtr attr);
267 XMLPUBFUN xmlIDPtr XMLCALL
268 xmlAddID (xmlValidCtxtPtr ctxt,
270 const xmlChar *value,
272 XMLPUBFUN
void XMLCALL
273 xmlFreeIDTable (xmlIDTablePtr table);
274 XMLPUBFUN xmlAttrPtr XMLCALL
275 xmlGetID (xmlDocPtr doc,
277 XMLPUBFUN
int XMLCALL
278 xmlIsID (xmlDocPtr doc,
281 XMLPUBFUN
int XMLCALL
282 xmlRemoveID (xmlDocPtr doc,
286 XMLPUBFUN xmlRefPtr XMLCALL
287 xmlAddRef (xmlValidCtxtPtr ctxt,
289 const xmlChar *value,
291 XMLPUBFUN
void XMLCALL
292 xmlFreeRefTable (xmlRefTablePtr table);
293 XMLPUBFUN
int XMLCALL
294 xmlIsRef (xmlDocPtr doc,
297 XMLPUBFUN
int XMLCALL
298 xmlRemoveRef (xmlDocPtr doc,
300 XMLPUBFUN xmlListPtr XMLCALL
301 xmlGetRefs (xmlDocPtr doc,
307 #ifdef LIBXML_VALID_ENABLED
309 XMLPUBFUN xmlValidCtxtPtr XMLCALL
310 xmlNewValidCtxt(
void);
311 XMLPUBFUN
void XMLCALL
312 xmlFreeValidCtxt(xmlValidCtxtPtr);
314 XMLPUBFUN
int XMLCALL
315 xmlValidateRoot (xmlValidCtxtPtr ctxt,
317 XMLPUBFUN
int XMLCALL
318 xmlValidateElementDecl (xmlValidCtxtPtr ctxt,
321 XMLPUBFUN xmlChar * XMLCALL
322 xmlValidNormalizeAttributeValue(xmlDocPtr doc,
325 const xmlChar *value);
326 XMLPUBFUN xmlChar * XMLCALL
327 xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt,
331 const xmlChar *value);
332 XMLPUBFUN
int XMLCALL
333 xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt,
335 xmlAttributePtr attr);
336 XMLPUBFUN
int XMLCALL
337 xmlValidateAttributeValue(xmlAttributeType type,
338 const xmlChar *value);
339 XMLPUBFUN
int XMLCALL
340 xmlValidateNotationDecl (xmlValidCtxtPtr ctxt,
342 xmlNotationPtr nota);
343 XMLPUBFUN
int XMLCALL
344 xmlValidateDtd (xmlValidCtxtPtr ctxt,
347 XMLPUBFUN
int XMLCALL
348 xmlValidateDtdFinal (xmlValidCtxtPtr ctxt,
350 XMLPUBFUN
int XMLCALL
351 xmlValidateDocument (xmlValidCtxtPtr ctxt,
353 XMLPUBFUN
int XMLCALL
354 xmlValidateElement (xmlValidCtxtPtr ctxt,
357 XMLPUBFUN
int XMLCALL
358 xmlValidateOneElement (xmlValidCtxtPtr ctxt,
361 XMLPUBFUN
int XMLCALL
362 xmlValidateOneAttribute (xmlValidCtxtPtr ctxt,
366 const xmlChar *value);
367 XMLPUBFUN
int XMLCALL
368 xmlValidateOneNamespace (xmlValidCtxtPtr ctxt,
371 const xmlChar *prefix,
373 const xmlChar *value);
374 XMLPUBFUN
int XMLCALL
375 xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt,
379 #if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
380 XMLPUBFUN
int XMLCALL
381 xmlValidateNotationUse (xmlValidCtxtPtr ctxt,
383 const xmlChar *notationName);
386 XMLPUBFUN
int XMLCALL
387 xmlIsMixedElement (xmlDocPtr doc,
388 const xmlChar *name);
389 XMLPUBFUN xmlAttributePtr XMLCALL
390 xmlGetDtdAttrDesc (xmlDtdPtr dtd,
392 const xmlChar *name);
393 XMLPUBFUN xmlAttributePtr XMLCALL
394 xmlGetDtdQAttrDesc (xmlDtdPtr dtd,
397 const xmlChar *prefix);
398 XMLPUBFUN xmlNotationPtr XMLCALL
399 xmlGetDtdNotationDesc (xmlDtdPtr dtd,
400 const xmlChar *name);
401 XMLPUBFUN xmlElementPtr XMLCALL
402 xmlGetDtdQElementDesc (xmlDtdPtr dtd,
404 const xmlChar *prefix);
405 XMLPUBFUN xmlElementPtr XMLCALL
406 xmlGetDtdElementDesc (xmlDtdPtr dtd,
407 const xmlChar *name);
409 #ifdef LIBXML_VALID_ENABLED
411 XMLPUBFUN
int XMLCALL
412 xmlValidGetPotentialChildren(xmlElementContent *ctree,
413 const xmlChar **names,
417 XMLPUBFUN
int XMLCALL
418 xmlValidGetValidElements(xmlNode *prev,
420 const xmlChar **names,
422 XMLPUBFUN
int XMLCALL
423 xmlValidateNameValue (
const xmlChar *value);
424 XMLPUBFUN
int XMLCALL
425 xmlValidateNamesValue (
const xmlChar *value);
426 XMLPUBFUN
int XMLCALL
427 xmlValidateNmtokenValue (
const xmlChar *value);
428 XMLPUBFUN
int XMLCALL
429 xmlValidateNmtokensValue(
const xmlChar *value);
431 #ifdef LIBXML_REGEXP_ENABLED
435 XMLPUBFUN
int XMLCALL
436 xmlValidBuildContentModel(xmlValidCtxtPtr ctxt,
439 XMLPUBFUN
int XMLCALL
440 xmlValidatePushElement (xmlValidCtxtPtr ctxt,
443 const xmlChar *qname);
444 XMLPUBFUN
int XMLCALL
445 xmlValidatePushCData (xmlValidCtxtPtr ctxt,
448 XMLPUBFUN
int XMLCALL
449 xmlValidatePopElement (xmlValidCtxtPtr ctxt,
452 const xmlChar *qname);