Annotation of XML/entities.h, revision 1.42

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.37      daniel     12: #include <libxml/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.35      daniel     56: 
1.42    ! veillard   57:     struct _xmlEntity     *nexte;      /* unused */
1.40      veillard   58:     const xmlChar           *URI;      /* the full URI as computed */
1.30      daniel     59: };
1.2       httpng     60: 
                     61: /*
1.42    ! veillard   62:  * ALl entities are stored in an hash table
        !            63:  * there is 2 separate hash tables for global and parmeter entities
1.2       httpng     64:  */
                     65: 
1.42    ! veillard   66: typedef struct _xmlHashTable xmlEntitiesTable;
1.30      daniel     67: typedef xmlEntitiesTable *xmlEntitiesTablePtr;
1.12      daniel     68: 
1.2       httpng     69: /*
1.1       httpng     70:  * External functions :
                     71:  */
1.18      daniel     72: 
1.41      veillard   73: void           xmlInitializePredefinedEntities (void);
1.32      daniel     74: xmlEntityPtr           xmlAddDocEntity         (xmlDocPtr doc,
1.25      daniel     75:                                                 const xmlChar *name,
1.24      daniel     76:                                                 int type,
1.25      daniel     77:                                                 const xmlChar *ExternalID,
                     78:                                                 const xmlChar *SystemID,
                     79:                                                 const xmlChar *content);
1.32      daniel     80: xmlEntityPtr           xmlAddDtdEntity         (xmlDocPtr doc,
1.25      daniel     81:                                                 const xmlChar *name,
1.24      daniel     82:                                                 int type,
1.25      daniel     83:                                                 const xmlChar *ExternalID,
                     84:                                                 const xmlChar *SystemID,
                     85:                                                 const xmlChar *content);
                     86: xmlEntityPtr           xmlGetPredefinedEntity  (const xmlChar *name);
1.24      daniel     87: xmlEntityPtr           xmlGetDocEntity         (xmlDocPtr doc,
1.25      daniel     88:                                                 const xmlChar *name);
1.24      daniel     89: xmlEntityPtr           xmlGetDtdEntity         (xmlDocPtr doc,
1.25      daniel     90:                                                 const xmlChar *name);
1.24      daniel     91: xmlEntityPtr           xmlGetParameterEntity   (xmlDocPtr doc,
1.25      daniel     92:                                                 const xmlChar *name);
                     93: const xmlChar *                xmlEncodeEntities       (xmlDocPtr doc,
                     94:                                                 const xmlChar *input);
1.26      daniel     95: xmlChar *              xmlEncodeEntitiesReentrant(xmlDocPtr doc,
1.25      daniel     96:                                                 const xmlChar *input);
1.38      daniel     97: xmlChar *              xmlEncodeSpecialChars   (xmlDocPtr doc,
                     98:                                                 const xmlChar *input);
1.24      daniel     99: xmlEntitiesTablePtr    xmlCreateEntitiesTable  (void);
                    100: xmlEntitiesTablePtr    xmlCopyEntitiesTable    (xmlEntitiesTablePtr table);
                    101: void                   xmlFreeEntitiesTable    (xmlEntitiesTablePtr table);
                    102: void                   xmlDumpEntitiesTable    (xmlBufferPtr buf,
                    103:                                                 xmlEntitiesTablePtr table);
1.34      daniel    104: void                   xmlDumpEntityDecl       (xmlBufferPtr buf,
                    105:                                                 xmlEntityPtr ent);
1.24      daniel    106: xmlEntitiesTablePtr    xmlCopyEntitiesTable    (xmlEntitiesTablePtr table);
1.27      daniel    107: void                   xmlCleanupPredefinedEntities(void);
1.5       daniel    108: 
1.36      daniel    109: 
1.5       daniel    110: #ifdef __cplusplus
                    111: }
                    112: #endif
1.1       httpng    113: 
                    114: # endif /* __XML_ENTITIES_H__ */

Webmaster