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