File:  [Public] / XML / valid.h
Revision 1.5: download - view: text, annotated - select for diffs
Sun Feb 21 15:38:57 1999 UTC (25 years, 3 months ago) by daniel
Branches: MAIN
CVS tags: HEAD
More work toward full parsing of DTDs, finished attributes added notations, Daniel.

/*
 * 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, *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, *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, *xmlAttributeTablePtr;

/* Notation */
extern xmlNotationPtr xmlAddNotationDecl(xmlDtdPtr dtd, CHAR *name,
	       CHAR *PublicID, CHAR *SystemID);
extern xmlNotationTablePtr xmlCopyNotationTable(xmlNotationTablePtr table);
extern void xmlFreeNotationTable(xmlNotationTablePtr table);
extern void xmlDumpNotationTable(xmlNotationTablePtr table);

/* Element Content */
extern xmlElementContentPtr xmlNewElementContent(CHAR *name, int type);
extern xmlElementContentPtr xmlCopyElementContent(xmlElementContentPtr content);
extern void xmlFreeElementContent(xmlElementContentPtr cur);

/* Element */
extern xmlElementPtr xmlAddElementDecl(xmlDtdPtr dtd, CHAR *name, int type, 
                                       xmlElementContentPtr content);
extern xmlElementTablePtr xmlCopyElementTable(xmlElementTablePtr table);
extern void xmlFreeElementTable(xmlElementTablePtr table);
extern void xmlDumpElementTable(xmlElementTablePtr table);

/* Enumeration */
extern xmlEnumerationPtr xmlCreateEnumeration(CHAR *name);
extern void xmlFreeEnumeration(xmlEnumerationPtr cur);
extern xmlEnumerationPtr xmlCopyEnumeration(xmlEnumerationPtr cur);

/* Attribute */
extern xmlAttributePtr xmlAddAttributeDecl(xmlDtdPtr dtd, CHAR *elem,
	       CHAR *name, int type, int def,
	       CHAR *defaultValue, xmlEnumerationPtr tree);
extern xmlAttributeTablePtr xmlCopyAttributeTable(xmlAttributeTablePtr table);
extern void xmlFreeAttributeTable(xmlAttributeTablePtr table);
extern void xmlDumpAttributeTable(xmlAttributeTablePtr table);

#endif /* __XML_VALID_H__ */

Webmaster