xref: /aosp_15_r20/external/libxml2/include/libxml/entities.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
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