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 */
59 int checked
; /* was the entity content checked */
60 /* this is also used to count entites
61 * references done from that entity */
65 * All entities are stored in an hash table.
66 * There is 2 separate hash tables for global and parameter entities.
69 typedef struct _xmlHashTable xmlEntitiesTable
;
70 typedef xmlEntitiesTable
*xmlEntitiesTablePtr
;
76 #ifdef LIBXML_LEGACY_ENABLED
77 XMLPUBFUN
void XMLCALL
78 xmlInitializePredefinedEntities (void);
79 #endif /* LIBXML_LEGACY_ENABLED */
81 XMLPUBFUN xmlEntityPtr XMLCALL
82 xmlNewEntity (xmlDocPtr doc
,
85 const xmlChar
*ExternalID
,
86 const xmlChar
*SystemID
,
87 const xmlChar
*content
);
88 XMLPUBFUN xmlEntityPtr XMLCALL
89 xmlAddDocEntity (xmlDocPtr doc
,
92 const xmlChar
*ExternalID
,
93 const xmlChar
*SystemID
,
94 const xmlChar
*content
);
95 XMLPUBFUN xmlEntityPtr XMLCALL
96 xmlAddDtdEntity (xmlDocPtr doc
,
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
,
139 #endif /* LIBXML_OUTPUT_ENABLED */
140 #ifdef LIBXML_LEGACY_ENABLED
141 XMLPUBFUN
void XMLCALL
142 xmlCleanupPredefinedEntities(void);
143 #endif /* LIBXML_LEGACY_ENABLED */
150 # endif /* __XML_ENTITIES_H__ */