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.
6 * Copy: See Copyright for the status of this software.
8 * Author: Daniel Veillard
11 #ifndef __XML_ENTITIES_H__
12 #define __XML_ENTITIES_H__
14 #include <libxml/xmlversion.h>
15 #include <libxml/tree.h>
22 * The different valid entity types.
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
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.
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 */
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 */
56 struct _xmlEntity
*nexte
; /* unused */
57 const xmlChar
*URI
; /* the full URI as computed */
58 int owner
; /* does the entity own the childrens */
62 * All entities are stored in an hash table.
63 * There is 2 separate hash tables for global and parameter entities.
66 typedef struct _xmlHashTable xmlEntitiesTable
;
67 typedef xmlEntitiesTable
*xmlEntitiesTablePtr
;
73 #ifdef LIBXML_LEGACY_ENABLED
74 XMLPUBFUN
void XMLCALL
75 xmlInitializePredefinedEntities (void);
76 #endif /* LIBXML_LEGACY_ENABLED */
77 XMLPUBFUN xmlEntityPtr XMLCALL
78 xmlAddDocEntity (xmlDocPtr doc
,
81 const xmlChar
*ExternalID
,
82 const xmlChar
*SystemID
,
83 const xmlChar
*content
);
84 XMLPUBFUN xmlEntityPtr XMLCALL
85 xmlAddDtdEntity (xmlDocPtr doc
,
88 const xmlChar
*ExternalID
,
89 const xmlChar
*SystemID
,
90 const xmlChar
*content
);
91 XMLPUBFUN xmlEntityPtr XMLCALL
92 xmlGetPredefinedEntity (const xmlChar
*name
);
93 XMLPUBFUN xmlEntityPtr XMLCALL
94 xmlGetDocEntity (xmlDocPtr doc
,
96 XMLPUBFUN xmlEntityPtr XMLCALL
97 xmlGetDtdEntity (xmlDocPtr doc
,
99 XMLPUBFUN xmlEntityPtr XMLCALL
100 xmlGetParameterEntity (xmlDocPtr doc
,
101 const xmlChar
*name
);
102 #ifdef LIBXML_LEGACY_ENABLED
103 XMLPUBFUN
const xmlChar
* XMLCALL
104 xmlEncodeEntities (xmlDocPtr doc
,
105 const xmlChar
*input
);
106 #endif /* LIBXML_LEGACY_ENABLED */
107 XMLPUBFUN xmlChar
* XMLCALL
108 xmlEncodeEntitiesReentrant(xmlDocPtr doc
,
109 const xmlChar
*input
);
110 XMLPUBFUN xmlChar
* XMLCALL
111 xmlEncodeSpecialChars (xmlDocPtr doc
,
112 const xmlChar
*input
);
113 XMLPUBFUN xmlEntitiesTablePtr XMLCALL
114 xmlCreateEntitiesTable (void);
115 #ifdef LIBXML_TREE_ENABLED
116 XMLPUBFUN xmlEntitiesTablePtr XMLCALL
117 xmlCopyEntitiesTable (xmlEntitiesTablePtr table
);
118 #endif /* LIBXML_TREE_ENABLED */
119 XMLPUBFUN
void XMLCALL
120 xmlFreeEntitiesTable (xmlEntitiesTablePtr table
);
121 #ifdef LIBXML_OUTPUT_ENABLED
122 XMLPUBFUN
void XMLCALL
123 xmlDumpEntitiesTable (xmlBufferPtr buf
,
124 xmlEntitiesTablePtr table
);
125 XMLPUBFUN
void XMLCALL
126 xmlDumpEntityDecl (xmlBufferPtr buf
,
128 #endif /* LIBXML_OUTPUT_ENABLED */
129 #ifdef LIBXML_LEGACY_ENABLED
130 XMLPUBFUN
void XMLCALL
131 xmlCleanupPredefinedEntities(void);
132 #endif /* LIBXML_LEGACY_ENABLED */
139 # endif /* __XML_ENTITIES_H__ */