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

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
1.1.1.2 ! misho      61:                                         * references done from that entity
        !            62:                                         * and if it contains '<' */
1.1       misho      63: };
                     64: 
                     65: /*
                     66:  * All entities are stored in an hash table.
                     67:  * There is 2 separate hash tables for global and parameter entities.
                     68:  */
                     69: 
                     70: typedef struct _xmlHashTable xmlEntitiesTable;
                     71: typedef xmlEntitiesTable *xmlEntitiesTablePtr;
                     72: 
                     73: /*
                     74:  * External functions:
                     75:  */
                     76: 
                     77: #ifdef LIBXML_LEGACY_ENABLED
                     78: XMLPUBFUN void XMLCALL
                     79:                xmlInitializePredefinedEntities (void);
                     80: #endif /* LIBXML_LEGACY_ENABLED */
                     81: 
                     82: XMLPUBFUN xmlEntityPtr XMLCALL
                     83:                        xmlNewEntity            (xmlDocPtr doc,
                     84:                                                 const xmlChar *name,
                     85:                                                 int type,
                     86:                                                 const xmlChar *ExternalID,
                     87:                                                 const xmlChar *SystemID,
                     88:                                                 const xmlChar *content);
                     89: XMLPUBFUN xmlEntityPtr XMLCALL
                     90:                        xmlAddDocEntity         (xmlDocPtr doc,
                     91:                                                 const xmlChar *name,
                     92:                                                 int type,
                     93:                                                 const xmlChar *ExternalID,
                     94:                                                 const xmlChar *SystemID,
                     95:                                                 const xmlChar *content);
                     96: XMLPUBFUN xmlEntityPtr XMLCALL
                     97:                        xmlAddDtdEntity         (xmlDocPtr doc,
                     98:                                                 const xmlChar *name,
                     99:                                                 int type,
                    100:                                                 const xmlChar *ExternalID,
                    101:                                                 const xmlChar *SystemID,
                    102:                                                 const xmlChar *content);
                    103: XMLPUBFUN xmlEntityPtr XMLCALL
                    104:                        xmlGetPredefinedEntity  (const xmlChar *name);
                    105: XMLPUBFUN xmlEntityPtr XMLCALL
                    106:                        xmlGetDocEntity         (xmlDocPtr doc,
                    107:                                                 const xmlChar *name);
                    108: XMLPUBFUN xmlEntityPtr XMLCALL
                    109:                        xmlGetDtdEntity         (xmlDocPtr doc,
                    110:                                                 const xmlChar *name);
                    111: XMLPUBFUN xmlEntityPtr XMLCALL
                    112:                        xmlGetParameterEntity   (xmlDocPtr doc,
                    113:                                                 const xmlChar *name);
                    114: #ifdef LIBXML_LEGACY_ENABLED
                    115: XMLPUBFUN const xmlChar * XMLCALL
                    116:                        xmlEncodeEntities       (xmlDocPtr doc,
                    117:                                                 const xmlChar *input);
                    118: #endif /* LIBXML_LEGACY_ENABLED */
                    119: XMLPUBFUN xmlChar * XMLCALL
                    120:                        xmlEncodeEntitiesReentrant(xmlDocPtr doc,
                    121:                                                 const xmlChar *input);
                    122: XMLPUBFUN xmlChar * XMLCALL
                    123:                        xmlEncodeSpecialChars   (xmlDocPtr doc,
                    124:                                                 const xmlChar *input);
                    125: XMLPUBFUN xmlEntitiesTablePtr XMLCALL
                    126:                        xmlCreateEntitiesTable  (void);
                    127: #ifdef LIBXML_TREE_ENABLED
                    128: XMLPUBFUN xmlEntitiesTablePtr XMLCALL
                    129:                        xmlCopyEntitiesTable    (xmlEntitiesTablePtr table);
                    130: #endif /* LIBXML_TREE_ENABLED */
                    131: XMLPUBFUN void XMLCALL
                    132:                        xmlFreeEntitiesTable    (xmlEntitiesTablePtr table);
                    133: #ifdef LIBXML_OUTPUT_ENABLED
                    134: XMLPUBFUN void XMLCALL
                    135:                        xmlDumpEntitiesTable    (xmlBufferPtr buf,
                    136:                                                 xmlEntitiesTablePtr table);
                    137: XMLPUBFUN void XMLCALL
                    138:                        xmlDumpEntityDecl       (xmlBufferPtr buf,
                    139:                                                 xmlEntityPtr ent);
                    140: #endif /* LIBXML_OUTPUT_ENABLED */
                    141: #ifdef LIBXML_LEGACY_ENABLED
                    142: XMLPUBFUN void XMLCALL
                    143:                        xmlCleanupPredefinedEntities(void);
                    144: #endif /* LIBXML_LEGACY_ENABLED */
                    145: 
                    146: 
                    147: #ifdef __cplusplus
                    148: }
                    149: #endif
                    150: 
                    151: # endif /* __XML_ENTITIES_H__ */

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