Annotation of XML/entities.h, revision 1.34

1.1       httpng      1: /*
                      2:  * entities.h : interface for the XML entities handking
1.4       veillard    3:  *
                      4:  * See Copyright for the status of this software.
                      5:  *
1.16      daniel      6:  * Daniel.Veillard@w3.org
1.1       httpng      7:  */
                      8: 
                      9: #ifndef __XML_ENTITIES_H__
                     10: #define __XML_ENTITIES_H__
1.12      daniel     11: 
1.18      daniel     12: #include "tree.h"
1.1       httpng     13: 
1.5       daniel     14: #ifdef __cplusplus
                     15: extern "C" {
                     16: #endif
                     17: 
1.33      daniel     18: /*
                     19:  * The different valid entity types
                     20:  */
                     21: typedef enum {
                     22:     XML_INTERNAL_GENERAL_ENTITY = 1,
                     23:     XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
                     24:     XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
                     25:     XML_INTERNAL_PARAMETER_ENTITY = 4,
                     26:     XML_EXTERNAL_PARAMETER_ENTITY = 5,
                     27:     XML_INTERNAL_PREDEFINED_ENTITY = 6
                     28: } xmlEntityType;
1.6       daniel     29: 
1.1       httpng     30: /*
1.2       httpng     31:  * An unit of storage for an entity, contains the string, the value
                     32:  * and the linkind data needed for the linking in the hash table.
                     33:  */
                     34: 
1.30      daniel     35: typedef struct _xmlEntity xmlEntity;
                     36: typedef xmlEntity *xmlEntityPtr;
                     37: struct _xmlEntity {
1.31      daniel     38: #ifndef XML_WITHOUT_CORBA
                     39:     void           *_private;          /* for Corba, must be first ! */
                     40: #endif
                     41:     xmlElementType          type;       /* XML_ENTITY_DECL, must be second ! */
                     42:     const xmlChar          *name;      /* Attribute name */
                     43:     struct _xmlNode    *children;      /* NULL */
                     44:     struct _xmlNode        *last;      /* NULL */
                     45:     struct _xmlDtd       *parent;      /* -> DTD */
                     46:     struct _xmlNode        *next;      /* next sibling link  */
                     47:     struct _xmlNode        *prev;      /* previous sibling link  */
                     48:     struct _xmlDoc          *doc;       /* the containing document */
                     49: 
                     50:     xmlChar                *orig;      /* content without ref substitution */
                     51:     xmlChar             *content;      /* content or ndata if unparsed */
                     52:     int                   length;      /* the content length */
1.33      daniel     53:     xmlEntityType          etype;      /* The entity type */
1.31      daniel     54:     const xmlChar    *ExternalID;      /* External identifier for PUBLIC */
                     55:     const xmlChar      *SystemID;      /* URI for a SYSTEM or PUBLIC Entity */
1.30      daniel     56: };
1.2       httpng     57: 
                     58: /*
                     59:  * ALl entities are stored in a table there is one table per DTD
                     60:  * and one extra per document.
                     61:  */
                     62: 
                     63: #define XML_MIN_ENTITIES_TABLE 32
                     64: 
1.30      daniel     65: typedef struct _xmlEntitiesTable xmlEntitiesTable;
                     66: typedef xmlEntitiesTable *xmlEntitiesTablePtr;
                     67: struct _xmlEntitiesTable {
1.2       httpng     68:     int nb_entities;           /* number of elements stored */
                     69:     int max_entities;          /* maximum number of elements */
1.32      daniel     70:     xmlEntityPtr *table;       /* the table of entities */
1.30      daniel     71: };
1.2       httpng     72: 
1.12      daniel     73: 
1.2       httpng     74: /*
1.1       httpng     75:  * External functions :
                     76:  */
1.18      daniel     77: 
1.32      daniel     78: xmlEntityPtr           xmlAddDocEntity         (xmlDocPtr doc,
1.25      daniel     79:                                                 const xmlChar *name,
1.24      daniel     80:                                                 int type,
1.25      daniel     81:                                                 const xmlChar *ExternalID,
                     82:                                                 const xmlChar *SystemID,
                     83:                                                 const xmlChar *content);
1.32      daniel     84: xmlEntityPtr           xmlAddDtdEntity         (xmlDocPtr doc,
1.25      daniel     85:                                                 const xmlChar *name,
1.24      daniel     86:                                                 int type,
1.25      daniel     87:                                                 const xmlChar *ExternalID,
                     88:                                                 const xmlChar *SystemID,
                     89:                                                 const xmlChar *content);
                     90: xmlEntityPtr           xmlGetPredefinedEntity  (const xmlChar *name);
1.24      daniel     91: xmlEntityPtr           xmlGetDocEntity         (xmlDocPtr doc,
1.25      daniel     92:                                                 const xmlChar *name);
1.24      daniel     93: xmlEntityPtr           xmlGetDtdEntity         (xmlDocPtr doc,
1.25      daniel     94:                                                 const xmlChar *name);
1.24      daniel     95: xmlEntityPtr           xmlGetParameterEntity   (xmlDocPtr doc,
1.25      daniel     96:                                                 const xmlChar *name);
                     97: const xmlChar *                xmlEncodeEntities       (xmlDocPtr doc,
                     98:                                                 const xmlChar *input);
1.26      daniel     99: xmlChar *              xmlEncodeEntitiesReentrant(xmlDocPtr doc,
1.25      daniel    100:                                                 const xmlChar *input);
1.24      daniel    101: xmlEntitiesTablePtr    xmlCreateEntitiesTable  (void);
                    102: xmlEntitiesTablePtr    xmlCopyEntitiesTable    (xmlEntitiesTablePtr table);
                    103: void                   xmlFreeEntitiesTable    (xmlEntitiesTablePtr table);
                    104: void                   xmlDumpEntitiesTable    (xmlBufferPtr buf,
                    105:                                                 xmlEntitiesTablePtr table);
1.34    ! daniel    106: void                   xmlDumpEntityDecl       (xmlBufferPtr buf,
        !           107:                                                 xmlEntityPtr ent);
1.24      daniel    108: xmlEntitiesTablePtr    xmlCopyEntitiesTable    (xmlEntitiesTablePtr table);
1.27      daniel    109: void                   xmlCleanupPredefinedEntities(void);
1.5       daniel    110: 
                    111: #ifdef __cplusplus
                    112: }
                    113: #endif
1.1       httpng    114: 
                    115: # endif /* __XML_ENTITIES_H__ */

Webmaster