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