📄 valid.h
字号:
/* * valid.h : interface to the DTD handling and the validity checking * * See Copyright for the status of this software. * * Daniel.Veillard@w3.org */#ifndef __XML_VALID_H__#define __XML_VALID_H__#include <libxml/tree.h>#ifdef __cplusplusextern "C" {#endif/** * an xmlValidCtxt is used for error reporting when validating */typedef void (*xmlValidityErrorFunc) (void *ctx, const char *msg, ...);typedef void (*xmlValidityWarningFunc) (void *ctx, const char *msg, ...);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 */ int finishDtd; /* finished validating the Dtd ? */};/* * ALl notation declarations are stored in a table * there is one table per DTD */#define XML_MIN_NOTATION_TABLE 32typedef struct _xmlNotationTable xmlNotationTable;typedef xmlNotationTable *xmlNotationTablePtr;struct _xmlNotationTable { int nb_notations; /* number of notations stored */ int max_notations; /* maximum number of notations */ xmlNotationPtr *table; /* the table of attributes */};/* * ALl element declarations are stored in a table * there is one table per DTD */#define XML_MIN_ELEMENT_TABLE 32typedef struct _xmlElementTable xmlElementTable;typedef xmlElementTable *xmlElementTablePtr;struct _xmlElementTable { int nb_elements; /* number of elements stored */ int max_elements; /* maximum number of elements */ xmlElementPtr *table; /* the table of elements */};/* * ALl attribute declarations are stored in a table * there is one table per DTD */#define XML_MIN_ATTRIBUTE_TABLE 32typedef struct _xmlAttributeTable xmlAttributeTable;typedef xmlAttributeTable *xmlAttributeTablePtr;struct _xmlAttributeTable { int nb_attributes; /* number of attributes stored */ int max_attributes; /* maximum number of attributes */ xmlAttributePtr *table; /* the table of attributes */};/* * ALl IDs attributes are stored in a table * there is one table per document */#define XML_MIN_ID_TABLE 32typedef struct _xmlIDTable xmlIDTable;typedef xmlIDTable *xmlIDTablePtr;struct _xmlIDTable { int nb_ids; /* number of ids stored */ int max_ids; /* maximum number of ids */ xmlIDPtr *table; /* the table of ids */};/* * ALl Refs attributes are stored in a table * there is one table per document */#define XML_MIN_REF_TABLE 32typedef struct _xmlRefTable xmlRefTable;typedef xmlRefTable *xmlRefTablePtr;struct _xmlRefTable { int nb_refs; /* number of refs stored */ int max_refs; /* maximum number of refs */ xmlRefPtr *table; /* the table of refs */};/* Notation */xmlNotationPtr xmlAddNotationDecl (xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name, const xmlChar *PublicID, const xmlChar *SystemID);xmlNotationTablePtr xmlCopyNotationTable(xmlNotationTablePtr table);void xmlFreeNotationTable(xmlNotationTablePtr table);void xmlDumpNotationDecl (xmlBufferPtr buf, xmlNotationPtr nota);void xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table);/* Element Content */xmlElementContentPtr xmlNewElementContent (xmlChar *name, xmlElementContentType type);xmlElementContentPtr xmlCopyElementContent(xmlElementContentPtr content);void xmlFreeElementContent(xmlElementContentPtr cur);void xmlSprintfElementContent(char *buf, xmlElementContentPtr content, int glob);/* Element */xmlElementPtr xmlAddElementDecl (xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *name, xmlElementTypeVal type, xmlElementContentPtr content);xmlElementTablePtr xmlCopyElementTable (xmlElementTablePtr table);void xmlFreeElementTable (xmlElementTablePtr table);void xmlDumpElementTable (xmlBufferPtr buf, xmlElementTablePtr table);void xmlDumpElementDecl (xmlBufferPtr buf, xmlElementPtr elem);/* Enumeration */xmlEnumerationPtr xmlCreateEnumeration (xmlChar *name);void xmlFreeEnumeration (xmlEnumerationPtr cur);xmlEnumerationPtr xmlCopyEnumeration (xmlEnumerationPtr cur);/* Attribute */xmlAttributePtr xmlAddAttributeDecl (xmlValidCtxtPtr ctxt, xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name, const xmlChar *prefix, xmlAttributeType type, xmlAttributeDefault def, const xmlChar *defaultValue, xmlEnumerationPtr tree);xmlAttributeTablePtr xmlCopyAttributeTable (xmlAttributeTablePtr table);void xmlFreeAttributeTable (xmlAttributeTablePtr table);void xmlDumpAttributeTable (xmlBufferPtr buf, xmlAttributeTablePtr table);void xmlDumpAttributeDecl (xmlBufferPtr buf, xmlAttributePtr attr);/* IDs */xmlIDPtr xmlAddID (xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, xmlAttrPtr attr);xmlIDTablePtr xmlCopyIDTable (xmlIDTablePtr table);void xmlFreeIDTable (xmlIDTablePtr table);xmlAttrPtr xmlGetID (xmlDocPtr doc, const xmlChar *ID);int xmlIsID (xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr);int xmlRemoveID (xmlDocPtr doc, xmlAttrPtr attr);/* IDREFs */xmlRefPtr xmlAddRef (xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value, xmlAttrPtr attr);xmlRefTablePtr xmlCopyRefTable (xmlRefTablePtr table);void xmlFreeRefTable (xmlRefTablePtr table);int xmlIsRef (xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr);int xmlRemoveRef (xmlDocPtr doc, xmlAttrPtr attr);/** * The public function calls related to validity checking */int xmlValidateRoot (xmlValidCtxtPtr ctxt, xmlDocPtr doc);int xmlValidateElementDecl (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlElementPtr elem);xmlChar * xmlValidNormalizeAttributeValue(xmlDocPtr doc, xmlNodePtr elem, const xmlChar *name, const xmlChar *value);int xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlAttributePtr attr);int xmlValidateAttributeValue(xmlAttributeType type, const xmlChar *value);int xmlValidateNotationDecl (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNotationPtr nota);int xmlValidateDtd (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlDtdPtr dtd);int xmlValidateDtdFinal (xmlValidCtxtPtr ctxt, xmlDocPtr doc);int xmlValidateDocument (xmlValidCtxtPtr ctxt, xmlDocPtr doc);int xmlValidateElement (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem);int xmlValidateOneElement (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem);int xmlValidateOneAttribute (xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr, const xmlChar *value);int xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt, xmlDocPtr doc);int xmlValidateNotationUse (xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *notationName);int xmlIsMixedElement (xmlDocPtr doc, const xmlChar *name);xmlAttributePtr xmlGetDtdAttrDesc (xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name);xmlNotationPtr xmlGetDtdNotationDesc (xmlDtdPtr dtd, const xmlChar *name);xmlElementPtr xmlGetDtdElementDesc (xmlDtdPtr dtd, const xmlChar *name);int xmlValidGetValidElements(xmlNode *prev, xmlNode *next, const xmlChar **lst, int max);int xmlValidGetPotentialChildren(xmlElementContent *ctree, const xmlChar **lst, int *len, int max);#ifdef __cplusplus}#endif#endif /* __XML_VALID_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -