Spaces:
Runtime error
Runtime error
| /* | |
| * Summary: The DTD validation | |
| * Description: API for the DTD handling and the validity checking | |
| * | |
| * Copy: See Copyright for the status of this software. | |
| * | |
| * Author: Daniel Veillard | |
| */ | |
| extern "C" { | |
| /* | |
| * Validation state added for non-determinist content model. | |
| */ | |
| typedef struct _xmlValidState xmlValidState; | |
| typedef xmlValidState *xmlValidStatePtr; | |
| /** | |
| * xmlValidityErrorFunc: | |
| * @ctx: usually an xmlValidCtxtPtr to a validity error context, | |
| * but comes from ctxt->userData (which normally contains such | |
| * a pointer); ctxt->userData can be changed by the user. | |
| * @msg: the string to format *printf like vararg | |
| * @...: remaining arguments to the format | |
| * | |
| * Callback called when a validity error is found. This is a message | |
| * oriented function similar to an *printf function. | |
| */ | |
| typedef void (XMLCDECL *xmlValidityErrorFunc) (void *ctx, | |
| const char *msg, | |
| ...) LIBXML_ATTR_FORMAT(2,3); | |
| /** | |
| * xmlValidityWarningFunc: | |
| * @ctx: usually an xmlValidCtxtPtr to a validity error context, | |
| * but comes from ctxt->userData (which normally contains such | |
| * a pointer); ctxt->userData can be changed by the user. | |
| * @msg: the string to format *printf like vararg | |
| * @...: remaining arguments to the format | |
| * | |
| * Callback called when a validity warning is found. This is a message | |
| * oriented function similar to an *printf function. | |
| */ | |
| typedef void (XMLCDECL *xmlValidityWarningFunc) (void *ctx, | |
| const char *msg, | |
| ...) LIBXML_ATTR_FORMAT(2,3); | |
| /** | |
| * XML_VCTXT_DTD_VALIDATED: | |
| * | |
| * Set after xmlValidateDtdFinal was called. | |
| */ | |
| /** | |
| * XML_VCTXT_USE_PCTXT: | |
| * | |
| * Set if the validation context is part of a parser context. | |
| */ | |
| /* | |
| * xmlValidCtxt: | |
| * An xmlValidCtxt is used for error reporting when validating. | |
| */ | |
| typedef struct _xmlValidCtxt xmlValidCtxt; | |
| typedef xmlValidCtxt *xmlValidCtxtPtr; | |
| struct _xmlValidCtxt { | |
| void *userData; /* user specific data block */ | |
| xmlValidityErrorFunc error; /* the callback in case of errors */ | |
| xmlValidityWarningFunc warning; /* the callback in case of warning */ | |
| /* Node analysis stack used when validating within entities */ | |
| xmlNodePtr node; /* Current parsed Node */ | |
| int nodeNr; /* Depth of the parsing stack */ | |
| int nodeMax; /* Max depth of the parsing stack */ | |
| xmlNodePtr *nodeTab; /* array of nodes */ | |
| unsigned int flags; /* internal flags */ | |
| xmlDocPtr doc; /* the document */ | |
| int valid; /* temporary validity check result */ | |
| /* state state used for non-determinist content validation */ | |
| xmlValidState *vstate; /* current state */ | |
| int vstateNr; /* Depth of the validation stack */ | |
| int vstateMax; /* Max depth of the validation stack */ | |
| xmlValidState *vstateTab; /* array of validation states */ | |
| xmlAutomataPtr am; /* the automata */ | |
| xmlAutomataStatePtr state; /* used to build the automata */ | |
| void *am; | |
| void *state; | |
| }; | |
| /* | |
| * ALL notation declarations are stored in a table. | |
| * There is one table per DTD. | |
| */ | |
| typedef struct _xmlHashTable xmlNotationTable; | |
| typedef xmlNotationTable *xmlNotationTablePtr; | |
| /* | |
| * ALL element declarations are stored in a table. | |
| * There is one table per DTD. | |
| */ | |
| typedef struct _xmlHashTable xmlElementTable; | |
| typedef xmlElementTable *xmlElementTablePtr; | |
| /* | |
| * ALL attribute declarations are stored in a table. | |
| * There is one table per DTD. | |
| */ | |
| typedef struct _xmlHashTable xmlAttributeTable; | |
| typedef xmlAttributeTable *xmlAttributeTablePtr; | |
| /* | |
| * ALL IDs attributes are stored in a table. | |
| * There is one table per document. | |
| */ | |
| typedef struct _xmlHashTable xmlIDTable; | |
| typedef xmlIDTable *xmlIDTablePtr; | |
| /* | |
| * ALL Refs attributes are stored in a table. | |
| * There is one table per document. | |
| */ | |
| typedef struct _xmlHashTable xmlRefTable; | |
| typedef xmlRefTable *xmlRefTablePtr; | |
| /* Notation */ | |
| XMLPUBFUN xmlNotationPtr XMLCALL | |
| xmlAddNotationDecl (xmlValidCtxtPtr ctxt, | |
| xmlDtdPtr dtd, | |
| const xmlChar *name, | |
| const xmlChar *PublicID, | |
| const xmlChar *SystemID); | |
| XMLPUBFUN xmlNotationTablePtr XMLCALL | |
| xmlCopyNotationTable (xmlNotationTablePtr table); | |
| XMLPUBFUN void XMLCALL | |
| xmlFreeNotationTable (xmlNotationTablePtr table); | |
| XMLPUBFUN void XMLCALL | |
| xmlDumpNotationDecl (xmlBufferPtr buf, | |
| xmlNotationPtr nota); | |
| XMLPUBFUN void XMLCALL | |
| xmlDumpNotationTable (xmlBufferPtr buf, | |
| xmlNotationTablePtr table); | |
| /* Element Content */ | |
| /* the non Doc version are being deprecated */ | |
| XMLPUBFUN xmlElementContentPtr XMLCALL | |
| xmlNewElementContent (const xmlChar *name, | |
| xmlElementContentType type); | |
| XMLPUBFUN xmlElementContentPtr XMLCALL | |
| xmlCopyElementContent (xmlElementContentPtr content); | |
| XMLPUBFUN void XMLCALL | |
| xmlFreeElementContent (xmlElementContentPtr cur); | |
| /* the new versions with doc argument */ | |
| XMLPUBFUN xmlElementContentPtr XMLCALL | |
| xmlNewDocElementContent (xmlDocPtr doc, | |
| const xmlChar *name, | |
| xmlElementContentType type); | |
| XMLPUBFUN xmlElementContentPtr XMLCALL | |
| xmlCopyDocElementContent(xmlDocPtr doc, | |
| xmlElementContentPtr content); | |
| XMLPUBFUN void XMLCALL | |
| xmlFreeDocElementContent(xmlDocPtr doc, | |
| xmlElementContentPtr cur); | |
| XMLPUBFUN void XMLCALL | |
| xmlSnprintfElementContent(char *buf, | |
| int size, | |
| xmlElementContentPtr content, | |
| int englob); | |
| /* DEPRECATED */ | |
| XMLPUBFUN void XMLCALL | |
| xmlSprintfElementContent(char *buf, | |
| xmlElementContentPtr content, | |
| int englob); | |
| /* DEPRECATED */ | |
| /* Element */ | |
| XMLPUBFUN xmlElementPtr XMLCALL | |
| xmlAddElementDecl (xmlValidCtxtPtr ctxt, | |
| xmlDtdPtr dtd, | |
| const xmlChar *name, | |
| xmlElementTypeVal type, | |
| xmlElementContentPtr content); | |
| XMLPUBFUN xmlElementTablePtr XMLCALL | |
| xmlCopyElementTable (xmlElementTablePtr table); | |
| XMLPUBFUN void XMLCALL | |
| xmlFreeElementTable (xmlElementTablePtr table); | |
| XMLPUBFUN void XMLCALL | |
| xmlDumpElementTable (xmlBufferPtr buf, | |
| xmlElementTablePtr table); | |
| XMLPUBFUN void XMLCALL | |
| xmlDumpElementDecl (xmlBufferPtr buf, | |
| xmlElementPtr elem); | |
| /* Enumeration */ | |
| XMLPUBFUN xmlEnumerationPtr XMLCALL | |
| xmlCreateEnumeration (const xmlChar *name); | |
| XMLPUBFUN void XMLCALL | |
| xmlFreeEnumeration (xmlEnumerationPtr cur); | |
| XMLPUBFUN xmlEnumerationPtr XMLCALL | |
| xmlCopyEnumeration (xmlEnumerationPtr cur); | |
| /* Attribute */ | |
| XMLPUBFUN xmlAttributePtr XMLCALL | |
| xmlAddAttributeDecl (xmlValidCtxtPtr ctxt, | |
| xmlDtdPtr dtd, | |
| const xmlChar *elem, | |
| const xmlChar *name, | |
| const xmlChar *ns, | |
| xmlAttributeType type, | |
| xmlAttributeDefault def, | |
| const xmlChar *defaultValue, | |
| xmlEnumerationPtr tree); | |
| XMLPUBFUN xmlAttributeTablePtr XMLCALL | |
| xmlCopyAttributeTable (xmlAttributeTablePtr table); | |
| XMLPUBFUN void XMLCALL | |
| xmlFreeAttributeTable (xmlAttributeTablePtr table); | |
| XMLPUBFUN void XMLCALL | |
| xmlDumpAttributeTable (xmlBufferPtr buf, | |
| xmlAttributeTablePtr table); | |
| XMLPUBFUN void XMLCALL | |
| xmlDumpAttributeDecl (xmlBufferPtr buf, | |
| xmlAttributePtr attr); | |
| /* IDs */ | |
| XMLPUBFUN xmlIDPtr XMLCALL | |
| xmlAddID (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| const xmlChar *value, | |
| xmlAttrPtr attr); | |
| XMLPUBFUN void XMLCALL | |
| xmlFreeIDTable (xmlIDTablePtr table); | |
| XMLPUBFUN xmlAttrPtr XMLCALL | |
| xmlGetID (xmlDocPtr doc, | |
| const xmlChar *ID); | |
| XMLPUBFUN int XMLCALL | |
| xmlIsID (xmlDocPtr doc, | |
| xmlNodePtr elem, | |
| xmlAttrPtr attr); | |
| XMLPUBFUN int XMLCALL | |
| xmlRemoveID (xmlDocPtr doc, | |
| xmlAttrPtr attr); | |
| /* IDREFs */ | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlRefPtr XMLCALL | |
| xmlAddRef (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| const xmlChar *value, | |
| xmlAttrPtr attr); | |
| XML_DEPRECATED | |
| XMLPUBFUN void XMLCALL | |
| xmlFreeRefTable (xmlRefTablePtr table); | |
| XML_DEPRECATED | |
| XMLPUBFUN int XMLCALL | |
| xmlIsRef (xmlDocPtr doc, | |
| xmlNodePtr elem, | |
| xmlAttrPtr attr); | |
| XML_DEPRECATED | |
| XMLPUBFUN int XMLCALL | |
| xmlRemoveRef (xmlDocPtr doc, | |
| xmlAttrPtr attr); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlListPtr XMLCALL | |
| xmlGetRefs (xmlDocPtr doc, | |
| const xmlChar *ID); | |
| /** | |
| * The public function calls related to validity checking. | |
| */ | |
| /* Allocate/Release Validation Contexts */ | |
| XMLPUBFUN xmlValidCtxtPtr XMLCALL | |
| xmlNewValidCtxt(void); | |
| XMLPUBFUN void XMLCALL | |
| xmlFreeValidCtxt(xmlValidCtxtPtr); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateRoot (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateElementDecl (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlElementPtr elem); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlValidNormalizeAttributeValue(xmlDocPtr doc, | |
| xmlNodePtr elem, | |
| const xmlChar *name, | |
| const xmlChar *value); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlNodePtr elem, | |
| const xmlChar *name, | |
| const xmlChar *value); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlAttributePtr attr); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateAttributeValue(xmlAttributeType type, | |
| const xmlChar *value); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateNotationDecl (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlNotationPtr nota); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateDtd (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlDtdPtr dtd); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateDtdFinal (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateDocument (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateElement (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlNodePtr elem); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateOneElement (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlNodePtr elem); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateOneAttribute (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlNodePtr elem, | |
| xmlAttrPtr attr, | |
| const xmlChar *value); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateOneNamespace (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlNodePtr elem, | |
| const xmlChar *prefix, | |
| xmlNsPtr ns, | |
| const xmlChar *value); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateNotationUse (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| const xmlChar *notationName); | |
| XMLPUBFUN int XMLCALL | |
| xmlIsMixedElement (xmlDocPtr doc, | |
| const xmlChar *name); | |
| XMLPUBFUN xmlAttributePtr XMLCALL | |
| xmlGetDtdAttrDesc (xmlDtdPtr dtd, | |
| const xmlChar *elem, | |
| const xmlChar *name); | |
| XMLPUBFUN xmlAttributePtr XMLCALL | |
| xmlGetDtdQAttrDesc (xmlDtdPtr dtd, | |
| const xmlChar *elem, | |
| const xmlChar *name, | |
| const xmlChar *prefix); | |
| XMLPUBFUN xmlNotationPtr XMLCALL | |
| xmlGetDtdNotationDesc (xmlDtdPtr dtd, | |
| const xmlChar *name); | |
| XMLPUBFUN xmlElementPtr XMLCALL | |
| xmlGetDtdQElementDesc (xmlDtdPtr dtd, | |
| const xmlChar *name, | |
| const xmlChar *prefix); | |
| XMLPUBFUN xmlElementPtr XMLCALL | |
| xmlGetDtdElementDesc (xmlDtdPtr dtd, | |
| const xmlChar *name); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidGetPotentialChildren(xmlElementContent *ctree, | |
| const xmlChar **names, | |
| int *len, | |
| int max); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidGetValidElements(xmlNode *prev, | |
| xmlNode *next, | |
| const xmlChar **names, | |
| int max); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateNameValue (const xmlChar *value); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateNamesValue (const xmlChar *value); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateNmtokenValue (const xmlChar *value); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidateNmtokensValue(const xmlChar *value); | |
| /* | |
| * Validation based on the regexp support | |
| */ | |
| XMLPUBFUN int XMLCALL | |
| xmlValidBuildContentModel(xmlValidCtxtPtr ctxt, | |
| xmlElementPtr elem); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidatePushElement (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlNodePtr elem, | |
| const xmlChar *qname); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidatePushCData (xmlValidCtxtPtr ctxt, | |
| const xmlChar *data, | |
| int len); | |
| XMLPUBFUN int XMLCALL | |
| xmlValidatePopElement (xmlValidCtxtPtr ctxt, | |
| xmlDocPtr doc, | |
| xmlNodePtr elem, | |
| const xmlChar *qname); | |
| } | |