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