Annotation of embedaddon/libxml2/include/libxml/entities.h, revision 1.1.1.1

1.1       misho       1: /*
                      2:  * Summary: interface for the XML entities handling
                      3:  * Description: this module provides some of the entity API needed
                      4:  *              for the parser and applications.
                      5:  *
                      6:  * Copy: See Copyright for the status of this software.
                      7:  *
                      8:  * Author: Daniel Veillard
                      9:  */
                     10: 
                     11: #ifndef __XML_ENTITIES_H__
                     12: #define __XML_ENTITIES_H__
                     13: 
                     14: #include <libxml/xmlversion.h>
                     15: #include <libxml/tree.h>
                     16: 
                     17: #ifdef __cplusplus
                     18: extern "C" {
                     19: #endif
                     20: 
                     21: /*
                     22:  * The different valid entity types.
                     23:  */
                     24: typedef enum {
                     25:     XML_INTERNAL_GENERAL_ENTITY = 1,
                     26:     XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
                     27:     XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
                     28:     XML_INTERNAL_PARAMETER_ENTITY = 4,
                     29:     XML_EXTERNAL_PARAMETER_ENTITY = 5,
                     30:     XML_INTERNAL_PREDEFINED_ENTITY = 6
                     31: } xmlEntityType;
                     32: 
                     33: /*
                     34:  * An unit of storage for an entity, contains the string, the value
                     35:  * and the linkind data needed for the linking in the hash table.
                     36:  */
                     37: 
                     38: struct _xmlEntity {
                     39:     void           *_private;          /* application data */
                     40:     xmlElementType          type;       /* XML_ENTITY_DECL, must be second ! */
                     41:     const xmlChar          *name;      /* Entity name */
                     42:     struct _xmlNode    *children;      /* First child link */
                     43:     struct _xmlNode        *last;      /* Last child link */
                     44:     struct _xmlDtd       *parent;      /* -> DTD */
                     45:     struct _xmlNode        *next;      /* next sibling link  */
                     46:     struct _xmlNode        *prev;      /* previous sibling link  */
                     47:     struct _xmlDoc          *doc;       /* the containing document */
                     48: 
                     49:     xmlChar                *orig;      /* content without ref substitution */
                     50:     xmlChar             *content;      /* content or ndata if unparsed */
                     51:     int                   length;      /* the content length */
                     52:     xmlEntityType          etype;      /* The entity type */
                     53:     const xmlChar    *ExternalID;      /* External identifier for PUBLIC */
                     54:     const xmlChar      *SystemID;      /* URI for a SYSTEM or PUBLIC Entity */
                     55: 
                     56:     struct _xmlEntity     *nexte;      /* unused */
                     57:     const xmlChar           *URI;      /* the full URI as computed */
                     58:     int                    owner;      /* does the entity own the childrens */
                     59:     int                         checked;       /* was the entity content checked */
                     60:                                        /* this is also used to count entites
                     61:                                         * references done from that entity */
                     62: };
                     63: 
                     64: /*
                     65:  * All entities are stored in an hash table.
                     66:  * There is 2 separate hash tables for global and parameter entities.
                     67:  */
                     68: 
                     69: typedef struct _xmlHashTable xmlEntitiesTable;
                     70: typedef xmlEntitiesTable *xmlEntitiesTablePtr;
                     71: 
                     72: /*
                     73:  * External functions:
                     74:  */
                     75: 
                     76: #ifdef LIBXML_LEGACY_ENABLED
                     77: XMLPUBFUN void XMLCALL
                     78:                xmlInitializePredefinedEntities (void);
                     79: #endif /* LIBXML_LEGACY_ENABLED */
                     80: 
                     81: XMLPUBFUN xmlEntityPtr XMLCALL
                     82:                        xmlNewEntity            (xmlDocPtr doc,
                     83:                                                 const xmlChar *name,
                     84:                                                 int type,
                     85:                                                 const xmlChar *ExternalID,
                     86:                                                 const xmlChar *SystemID,
                     87:                                                 const xmlChar *content);
                     88: XMLPUBFUN xmlEntityPtr XMLCALL
                     89:                        xmlAddDocEntity         (xmlDocPtr doc,
                     90:                                                 const xmlChar *name,
                     91:                                                 int type,
                     92:                                                 const xmlChar *ExternalID,
                     93:                                                 const xmlChar *SystemID,
                     94:                                                 const xmlChar *content);
                     95: XMLPUBFUN xmlEntityPtr XMLCALL
                     96:                        xmlAddDtdEntity         (xmlDocPtr doc,
                     97:                                                 const xmlChar *name,
                     98:                                                 int type,
                     99:                                                 const xmlChar *ExternalID,
                    100:                                                 const xmlChar *SystemID,
                    101:                                                 const xmlChar *content);
                    102: XMLPUBFUN xmlEntityPtr XMLCALL
                    103:                        xmlGetPredefinedEntity  (const xmlChar *name);
                    104: XMLPUBFUN xmlEntityPtr XMLCALL
                    105:                        xmlGetDocEntity         (xmlDocPtr doc,
                    106:                                                 const xmlChar *name);
                    107: XMLPUBFUN xmlEntityPtr XMLCALL
                    108:                        xmlGetDtdEntity         (xmlDocPtr doc,
                    109:                                                 const xmlChar *name);
                    110: XMLPUBFUN xmlEntityPtr XMLCALL
                    111:                        xmlGetParameterEntity   (xmlDocPtr doc,
                    112:                                                 const xmlChar *name);
                    113: #ifdef LIBXML_LEGACY_ENABLED
                    114: XMLPUBFUN const xmlChar * XMLCALL
                    115:                        xmlEncodeEntities       (xmlDocPtr doc,
                    116:                                                 const xmlChar *input);
                    117: #endif /* LIBXML_LEGACY_ENABLED */
                    118: XMLPUBFUN xmlChar * XMLCALL
                    119:                        xmlEncodeEntitiesReentrant(xmlDocPtr doc,
                    120:                                                 const xmlChar *input);
                    121: XMLPUBFUN xmlChar * XMLCALL
                    122:                        xmlEncodeSpecialChars   (xmlDocPtr doc,
                    123:                                                 const xmlChar *input);
                    124: XMLPUBFUN xmlEntitiesTablePtr XMLCALL
                    125:                        xmlCreateEntitiesTable  (void);
                    126: #ifdef LIBXML_TREE_ENABLED
                    127: XMLPUBFUN xmlEntitiesTablePtr XMLCALL
                    128:                        xmlCopyEntitiesTable    (xmlEntitiesTablePtr table);
                    129: #endif /* LIBXML_TREE_ENABLED */
                    130: XMLPUBFUN void XMLCALL
                    131:                        xmlFreeEntitiesTable    (xmlEntitiesTablePtr table);
                    132: #ifdef LIBXML_OUTPUT_ENABLED
                    133: XMLPUBFUN void XMLCALL
                    134:                        xmlDumpEntitiesTable    (xmlBufferPtr buf,
                    135:                                                 xmlEntitiesTablePtr table);
                    136: XMLPUBFUN void XMLCALL
                    137:                        xmlDumpEntityDecl       (xmlBufferPtr buf,
                    138:                                                 xmlEntityPtr ent);
                    139: #endif /* LIBXML_OUTPUT_ENABLED */
                    140: #ifdef LIBXML_LEGACY_ENABLED
                    141: XMLPUBFUN void XMLCALL
                    142:                        xmlCleanupPredefinedEntities(void);
                    143: #endif /* LIBXML_LEGACY_ENABLED */
                    144: 
                    145: 
                    146: #ifdef __cplusplus
                    147: }
                    148: #endif
                    149: 
                    150: # endif /* __XML_ENTITIES_H__ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>