Return to entities.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml |
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__ */