Annotation of XML/valid.h, revision 1.11

1.1       daniel      1: /*
                      2:  * valid.h : interface to the DTD handling and the validity checking
                      3:  *
                      4:  * See Copyright for the status of this software.
                      5:  *
                      6:  * Daniel.Veillard@w3.org
                      7:  */
                      8: 
                      9: 
                     10: #ifndef __XML_VALID_H__
                     11: #define __XML_VALID_H__
                     12: #include "tree.h"
                     13: 
1.9       daniel     14: /**
                     15:  * an xmlValidCtxt is used for error reporting when validating
                     16:  */
                     17: 
                     18: typedef void (*xmlValidityErrorFunc) (void *ctx, const char *msg, ...);
                     19: typedef void (*xmlValidityWarningFunc) (void *ctx, const char *msg, ...);
                     20: 
                     21: typedef struct xmlValidCtxt {
                     22:     void *userData;                    /* user specific data block */
                     23:     xmlValidityErrorFunc error;                /* the callback in case of errors */
                     24:     xmlValidityWarningFunc warning;    /* the callback in case of warning */
                     25: } xmlValidCtxt, *xmlValidCtxtPtr;
                     26: 
                     27: extern void xmlParserValidityError(void *ctx, const char *msg, ...);
                     28: extern void xmlParserValidityWarning(void *ctx, const char *msg, ...);
                     29: 
1.2       daniel     30: /*
1.5       daniel     31:  * ALl notation declarations are stored in a table
                     32:  * there is one table per DTD
                     33:  */
                     34: 
                     35: #define XML_MIN_NOTATION_TABLE 32
                     36: 
                     37: typedef struct xmlNotationTable {
                     38:     int nb_notations;          /* number of notations stored */
                     39:     int max_notations;         /* maximum number of notations */
1.10      daniel     40:     xmlNotationPtr *table;     /* the table of attributes */
1.6       daniel     41: } xmlNotationTable;
                     42: typedef xmlNotationTable *xmlNotationTablePtr;
1.5       daniel     43: 
                     44: /*
1.2       daniel     45:  * ALl element declarations are stored in a table
                     46:  * there is one table per DTD
                     47:  */
                     48: 
                     49: #define XML_MIN_ELEMENT_TABLE  32
                     50: 
                     51: typedef struct xmlElementTable {
                     52:     int nb_elements;           /* number of elements stored */
                     53:     int max_elements;          /* maximum number of elements */
1.10      daniel     54:     xmlElementPtr *table;      /* the table of elements */
1.6       daniel     55: } xmlElementTable;
                     56: typedef xmlElementTable *xmlElementTablePtr;
1.2       daniel     57: 
1.5       daniel     58: /*
                     59:  * ALl attribute declarations are stored in a table
                     60:  * there is one table per DTD
                     61:  */
                     62: 
1.4       daniel     63: #define XML_MIN_ATTRIBUTE_TABLE        32
                     64: 
                     65: typedef struct xmlAttributeTable {
                     66:     int nb_attributes;         /* number of attributes stored */
                     67:     int max_attributes;                /* maximum number of attributes */
1.10      daniel     68:     xmlAttributePtr *table;    /* the table of attributes */
1.6       daniel     69: } xmlAttributeTable;
                     70: typedef xmlAttributeTable *xmlAttributeTablePtr;
1.4       daniel     71: 
1.5       daniel     72: /* Notation */
1.11    ! daniel     73: xmlNotationPtr xmlAddNotationDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd,
        !            74:           const CHAR *name, const CHAR *PublicID, const CHAR *SystemID);
1.6       daniel     75: xmlNotationTablePtr xmlCopyNotationTable(xmlNotationTablePtr table);
                     76: void xmlFreeNotationTable(xmlNotationTablePtr table);
1.8       daniel     77: void xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table);
1.5       daniel     78: 
                     79: /* Element Content */
1.6       daniel     80: xmlElementContentPtr xmlNewElementContent(CHAR *name, int type);
                     81: xmlElementContentPtr xmlCopyElementContent(xmlElementContentPtr content);
                     82: void xmlFreeElementContent(xmlElementContentPtr cur);
1.2       daniel     83: 
1.5       daniel     84: /* Element */
1.11    ! daniel     85: xmlElementPtr xmlAddElementDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd,
        !            86:          const CHAR *name, int type, xmlElementContentPtr content);
1.6       daniel     87: xmlElementTablePtr xmlCopyElementTable(xmlElementTablePtr table);
                     88: void xmlFreeElementTable(xmlElementTablePtr table);
1.8       daniel     89: void xmlDumpElementTable(xmlBufferPtr buf, xmlElementTablePtr table);
1.5       daniel     90: 
                     91: /* Enumeration */
1.6       daniel     92: xmlEnumerationPtr xmlCreateEnumeration(CHAR *name);
                     93: void xmlFreeEnumeration(xmlEnumerationPtr cur);
                     94: xmlEnumerationPtr xmlCopyEnumeration(xmlEnumerationPtr cur);
1.5       daniel     95: 
                     96: /* Attribute */
1.11    ! daniel     97: xmlAttributePtr xmlAddAttributeDecl(xmlValidCtxtPtr ctxt, xmlDtdPtr dtd,
        !            98:                const CHAR *elem, const CHAR *name, int type, int def,
1.7       daniel     99:               const CHAR *defaultValue, xmlEnumerationPtr tree);
1.6       daniel    100: xmlAttributeTablePtr xmlCopyAttributeTable(xmlAttributeTablePtr table);
                    101: void xmlFreeAttributeTable(xmlAttributeTablePtr table);
1.8       daniel    102: void xmlDumpAttributeTable(xmlBufferPtr buf, xmlAttributeTablePtr table);
1.9       daniel    103: 
                    104: /**
                    105:  * The public function calls related to validity checking
                    106:  */
                    107: 
                    108: int xmlValidateRoot(xmlValidCtxtPtr ctxt, xmlDocPtr doc);
1.11    ! daniel    109: int xmlValidateElementDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
        !           110:                            xmlElementPtr elem);
        !           111: int xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
        !           112:                              xmlAttributePtr attr);
        !           113: int xmlValidateNotationDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
        !           114:                             xmlNotationPtr nota);
        !           115: int xmlValidateDocument(xmlValidCtxtPtr ctxt, xmlDocPtr doc);
        !           116: int xmlValidateDtd(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlDtdPtr dtd);
        !           117: int xmlValidateElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
        !           118:                        xmlElementPtr elem);
        !           119: int xmlValidateOneElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
        !           120:                           xmlElementPtr elem);
        !           121: int xmlValidateOneAttribute(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
        !           122:                             xmlElementPtr elem, xmlAttributePtr attr);
1.1       daniel    123: #endif /* __XML_VALID_H__ */

Webmaster