Eneboo - Documentación para desarrolladores
|
00001 /* 00002 * Summary: interface for the XML entities handling 00003 * Description: this module provides some of the entity API needed 00004 * for the parser and applications. 00005 * 00006 * Copy: See Copyright for the status of this software. 00007 * 00008 * Author: Daniel Veillard 00009 */ 00010 00011 #ifndef __XML_ENTITIES_H__ 00012 #define __XML_ENTITIES_H__ 00013 00014 #include <libxml/xmlversion.h> 00015 #include <libxml/tree.h> 00016 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif 00020 00021 /* 00022 * The different valid entity types. 00023 */ 00024 typedef enum { 00025 XML_INTERNAL_GENERAL_ENTITY = 1, 00026 XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2, 00027 XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3, 00028 XML_INTERNAL_PARAMETER_ENTITY = 4, 00029 XML_EXTERNAL_PARAMETER_ENTITY = 5, 00030 XML_INTERNAL_PREDEFINED_ENTITY = 6 00031 } xmlEntityType; 00032 00033 /* 00034 * An unit of storage for an entity, contains the string, the value 00035 * and the linkind data needed for the linking in the hash table. 00036 */ 00037 00038 struct _xmlEntity { 00039 void *_private; /* application data */ 00040 xmlElementType type; /* XML_ENTITY_DECL, must be second ! */ 00041 const xmlChar *name; /* Entity name */ 00042 struct _xmlNode *children; /* First child link */ 00043 struct _xmlNode *last; /* Last child link */ 00044 struct _xmlDtd *parent; /* -> DTD */ 00045 struct _xmlNode *next; /* next sibling link */ 00046 struct _xmlNode *prev; /* previous sibling link */ 00047 struct _xmlDoc *doc; /* the containing document */ 00048 00049 xmlChar *orig; /* content without ref substitution */ 00050 xmlChar *content; /* content or ndata if unparsed */ 00051 int length; /* the content length */ 00052 xmlEntityType etype; /* The entity type */ 00053 const xmlChar *ExternalID; /* External identifier for PUBLIC */ 00054 const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC Entity */ 00055 00056 struct _xmlEntity *nexte; /* unused */ 00057 const xmlChar *URI; /* the full URI as computed */ 00058 int owner; /* does the entity own the childrens */ 00059 int checked; /* was the entity content checked */ 00060 /* this is also used to count entites 00061 * references done from that entity */ 00062 }; 00063 00064 /* 00065 * All entities are stored in an hash table. 00066 * There is 2 separate hash tables for global and parameter entities. 00067 */ 00068 00069 typedef struct _xmlHashTable xmlEntitiesTable; 00070 typedef xmlEntitiesTable *xmlEntitiesTablePtr; 00071 00072 /* 00073 * External functions: 00074 */ 00075 00076 #ifdef LIBXML_LEGACY_ENABLED 00077 XMLPUBFUN void XMLCALL 00078 xmlInitializePredefinedEntities (void); 00079 #endif /* LIBXML_LEGACY_ENABLED */ 00080 00081 XMLPUBFUN xmlEntityPtr XMLCALL 00082 xmlNewEntity (xmlDocPtr doc, 00083 const xmlChar *name, 00084 int type, 00085 const xmlChar *ExternalID, 00086 const xmlChar *SystemID, 00087 const xmlChar *content); 00088 XMLPUBFUN xmlEntityPtr XMLCALL 00089 xmlAddDocEntity (xmlDocPtr doc, 00090 const xmlChar *name, 00091 int type, 00092 const xmlChar *ExternalID, 00093 const xmlChar *SystemID, 00094 const xmlChar *content); 00095 XMLPUBFUN xmlEntityPtr XMLCALL 00096 xmlAddDtdEntity (xmlDocPtr doc, 00097 const xmlChar *name, 00098 int type, 00099 const xmlChar *ExternalID, 00100 const xmlChar *SystemID, 00101 const xmlChar *content); 00102 XMLPUBFUN xmlEntityPtr XMLCALL 00103 xmlGetPredefinedEntity (const xmlChar *name); 00104 XMLPUBFUN xmlEntityPtr XMLCALL 00105 xmlGetDocEntity (xmlDocPtr doc, 00106 const xmlChar *name); 00107 XMLPUBFUN xmlEntityPtr XMLCALL 00108 xmlGetDtdEntity (xmlDocPtr doc, 00109 const xmlChar *name); 00110 XMLPUBFUN xmlEntityPtr XMLCALL 00111 xmlGetParameterEntity (xmlDocPtr doc, 00112 const xmlChar *name); 00113 #ifdef LIBXML_LEGACY_ENABLED 00114 XMLPUBFUN const xmlChar * XMLCALL 00115 xmlEncodeEntities (xmlDocPtr doc, 00116 const xmlChar *input); 00117 #endif /* LIBXML_LEGACY_ENABLED */ 00118 XMLPUBFUN xmlChar * XMLCALL 00119 xmlEncodeEntitiesReentrant(xmlDocPtr doc, 00120 const xmlChar *input); 00121 XMLPUBFUN xmlChar * XMLCALL 00122 xmlEncodeSpecialChars (xmlDocPtr doc, 00123 const xmlChar *input); 00124 XMLPUBFUN xmlEntitiesTablePtr XMLCALL 00125 xmlCreateEntitiesTable (void); 00126 #ifdef LIBXML_TREE_ENABLED 00127 XMLPUBFUN xmlEntitiesTablePtr XMLCALL 00128 xmlCopyEntitiesTable (xmlEntitiesTablePtr table); 00129 #endif /* LIBXML_TREE_ENABLED */ 00130 XMLPUBFUN void XMLCALL 00131 xmlFreeEntitiesTable (xmlEntitiesTablePtr table); 00132 #ifdef LIBXML_OUTPUT_ENABLED 00133 XMLPUBFUN void XMLCALL 00134 xmlDumpEntitiesTable (xmlBufferPtr buf, 00135 xmlEntitiesTablePtr table); 00136 XMLPUBFUN void XMLCALL 00137 xmlDumpEntityDecl (xmlBufferPtr buf, 00138 xmlEntityPtr ent); 00139 #endif /* LIBXML_OUTPUT_ENABLED */ 00140 #ifdef LIBXML_LEGACY_ENABLED 00141 XMLPUBFUN void XMLCALL 00142 xmlCleanupPredefinedEntities(void); 00143 #endif /* LIBXML_LEGACY_ENABLED */ 00144 00145 00146 #ifdef __cplusplus 00147 } 00148 #endif 00149 00150 # endif /* __XML_ENTITIES_H__ */