/* * 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 "tree.h" /* * ALl notation declarations are stored in a table * there is one table per DTD */ #define XML_MIN_NOTATION_TABLE 32 typedef struct xmlNotationTable { int nb_notations; /* number of notations stored */ int max_notations; /* maximum number of notations */ xmlNotationPtr table; /* the table of attributes */ } xmlNotationTable; typedef xmlNotationTable *xmlNotationTablePtr; /* * ALl element declarations are stored in a table * there is one table per DTD */ #define XML_MIN_ELEMENT_TABLE 32 typedef struct xmlElementTable { int nb_elements; /* number of elements stored */ int max_elements; /* maximum number of elements */ xmlElementPtr table; /* the table of elements */ } xmlElementTable; typedef xmlElementTable *xmlElementTablePtr; /* * ALl attribute declarations are stored in a table * there is one table per DTD */ #define XML_MIN_ATTRIBUTE_TABLE 32 typedef struct xmlAttributeTable { int nb_attributes; /* number of attributes stored */ int max_attributes; /* maximum number of attributes */ xmlAttributePtr table; /* the table of attributes */ } xmlAttributeTable; typedef xmlAttributeTable *xmlAttributeTablePtr; /* Notation */ xmlNotationPtr xmlAddNotationDecl(xmlDtdPtr dtd, const CHAR *name, const CHAR *PublicID, const CHAR *SystemID); xmlNotationTablePtr xmlCopyNotationTable(xmlNotationTablePtr table); void xmlFreeNotationTable(xmlNotationTablePtr table); void xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table); /* Element Content */ xmlElementContentPtr xmlNewElementContent(CHAR *name, int type); xmlElementContentPtr xmlCopyElementContent(xmlElementContentPtr content); void xmlFreeElementContent(xmlElementContentPtr cur); /* Element */ xmlElementPtr xmlAddElementDecl(xmlDtdPtr dtd, const CHAR *name, int type, xmlElementContentPtr content); xmlElementTablePtr xmlCopyElementTable(xmlElementTablePtr table); void xmlFreeElementTable(xmlElementTablePtr table); void xmlDumpElementTable(xmlBufferPtr buf, xmlElementTablePtr table); /* Enumeration */ xmlEnumerationPtr xmlCreateEnumeration(CHAR *name); void xmlFreeEnumeration(xmlEnumerationPtr cur); xmlEnumerationPtr xmlCopyEnumeration(xmlEnumerationPtr cur); /* Attribute */ xmlAttributePtr xmlAddAttributeDecl(xmlDtdPtr dtd, const CHAR *elem, const CHAR *name, int type, int def, const CHAR *defaultValue, xmlEnumerationPtr tree); xmlAttributeTablePtr xmlCopyAttributeTable(xmlAttributeTablePtr table); void xmlFreeAttributeTable(xmlAttributeTablePtr table); void xmlDumpAttributeTable(xmlBufferPtr buf, xmlAttributeTablePtr table); #endif /* __XML_VALID_H__ */