Imported Upstream version 0.19.7
[platform/upstream/gettext.git] / gnulib-local / lib / libxml / entities.in.h
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 entities
61                                          * references done from that entity
62                                          * and if it contains '<' */
63 };
64
65 /*
66  * All entities are stored in an hash table.
67  * There is 2 separate hash tables for global and parameter entities.
68  */
69
70 typedef struct _xmlHashTable xmlEntitiesTable;
71 typedef xmlEntitiesTable *xmlEntitiesTablePtr;
72
73 /*
74  * External functions:
75  */
76
77 #ifdef LIBXML_LEGACY_ENABLED
78 XMLPUBFUN void XMLCALL
79                 xmlInitializePredefinedEntities (void);
80 #endif /* LIBXML_LEGACY_ENABLED */
81
82 XMLPUBFUN xmlEntityPtr XMLCALL
83                         xmlNewEntity            (xmlDocPtr doc,
84                                                  const xmlChar *name,
85                                                  int type,
86                                                  const xmlChar *ExternalID,
87                                                  const xmlChar *SystemID,
88                                                  const xmlChar *content);
89 XMLPUBFUN xmlEntityPtr XMLCALL
90                         xmlAddDocEntity         (xmlDocPtr doc,
91                                                  const xmlChar *name,
92                                                  int type,
93                                                  const xmlChar *ExternalID,
94                                                  const xmlChar *SystemID,
95                                                  const xmlChar *content);
96 XMLPUBFUN xmlEntityPtr XMLCALL
97                         xmlAddDtdEntity         (xmlDocPtr doc,
98                                                  const xmlChar *name,
99                                                  int type,
100                                                  const xmlChar *ExternalID,
101                                                  const xmlChar *SystemID,
102                                                  const xmlChar *content);
103 XMLPUBFUN xmlEntityPtr XMLCALL
104                         xmlGetPredefinedEntity  (const xmlChar *name);
105 XMLPUBFUN xmlEntityPtr XMLCALL
106                         xmlGetDocEntity         (const xmlDoc *doc,
107                                                  const xmlChar *name);
108 XMLPUBFUN xmlEntityPtr XMLCALL
109                         xmlGetDtdEntity         (xmlDocPtr doc,
110                                                  const xmlChar *name);
111 XMLPUBFUN xmlEntityPtr XMLCALL
112                         xmlGetParameterEntity   (xmlDocPtr doc,
113                                                  const xmlChar *name);
114 #ifdef LIBXML_LEGACY_ENABLED
115 XMLPUBFUN const xmlChar * XMLCALL
116                         xmlEncodeEntities       (xmlDocPtr doc,
117                                                  const xmlChar *input);
118 #endif /* LIBXML_LEGACY_ENABLED */
119 XMLPUBFUN xmlChar * XMLCALL
120                         xmlEncodeEntitiesReentrant(xmlDocPtr doc,
121                                                  const xmlChar *input);
122 XMLPUBFUN xmlChar * XMLCALL
123                         xmlEncodeSpecialChars   (const xmlDoc *doc,
124                                                  const xmlChar *input);
125 XMLPUBFUN xmlEntitiesTablePtr XMLCALL
126                         xmlCreateEntitiesTable  (void);
127 #ifdef LIBXML_TREE_ENABLED
128 XMLPUBFUN xmlEntitiesTablePtr XMLCALL
129                         xmlCopyEntitiesTable    (xmlEntitiesTablePtr table);
130 #endif /* LIBXML_TREE_ENABLED */
131 XMLPUBFUN void XMLCALL
132                         xmlFreeEntitiesTable    (xmlEntitiesTablePtr table);
133 #ifdef LIBXML_OUTPUT_ENABLED
134 XMLPUBFUN void XMLCALL
135                         xmlDumpEntitiesTable    (xmlBufferPtr buf,
136                                                  xmlEntitiesTablePtr table);
137 XMLPUBFUN void XMLCALL
138                         xmlDumpEntityDecl       (xmlBufferPtr buf,
139                                                  xmlEntityPtr ent);
140 #endif /* LIBXML_OUTPUT_ENABLED */
141 #ifdef LIBXML_LEGACY_ENABLED
142 XMLPUBFUN void XMLCALL
143                         xmlCleanupPredefinedEntities(void);
144 #endif /* LIBXML_LEGACY_ENABLED */
145
146
147 #ifdef __cplusplus
148 }
149 #endif
150
151 # endif /* __XML_ENTITIES_H__ */