xref: /aosp_15_r20/external/libxml2/include/libxml/parser.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker /*
2*7c568831SAndroid Build Coastguard Worker  * Summary: the core parser module
3*7c568831SAndroid Build Coastguard Worker  * Description: Interfaces, constants and types related to the XML parser
4*7c568831SAndroid Build Coastguard Worker  *
5*7c568831SAndroid Build Coastguard Worker  * Copy: See Copyright for the status of this software.
6*7c568831SAndroid Build Coastguard Worker  *
7*7c568831SAndroid Build Coastguard Worker  * Author: Daniel Veillard
8*7c568831SAndroid Build Coastguard Worker  */
9*7c568831SAndroid Build Coastguard Worker 
10*7c568831SAndroid Build Coastguard Worker #ifndef __XML_PARSER_H__
11*7c568831SAndroid Build Coastguard Worker #define __XML_PARSER_H__
12*7c568831SAndroid Build Coastguard Worker 
13*7c568831SAndroid Build Coastguard Worker /** DOC_DISABLE */
14*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h>
15*7c568831SAndroid Build Coastguard Worker #define XML_TREE_INTERNALS
16*7c568831SAndroid Build Coastguard Worker #include <libxml/tree.h>
17*7c568831SAndroid Build Coastguard Worker #undef XML_TREE_INTERNALS
18*7c568831SAndroid Build Coastguard Worker #include <libxml/dict.h>
19*7c568831SAndroid Build Coastguard Worker #include <libxml/hash.h>
20*7c568831SAndroid Build Coastguard Worker #include <libxml/valid.h>
21*7c568831SAndroid Build Coastguard Worker #include <libxml/entities.h>
22*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlerror.h>
23*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlstring.h>
24*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlmemory.h>
25*7c568831SAndroid Build Coastguard Worker #include <libxml/encoding.h>
26*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlIO.h>
27*7c568831SAndroid Build Coastguard Worker /* for compatibility */
28*7c568831SAndroid Build Coastguard Worker #include <libxml/SAX2.h>
29*7c568831SAndroid Build Coastguard Worker #include <libxml/threads.h>
30*7c568831SAndroid Build Coastguard Worker /** DOC_ENABLE */
31*7c568831SAndroid Build Coastguard Worker 
32*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
33*7c568831SAndroid Build Coastguard Worker extern "C" {
34*7c568831SAndroid Build Coastguard Worker #endif
35*7c568831SAndroid Build Coastguard Worker 
36*7c568831SAndroid Build Coastguard Worker /**
37*7c568831SAndroid Build Coastguard Worker  * XML_DEFAULT_VERSION:
38*7c568831SAndroid Build Coastguard Worker  *
39*7c568831SAndroid Build Coastguard Worker  * The default version of XML used: 1.0
40*7c568831SAndroid Build Coastguard Worker  */
41*7c568831SAndroid Build Coastguard Worker #define XML_DEFAULT_VERSION	"1.0"
42*7c568831SAndroid Build Coastguard Worker 
43*7c568831SAndroid Build Coastguard Worker #define XML_STATUS_NOT_WELL_FORMED          (1 << 0)
44*7c568831SAndroid Build Coastguard Worker #define XML_STATUS_NOT_NS_WELL_FORMED       (1 << 1)
45*7c568831SAndroid Build Coastguard Worker #define XML_STATUS_DTD_VALIDATION_FAILED    (1 << 2)
46*7c568831SAndroid Build Coastguard Worker #define XML_STATUS_CATASTROPHIC_ERROR       (1 << 3)
47*7c568831SAndroid Build Coastguard Worker 
48*7c568831SAndroid Build Coastguard Worker typedef enum {
49*7c568831SAndroid Build Coastguard Worker     XML_RESOURCE_UNKNOWN = 0,
50*7c568831SAndroid Build Coastguard Worker     XML_RESOURCE_MAIN_DOCUMENT,
51*7c568831SAndroid Build Coastguard Worker     XML_RESOURCE_DTD,
52*7c568831SAndroid Build Coastguard Worker     XML_RESOURCE_GENERAL_ENTITY,
53*7c568831SAndroid Build Coastguard Worker     XML_RESOURCE_PARAMETER_ENTITY,
54*7c568831SAndroid Build Coastguard Worker     XML_RESOURCE_XINCLUDE,
55*7c568831SAndroid Build Coastguard Worker     XML_RESOURCE_XINCLUDE_TEXT
56*7c568831SAndroid Build Coastguard Worker } xmlResourceType;
57*7c568831SAndroid Build Coastguard Worker 
58*7c568831SAndroid Build Coastguard Worker /**
59*7c568831SAndroid Build Coastguard Worker  * xmlParserInput:
60*7c568831SAndroid Build Coastguard Worker  *
61*7c568831SAndroid Build Coastguard Worker  * An xmlParserInput is an input flow for the XML processor.
62*7c568831SAndroid Build Coastguard Worker  * Each entity parsed is associated an xmlParserInput (except the
63*7c568831SAndroid Build Coastguard Worker  * few predefined ones). This is the case both for internal entities
64*7c568831SAndroid Build Coastguard Worker  * - in which case the flow is already completely in memory - or
65*7c568831SAndroid Build Coastguard Worker  * external entities - in which case we use the buf structure for
66*7c568831SAndroid Build Coastguard Worker  * progressive reading and I18N conversions to the internal UTF-8 format.
67*7c568831SAndroid Build Coastguard Worker  */
68*7c568831SAndroid Build Coastguard Worker 
69*7c568831SAndroid Build Coastguard Worker /**
70*7c568831SAndroid Build Coastguard Worker  * xmlParserInputDeallocate:
71*7c568831SAndroid Build Coastguard Worker  * @str:  the string to deallocate
72*7c568831SAndroid Build Coastguard Worker  *
73*7c568831SAndroid Build Coastguard Worker  * Callback for freeing some parser input allocations.
74*7c568831SAndroid Build Coastguard Worker  */
75*7c568831SAndroid Build Coastguard Worker typedef void (* xmlParserInputDeallocate)(xmlChar *str);
76*7c568831SAndroid Build Coastguard Worker 
77*7c568831SAndroid Build Coastguard Worker struct _xmlParserInput {
78*7c568831SAndroid Build Coastguard Worker     /* Input buffer */
79*7c568831SAndroid Build Coastguard Worker     xmlParserInputBufferPtr buf;
80*7c568831SAndroid Build Coastguard Worker     /* The file analyzed, if any */
81*7c568831SAndroid Build Coastguard Worker     const char *filename;
82*7c568831SAndroid Build Coastguard Worker     /* unused */
83*7c568831SAndroid Build Coastguard Worker     const char *directory XML_DEPRECATED_MEMBER;
84*7c568831SAndroid Build Coastguard Worker     /* Base of the array to parse */
85*7c568831SAndroid Build Coastguard Worker     const xmlChar *base;
86*7c568831SAndroid Build Coastguard Worker     /* Current char being parsed */
87*7c568831SAndroid Build Coastguard Worker     const xmlChar *cur;
88*7c568831SAndroid Build Coastguard Worker     /* end of the array to parse */
89*7c568831SAndroid Build Coastguard Worker     const xmlChar *end;
90*7c568831SAndroid Build Coastguard Worker     /* unused */
91*7c568831SAndroid Build Coastguard Worker     int length XML_DEPRECATED_MEMBER;
92*7c568831SAndroid Build Coastguard Worker     /* Current line */
93*7c568831SAndroid Build Coastguard Worker     int line;
94*7c568831SAndroid Build Coastguard Worker     /* Current column */
95*7c568831SAndroid Build Coastguard Worker     int col;
96*7c568831SAndroid Build Coastguard Worker     /* How many xmlChars already consumed */
97*7c568831SAndroid Build Coastguard Worker     unsigned long consumed XML_DEPRECATED_MEMBER;
98*7c568831SAndroid Build Coastguard Worker     /* function to deallocate the base */
99*7c568831SAndroid Build Coastguard Worker     xmlParserInputDeallocate free XML_DEPRECATED_MEMBER;
100*7c568831SAndroid Build Coastguard Worker     /* unused */
101*7c568831SAndroid Build Coastguard Worker     const xmlChar *encoding XML_DEPRECATED_MEMBER;
102*7c568831SAndroid Build Coastguard Worker     /* the version string for entity */
103*7c568831SAndroid Build Coastguard Worker     const xmlChar *version XML_DEPRECATED_MEMBER;
104*7c568831SAndroid Build Coastguard Worker     /* Flags */
105*7c568831SAndroid Build Coastguard Worker     int flags XML_DEPRECATED_MEMBER;
106*7c568831SAndroid Build Coastguard Worker     /* an unique identifier for the entity */
107*7c568831SAndroid Build Coastguard Worker     int id XML_DEPRECATED_MEMBER;
108*7c568831SAndroid Build Coastguard Worker     /* unused */
109*7c568831SAndroid Build Coastguard Worker     unsigned long parentConsumed XML_DEPRECATED_MEMBER;
110*7c568831SAndroid Build Coastguard Worker     /* entity, if any */
111*7c568831SAndroid Build Coastguard Worker     xmlEntityPtr entity XML_DEPRECATED_MEMBER;
112*7c568831SAndroid Build Coastguard Worker };
113*7c568831SAndroid Build Coastguard Worker 
114*7c568831SAndroid Build Coastguard Worker /**
115*7c568831SAndroid Build Coastguard Worker  * xmlParserNodeInfo:
116*7c568831SAndroid Build Coastguard Worker  *
117*7c568831SAndroid Build Coastguard Worker  * The parser can be asked to collect Node information, i.e. at what
118*7c568831SAndroid Build Coastguard Worker  * place in the file they were detected.
119*7c568831SAndroid Build Coastguard Worker  * NOTE: This is off by default and not very well tested.
120*7c568831SAndroid Build Coastguard Worker  */
121*7c568831SAndroid Build Coastguard Worker typedef struct _xmlParserNodeInfo xmlParserNodeInfo;
122*7c568831SAndroid Build Coastguard Worker typedef xmlParserNodeInfo *xmlParserNodeInfoPtr;
123*7c568831SAndroid Build Coastguard Worker 
124*7c568831SAndroid Build Coastguard Worker struct _xmlParserNodeInfo {
125*7c568831SAndroid Build Coastguard Worker   const struct _xmlNode* node;
126*7c568831SAndroid Build Coastguard Worker   /* Position & line # that text that created the node begins & ends on */
127*7c568831SAndroid Build Coastguard Worker   unsigned long begin_pos;
128*7c568831SAndroid Build Coastguard Worker   unsigned long begin_line;
129*7c568831SAndroid Build Coastguard Worker   unsigned long end_pos;
130*7c568831SAndroid Build Coastguard Worker   unsigned long end_line;
131*7c568831SAndroid Build Coastguard Worker };
132*7c568831SAndroid Build Coastguard Worker 
133*7c568831SAndroid Build Coastguard Worker typedef struct _xmlParserNodeInfoSeq xmlParserNodeInfoSeq;
134*7c568831SAndroid Build Coastguard Worker typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr;
135*7c568831SAndroid Build Coastguard Worker struct _xmlParserNodeInfoSeq {
136*7c568831SAndroid Build Coastguard Worker   unsigned long maximum;
137*7c568831SAndroid Build Coastguard Worker   unsigned long length;
138*7c568831SAndroid Build Coastguard Worker   xmlParserNodeInfo* buffer;
139*7c568831SAndroid Build Coastguard Worker };
140*7c568831SAndroid Build Coastguard Worker 
141*7c568831SAndroid Build Coastguard Worker /**
142*7c568831SAndroid Build Coastguard Worker  * xmlParserInputState:
143*7c568831SAndroid Build Coastguard Worker  *
144*7c568831SAndroid Build Coastguard Worker  * The parser is now working also as a state based parser.
145*7c568831SAndroid Build Coastguard Worker  * The recursive one use the state info for entities processing.
146*7c568831SAndroid Build Coastguard Worker  */
147*7c568831SAndroid Build Coastguard Worker typedef enum {
148*7c568831SAndroid Build Coastguard Worker     XML_PARSER_EOF = -1,	/* nothing is to be parsed */
149*7c568831SAndroid Build Coastguard Worker     XML_PARSER_START = 0,	/* nothing has been parsed */
150*7c568831SAndroid Build Coastguard Worker     XML_PARSER_MISC,		/* Misc* before int subset */
151*7c568831SAndroid Build Coastguard Worker     XML_PARSER_PI,		/* Within a processing instruction */
152*7c568831SAndroid Build Coastguard Worker     XML_PARSER_DTD,		/* within some DTD content */
153*7c568831SAndroid Build Coastguard Worker     XML_PARSER_PROLOG,		/* Misc* after internal subset */
154*7c568831SAndroid Build Coastguard Worker     XML_PARSER_COMMENT,		/* within a comment */
155*7c568831SAndroid Build Coastguard Worker     XML_PARSER_START_TAG,	/* within a start tag */
156*7c568831SAndroid Build Coastguard Worker     XML_PARSER_CONTENT,		/* within the content */
157*7c568831SAndroid Build Coastguard Worker     XML_PARSER_CDATA_SECTION,	/* within a CDATA section */
158*7c568831SAndroid Build Coastguard Worker     XML_PARSER_END_TAG,		/* within a closing tag */
159*7c568831SAndroid Build Coastguard Worker     XML_PARSER_ENTITY_DECL,	/* within an entity declaration */
160*7c568831SAndroid Build Coastguard Worker     XML_PARSER_ENTITY_VALUE,	/* within an entity value in a decl */
161*7c568831SAndroid Build Coastguard Worker     XML_PARSER_ATTRIBUTE_VALUE,	/* within an attribute value */
162*7c568831SAndroid Build Coastguard Worker     XML_PARSER_SYSTEM_LITERAL,	/* within a SYSTEM value */
163*7c568831SAndroid Build Coastguard Worker     XML_PARSER_EPILOG,		/* the Misc* after the last end tag */
164*7c568831SAndroid Build Coastguard Worker     XML_PARSER_IGNORE,		/* within an IGNORED section */
165*7c568831SAndroid Build Coastguard Worker     XML_PARSER_PUBLIC_LITERAL,	/* within a PUBLIC value */
166*7c568831SAndroid Build Coastguard Worker     XML_PARSER_XML_DECL         /* before XML decl (but after BOM) */
167*7c568831SAndroid Build Coastguard Worker } xmlParserInputState;
168*7c568831SAndroid Build Coastguard Worker 
169*7c568831SAndroid Build Coastguard Worker /** DOC_DISABLE */
170*7c568831SAndroid Build Coastguard Worker /*
171*7c568831SAndroid Build Coastguard Worker  * Internal bits in the 'loadsubset' context member
172*7c568831SAndroid Build Coastguard Worker  */
173*7c568831SAndroid Build Coastguard Worker #define XML_DETECT_IDS		2
174*7c568831SAndroid Build Coastguard Worker #define XML_COMPLETE_ATTRS	4
175*7c568831SAndroid Build Coastguard Worker #define XML_SKIP_IDS		8
176*7c568831SAndroid Build Coastguard Worker /** DOC_ENABLE */
177*7c568831SAndroid Build Coastguard Worker 
178*7c568831SAndroid Build Coastguard Worker /**
179*7c568831SAndroid Build Coastguard Worker  * xmlParserMode:
180*7c568831SAndroid Build Coastguard Worker  *
181*7c568831SAndroid Build Coastguard Worker  * A parser can operate in various modes
182*7c568831SAndroid Build Coastguard Worker  */
183*7c568831SAndroid Build Coastguard Worker typedef enum {
184*7c568831SAndroid Build Coastguard Worker     XML_PARSE_UNKNOWN = 0,
185*7c568831SAndroid Build Coastguard Worker     XML_PARSE_DOM = 1,
186*7c568831SAndroid Build Coastguard Worker     XML_PARSE_SAX = 2,
187*7c568831SAndroid Build Coastguard Worker     XML_PARSE_PUSH_DOM = 3,
188*7c568831SAndroid Build Coastguard Worker     XML_PARSE_PUSH_SAX = 4,
189*7c568831SAndroid Build Coastguard Worker     XML_PARSE_READER = 5
190*7c568831SAndroid Build Coastguard Worker } xmlParserMode;
191*7c568831SAndroid Build Coastguard Worker 
192*7c568831SAndroid Build Coastguard Worker typedef struct _xmlStartTag xmlStartTag;
193*7c568831SAndroid Build Coastguard Worker typedef struct _xmlParserNsData xmlParserNsData;
194*7c568831SAndroid Build Coastguard Worker typedef struct _xmlAttrHashBucket xmlAttrHashBucket;
195*7c568831SAndroid Build Coastguard Worker 
196*7c568831SAndroid Build Coastguard Worker typedef int
197*7c568831SAndroid Build Coastguard Worker (*xmlResourceLoader)(void *ctxt, const char *url, const char *publicId,
198*7c568831SAndroid Build Coastguard Worker                      xmlResourceType type, int flags, xmlParserInputPtr *out);
199*7c568831SAndroid Build Coastguard Worker 
200*7c568831SAndroid Build Coastguard Worker /**
201*7c568831SAndroid Build Coastguard Worker  * xmlParserCtxt:
202*7c568831SAndroid Build Coastguard Worker  *
203*7c568831SAndroid Build Coastguard Worker  * The parser context.
204*7c568831SAndroid Build Coastguard Worker  * NOTE This doesn't completely define the parser state, the (current ?)
205*7c568831SAndroid Build Coastguard Worker  *      design of the parser uses recursive function calls since this allow
206*7c568831SAndroid Build Coastguard Worker  *      and easy mapping from the production rules of the specification
207*7c568831SAndroid Build Coastguard Worker  *      to the actual code. The drawback is that the actual function call
208*7c568831SAndroid Build Coastguard Worker  *      also reflect the parser state. However most of the parsing routines
209*7c568831SAndroid Build Coastguard Worker  *      takes as the only argument the parser context pointer, so migrating
210*7c568831SAndroid Build Coastguard Worker  *      to a state based parser for progressive parsing shouldn't be too hard.
211*7c568831SAndroid Build Coastguard Worker  */
212*7c568831SAndroid Build Coastguard Worker struct _xmlParserCtxt {
213*7c568831SAndroid Build Coastguard Worker     /* The SAX handler */
214*7c568831SAndroid Build Coastguard Worker     struct _xmlSAXHandler *sax;
215*7c568831SAndroid Build Coastguard Worker     /* For SAX interface only, used by DOM build */
216*7c568831SAndroid Build Coastguard Worker     void *userData;
217*7c568831SAndroid Build Coastguard Worker     /* the document being built */
218*7c568831SAndroid Build Coastguard Worker     xmlDocPtr myDoc;
219*7c568831SAndroid Build Coastguard Worker     /* is the document well formed */
220*7c568831SAndroid Build Coastguard Worker     int wellFormed;
221*7c568831SAndroid Build Coastguard Worker     /* shall we replace entities ? */
222*7c568831SAndroid Build Coastguard Worker     int replaceEntities XML_DEPRECATED_MEMBER;
223*7c568831SAndroid Build Coastguard Worker     /* the XML version string */
224*7c568831SAndroid Build Coastguard Worker     const xmlChar *version;
225*7c568831SAndroid Build Coastguard Worker     /* the declared encoding, if any */
226*7c568831SAndroid Build Coastguard Worker     const xmlChar *encoding;
227*7c568831SAndroid Build Coastguard Worker     /* standalone document */
228*7c568831SAndroid Build Coastguard Worker     int standalone;
229*7c568831SAndroid Build Coastguard Worker 
230*7c568831SAndroid Build Coastguard Worker     /* an HTML(1) document
231*7c568831SAndroid Build Coastguard Worker      * 3 is HTML after <head>
232*7c568831SAndroid Build Coastguard Worker      * 10 is HTML after <body>
233*7c568831SAndroid Build Coastguard Worker      */
234*7c568831SAndroid Build Coastguard Worker     int html;
235*7c568831SAndroid Build Coastguard Worker 
236*7c568831SAndroid Build Coastguard Worker     /* Input stream stack */
237*7c568831SAndroid Build Coastguard Worker 
238*7c568831SAndroid Build Coastguard Worker     /* Current input stream */
239*7c568831SAndroid Build Coastguard Worker     xmlParserInputPtr input;
240*7c568831SAndroid Build Coastguard Worker     /* Number of current input streams */
241*7c568831SAndroid Build Coastguard Worker     int inputNr;
242*7c568831SAndroid Build Coastguard Worker     /* Max number of input streams */
243*7c568831SAndroid Build Coastguard Worker     int inputMax XML_DEPRECATED_MEMBER;
244*7c568831SAndroid Build Coastguard Worker     /* stack of inputs */
245*7c568831SAndroid Build Coastguard Worker     xmlParserInputPtr *inputTab;
246*7c568831SAndroid Build Coastguard Worker 
247*7c568831SAndroid Build Coastguard Worker     /* Node analysis stack only used for DOM building */
248*7c568831SAndroid Build Coastguard Worker 
249*7c568831SAndroid Build Coastguard Worker     /* Current parsed Node */
250*7c568831SAndroid Build Coastguard Worker     xmlNodePtr node XML_DEPRECATED_MEMBER;
251*7c568831SAndroid Build Coastguard Worker     /* Depth of the parsing stack */
252*7c568831SAndroid Build Coastguard Worker     int nodeNr XML_DEPRECATED_MEMBER;
253*7c568831SAndroid Build Coastguard Worker     /* Max depth of the parsing stack */
254*7c568831SAndroid Build Coastguard Worker     int nodeMax XML_DEPRECATED_MEMBER;
255*7c568831SAndroid Build Coastguard Worker     /* array of nodes */
256*7c568831SAndroid Build Coastguard Worker     xmlNodePtr *nodeTab XML_DEPRECATED_MEMBER;
257*7c568831SAndroid Build Coastguard Worker 
258*7c568831SAndroid Build Coastguard Worker     /* Whether node info should be kept */
259*7c568831SAndroid Build Coastguard Worker     int record_info;
260*7c568831SAndroid Build Coastguard Worker     /* info about each node parsed */
261*7c568831SAndroid Build Coastguard Worker     xmlParserNodeInfoSeq node_seq XML_DEPRECATED_MEMBER;
262*7c568831SAndroid Build Coastguard Worker 
263*7c568831SAndroid Build Coastguard Worker     /* error code */
264*7c568831SAndroid Build Coastguard Worker     int errNo;
265*7c568831SAndroid Build Coastguard Worker 
266*7c568831SAndroid Build Coastguard Worker     /* reference and external subset */
267*7c568831SAndroid Build Coastguard Worker     int hasExternalSubset XML_DEPRECATED_MEMBER;
268*7c568831SAndroid Build Coastguard Worker     /* the internal subset has PE refs */
269*7c568831SAndroid Build Coastguard Worker     int hasPErefs XML_DEPRECATED_MEMBER;
270*7c568831SAndroid Build Coastguard Worker     /* unused */
271*7c568831SAndroid Build Coastguard Worker     int external XML_DEPRECATED_MEMBER;
272*7c568831SAndroid Build Coastguard Worker 
273*7c568831SAndroid Build Coastguard Worker     /* is the document valid */
274*7c568831SAndroid Build Coastguard Worker     int valid;
275*7c568831SAndroid Build Coastguard Worker     /* shall we try to validate ? */
276*7c568831SAndroid Build Coastguard Worker     int validate XML_DEPRECATED_MEMBER;
277*7c568831SAndroid Build Coastguard Worker     /* The validity context */
278*7c568831SAndroid Build Coastguard Worker     xmlValidCtxt vctxt;
279*7c568831SAndroid Build Coastguard Worker 
280*7c568831SAndroid Build Coastguard Worker     /* push parser state */
281*7c568831SAndroid Build Coastguard Worker     xmlParserInputState instate XML_DEPRECATED_MEMBER;
282*7c568831SAndroid Build Coastguard Worker     /* unused */
283*7c568831SAndroid Build Coastguard Worker     int token XML_DEPRECATED_MEMBER;
284*7c568831SAndroid Build Coastguard Worker 
285*7c568831SAndroid Build Coastguard Worker     /* unused internally, still used downstream */
286*7c568831SAndroid Build Coastguard Worker     char *directory;
287*7c568831SAndroid Build Coastguard Worker 
288*7c568831SAndroid Build Coastguard Worker     /* Node name stack */
289*7c568831SAndroid Build Coastguard Worker 
290*7c568831SAndroid Build Coastguard Worker     /* Current parsed Node */
291*7c568831SAndroid Build Coastguard Worker     const xmlChar *name XML_DEPRECATED_MEMBER;
292*7c568831SAndroid Build Coastguard Worker     /* Depth of the parsing stack */
293*7c568831SAndroid Build Coastguard Worker     int nameNr XML_DEPRECATED_MEMBER;
294*7c568831SAndroid Build Coastguard Worker     /* Max depth of the parsing stack */
295*7c568831SAndroid Build Coastguard Worker     int nameMax XML_DEPRECATED_MEMBER;
296*7c568831SAndroid Build Coastguard Worker     /* array of nodes */
297*7c568831SAndroid Build Coastguard Worker     const xmlChar **nameTab XML_DEPRECATED_MEMBER;
298*7c568831SAndroid Build Coastguard Worker 
299*7c568831SAndroid Build Coastguard Worker     /* unused */
300*7c568831SAndroid Build Coastguard Worker     long nbChars XML_DEPRECATED_MEMBER;
301*7c568831SAndroid Build Coastguard Worker     /* used by progressive parsing lookup */
302*7c568831SAndroid Build Coastguard Worker     long checkIndex XML_DEPRECATED_MEMBER;
303*7c568831SAndroid Build Coastguard Worker     /* ugly but ... */
304*7c568831SAndroid Build Coastguard Worker     int keepBlanks XML_DEPRECATED_MEMBER;
305*7c568831SAndroid Build Coastguard Worker     /* SAX callbacks are disabled */
306*7c568831SAndroid Build Coastguard Worker     int disableSAX XML_DEPRECATED_MEMBER;
307*7c568831SAndroid Build Coastguard Worker     /* Parsing is in int 1/ext 2 subset */
308*7c568831SAndroid Build Coastguard Worker     int inSubset;
309*7c568831SAndroid Build Coastguard Worker     /* name of subset */
310*7c568831SAndroid Build Coastguard Worker     const xmlChar *intSubName;
311*7c568831SAndroid Build Coastguard Worker     /* URI of external subset */
312*7c568831SAndroid Build Coastguard Worker     xmlChar *extSubURI;
313*7c568831SAndroid Build Coastguard Worker     /* SYSTEM ID of external subset */
314*7c568831SAndroid Build Coastguard Worker     xmlChar *extSubSystem;
315*7c568831SAndroid Build Coastguard Worker 
316*7c568831SAndroid Build Coastguard Worker     /* xml:space values */
317*7c568831SAndroid Build Coastguard Worker 
318*7c568831SAndroid Build Coastguard Worker     /* Should the parser preserve spaces */
319*7c568831SAndroid Build Coastguard Worker     int *space XML_DEPRECATED_MEMBER;
320*7c568831SAndroid Build Coastguard Worker     /* Depth of the parsing stack */
321*7c568831SAndroid Build Coastguard Worker     int spaceNr XML_DEPRECATED_MEMBER;
322*7c568831SAndroid Build Coastguard Worker     /* Max depth of the parsing stack */
323*7c568831SAndroid Build Coastguard Worker     int spaceMax XML_DEPRECATED_MEMBER;
324*7c568831SAndroid Build Coastguard Worker     /* array of space infos */
325*7c568831SAndroid Build Coastguard Worker     int *spaceTab XML_DEPRECATED_MEMBER;
326*7c568831SAndroid Build Coastguard Worker 
327*7c568831SAndroid Build Coastguard Worker     /* to prevent entity substitution loops */
328*7c568831SAndroid Build Coastguard Worker     int depth XML_DEPRECATED_MEMBER;
329*7c568831SAndroid Build Coastguard Worker     /* unused */
330*7c568831SAndroid Build Coastguard Worker     xmlParserInputPtr entity XML_DEPRECATED_MEMBER;
331*7c568831SAndroid Build Coastguard Worker     /* unused */
332*7c568831SAndroid Build Coastguard Worker     int charset XML_DEPRECATED_MEMBER;
333*7c568831SAndroid Build Coastguard Worker     /* Those two fields are there to */
334*7c568831SAndroid Build Coastguard Worker     int nodelen XML_DEPRECATED_MEMBER;
335*7c568831SAndroid Build Coastguard Worker     /* Speed up large node parsing */
336*7c568831SAndroid Build Coastguard Worker     int nodemem XML_DEPRECATED_MEMBER;
337*7c568831SAndroid Build Coastguard Worker     /* signal pedantic warnings */
338*7c568831SAndroid Build Coastguard Worker     int pedantic XML_DEPRECATED_MEMBER;
339*7c568831SAndroid Build Coastguard Worker     /* For user data, libxml won't touch it */
340*7c568831SAndroid Build Coastguard Worker     void *_private;
341*7c568831SAndroid Build Coastguard Worker 
342*7c568831SAndroid Build Coastguard Worker     /* should the external subset be loaded */
343*7c568831SAndroid Build Coastguard Worker     int loadsubset XML_DEPRECATED_MEMBER;
344*7c568831SAndroid Build Coastguard Worker     /* set line number in element content */
345*7c568831SAndroid Build Coastguard Worker     int linenumbers XML_DEPRECATED_MEMBER;
346*7c568831SAndroid Build Coastguard Worker     /* document's own catalog */
347*7c568831SAndroid Build Coastguard Worker     void *catalogs XML_DEPRECATED_MEMBER;
348*7c568831SAndroid Build Coastguard Worker     /* run in recovery mode */
349*7c568831SAndroid Build Coastguard Worker     int recovery XML_DEPRECATED_MEMBER;
350*7c568831SAndroid Build Coastguard Worker     /* unused */
351*7c568831SAndroid Build Coastguard Worker     int progressive XML_DEPRECATED_MEMBER;
352*7c568831SAndroid Build Coastguard Worker     /* dictionary for the parser */
353*7c568831SAndroid Build Coastguard Worker     xmlDictPtr dict;
354*7c568831SAndroid Build Coastguard Worker     /* array for the attributes callbacks */
355*7c568831SAndroid Build Coastguard Worker     const xmlChar **atts XML_DEPRECATED_MEMBER;
356*7c568831SAndroid Build Coastguard Worker     /* the size of the array */
357*7c568831SAndroid Build Coastguard Worker     int maxatts XML_DEPRECATED_MEMBER;
358*7c568831SAndroid Build Coastguard Worker     /* unused */
359*7c568831SAndroid Build Coastguard Worker     int docdict XML_DEPRECATED_MEMBER;
360*7c568831SAndroid Build Coastguard Worker 
361*7c568831SAndroid Build Coastguard Worker     /*
362*7c568831SAndroid Build Coastguard Worker      * pre-interned strings
363*7c568831SAndroid Build Coastguard Worker      */
364*7c568831SAndroid Build Coastguard Worker     const xmlChar *str_xml XML_DEPRECATED_MEMBER;
365*7c568831SAndroid Build Coastguard Worker     const xmlChar *str_xmlns XML_DEPRECATED_MEMBER;
366*7c568831SAndroid Build Coastguard Worker     const xmlChar *str_xml_ns XML_DEPRECATED_MEMBER;
367*7c568831SAndroid Build Coastguard Worker 
368*7c568831SAndroid Build Coastguard Worker     /*
369*7c568831SAndroid Build Coastguard Worker      * Everything below is used only by the new SAX mode
370*7c568831SAndroid Build Coastguard Worker      */
371*7c568831SAndroid Build Coastguard Worker 
372*7c568831SAndroid Build Coastguard Worker     /* operating in the new SAX mode */
373*7c568831SAndroid Build Coastguard Worker     int sax2 XML_DEPRECATED_MEMBER;
374*7c568831SAndroid Build Coastguard Worker     /* the number of inherited namespaces */
375*7c568831SAndroid Build Coastguard Worker     int nsNr XML_DEPRECATED_MEMBER;
376*7c568831SAndroid Build Coastguard Worker     /* the size of the arrays */
377*7c568831SAndroid Build Coastguard Worker     int nsMax XML_DEPRECATED_MEMBER;
378*7c568831SAndroid Build Coastguard Worker     /* the array of prefix/namespace name */
379*7c568831SAndroid Build Coastguard Worker     const xmlChar **nsTab XML_DEPRECATED_MEMBER;
380*7c568831SAndroid Build Coastguard Worker     /* which attribute were allocated */
381*7c568831SAndroid Build Coastguard Worker     unsigned *attallocs XML_DEPRECATED_MEMBER;
382*7c568831SAndroid Build Coastguard Worker     /* array of data for push */
383*7c568831SAndroid Build Coastguard Worker     xmlStartTag *pushTab XML_DEPRECATED_MEMBER;
384*7c568831SAndroid Build Coastguard Worker     /* defaulted attributes if any */
385*7c568831SAndroid Build Coastguard Worker     xmlHashTablePtr attsDefault XML_DEPRECATED_MEMBER;
386*7c568831SAndroid Build Coastguard Worker     /* non-CDATA attributes if any */
387*7c568831SAndroid Build Coastguard Worker     xmlHashTablePtr attsSpecial XML_DEPRECATED_MEMBER;
388*7c568831SAndroid Build Coastguard Worker     /* is the document XML Namespace okay */
389*7c568831SAndroid Build Coastguard Worker     int nsWellFormed;
390*7c568831SAndroid Build Coastguard Worker     /* Extra options */
391*7c568831SAndroid Build Coastguard Worker     int options;
392*7c568831SAndroid Build Coastguard Worker 
393*7c568831SAndroid Build Coastguard Worker     /*
394*7c568831SAndroid Build Coastguard Worker      * Those fields are needed only for streaming parsing so far
395*7c568831SAndroid Build Coastguard Worker      */
396*7c568831SAndroid Build Coastguard Worker 
397*7c568831SAndroid Build Coastguard Worker     /* Use dictionary names for the tree */
398*7c568831SAndroid Build Coastguard Worker     int dictNames XML_DEPRECATED_MEMBER;
399*7c568831SAndroid Build Coastguard Worker     /* number of freed element nodes */
400*7c568831SAndroid Build Coastguard Worker     int freeElemsNr XML_DEPRECATED_MEMBER;
401*7c568831SAndroid Build Coastguard Worker     /* List of freed element nodes */
402*7c568831SAndroid Build Coastguard Worker     xmlNodePtr freeElems XML_DEPRECATED_MEMBER;
403*7c568831SAndroid Build Coastguard Worker     /* number of freed attributes nodes */
404*7c568831SAndroid Build Coastguard Worker     int freeAttrsNr XML_DEPRECATED_MEMBER;
405*7c568831SAndroid Build Coastguard Worker     /* List of freed attributes nodes */
406*7c568831SAndroid Build Coastguard Worker     xmlAttrPtr freeAttrs XML_DEPRECATED_MEMBER;
407*7c568831SAndroid Build Coastguard Worker 
408*7c568831SAndroid Build Coastguard Worker     /*
409*7c568831SAndroid Build Coastguard Worker      * the complete error information for the last error.
410*7c568831SAndroid Build Coastguard Worker      */
411*7c568831SAndroid Build Coastguard Worker     xmlError lastError XML_DEPRECATED_MEMBER;
412*7c568831SAndroid Build Coastguard Worker     /* the parser mode */
413*7c568831SAndroid Build Coastguard Worker     xmlParserMode parseMode XML_DEPRECATED_MEMBER;
414*7c568831SAndroid Build Coastguard Worker     /* unused */
415*7c568831SAndroid Build Coastguard Worker     unsigned long nbentities XML_DEPRECATED_MEMBER;
416*7c568831SAndroid Build Coastguard Worker     /* size of external entities */
417*7c568831SAndroid Build Coastguard Worker     unsigned long sizeentities XML_DEPRECATED_MEMBER;
418*7c568831SAndroid Build Coastguard Worker 
419*7c568831SAndroid Build Coastguard Worker     /* for use by HTML non-recursive parser */
420*7c568831SAndroid Build Coastguard Worker     /* Current NodeInfo */
421*7c568831SAndroid Build Coastguard Worker     xmlParserNodeInfo *nodeInfo XML_DEPRECATED_MEMBER;
422*7c568831SAndroid Build Coastguard Worker     /* Depth of the parsing stack */
423*7c568831SAndroid Build Coastguard Worker     int nodeInfoNr XML_DEPRECATED_MEMBER;
424*7c568831SAndroid Build Coastguard Worker     /* Max depth of the parsing stack */
425*7c568831SAndroid Build Coastguard Worker     int nodeInfoMax XML_DEPRECATED_MEMBER;
426*7c568831SAndroid Build Coastguard Worker     /* array of nodeInfos */
427*7c568831SAndroid Build Coastguard Worker     xmlParserNodeInfo *nodeInfoTab XML_DEPRECATED_MEMBER;
428*7c568831SAndroid Build Coastguard Worker 
429*7c568831SAndroid Build Coastguard Worker     /* we need to label inputs */
430*7c568831SAndroid Build Coastguard Worker     int input_id XML_DEPRECATED_MEMBER;
431*7c568831SAndroid Build Coastguard Worker     /* volume of entity copy */
432*7c568831SAndroid Build Coastguard Worker     unsigned long sizeentcopy XML_DEPRECATED_MEMBER;
433*7c568831SAndroid Build Coastguard Worker 
434*7c568831SAndroid Build Coastguard Worker     /* quote state for push parser */
435*7c568831SAndroid Build Coastguard Worker     int endCheckState XML_DEPRECATED_MEMBER;
436*7c568831SAndroid Build Coastguard Worker     /* number of errors */
437*7c568831SAndroid Build Coastguard Worker     unsigned short nbErrors XML_DEPRECATED_MEMBER;
438*7c568831SAndroid Build Coastguard Worker     /* number of warnings */
439*7c568831SAndroid Build Coastguard Worker     unsigned short nbWarnings XML_DEPRECATED_MEMBER;
440*7c568831SAndroid Build Coastguard Worker     /* maximum amplification factor */
441*7c568831SAndroid Build Coastguard Worker     unsigned maxAmpl XML_DEPRECATED_MEMBER;
442*7c568831SAndroid Build Coastguard Worker 
443*7c568831SAndroid Build Coastguard Worker     /* namespace database */
444*7c568831SAndroid Build Coastguard Worker     xmlParserNsData *nsdb XML_DEPRECATED_MEMBER;
445*7c568831SAndroid Build Coastguard Worker     /* allocated size */
446*7c568831SAndroid Build Coastguard Worker     unsigned attrHashMax XML_DEPRECATED_MEMBER;
447*7c568831SAndroid Build Coastguard Worker     /* atttribute hash table */
448*7c568831SAndroid Build Coastguard Worker     xmlAttrHashBucket *attrHash XML_DEPRECATED_MEMBER;
449*7c568831SAndroid Build Coastguard Worker 
450*7c568831SAndroid Build Coastguard Worker     xmlStructuredErrorFunc errorHandler XML_DEPRECATED_MEMBER;
451*7c568831SAndroid Build Coastguard Worker     void *errorCtxt XML_DEPRECATED_MEMBER;
452*7c568831SAndroid Build Coastguard Worker 
453*7c568831SAndroid Build Coastguard Worker     xmlResourceLoader resourceLoader XML_DEPRECATED_MEMBER;
454*7c568831SAndroid Build Coastguard Worker     void *resourceCtxt XML_DEPRECATED_MEMBER;
455*7c568831SAndroid Build Coastguard Worker 
456*7c568831SAndroid Build Coastguard Worker     xmlCharEncConvImpl convImpl XML_DEPRECATED_MEMBER;
457*7c568831SAndroid Build Coastguard Worker     void *convCtxt XML_DEPRECATED_MEMBER;
458*7c568831SAndroid Build Coastguard Worker };
459*7c568831SAndroid Build Coastguard Worker 
460*7c568831SAndroid Build Coastguard Worker /**
461*7c568831SAndroid Build Coastguard Worker  * xmlSAXLocator:
462*7c568831SAndroid Build Coastguard Worker  *
463*7c568831SAndroid Build Coastguard Worker  * A SAX Locator.
464*7c568831SAndroid Build Coastguard Worker  */
465*7c568831SAndroid Build Coastguard Worker struct _xmlSAXLocator {
466*7c568831SAndroid Build Coastguard Worker     const xmlChar *(*getPublicId)(void *ctx);
467*7c568831SAndroid Build Coastguard Worker     const xmlChar *(*getSystemId)(void *ctx);
468*7c568831SAndroid Build Coastguard Worker     int (*getLineNumber)(void *ctx);
469*7c568831SAndroid Build Coastguard Worker     int (*getColumnNumber)(void *ctx);
470*7c568831SAndroid Build Coastguard Worker };
471*7c568831SAndroid Build Coastguard Worker 
472*7c568831SAndroid Build Coastguard Worker /**
473*7c568831SAndroid Build Coastguard Worker  * xmlSAXHandler:
474*7c568831SAndroid Build Coastguard Worker  *
475*7c568831SAndroid Build Coastguard Worker  * A SAX handler is bunch of callbacks called by the parser when processing
476*7c568831SAndroid Build Coastguard Worker  * of the input generate data or structure information.
477*7c568831SAndroid Build Coastguard Worker  */
478*7c568831SAndroid Build Coastguard Worker 
479*7c568831SAndroid Build Coastguard Worker /**
480*7c568831SAndroid Build Coastguard Worker  * resolveEntitySAXFunc:
481*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
482*7c568831SAndroid Build Coastguard Worker  * @publicId: The public ID of the entity
483*7c568831SAndroid Build Coastguard Worker  * @systemId: The system ID of the entity
484*7c568831SAndroid Build Coastguard Worker  *
485*7c568831SAndroid Build Coastguard Worker  * Callback:
486*7c568831SAndroid Build Coastguard Worker  * The entity loader, to control the loading of external entities,
487*7c568831SAndroid Build Coastguard Worker  * the application can either:
488*7c568831SAndroid Build Coastguard Worker  *    - override this resolveEntity() callback in the SAX block
489*7c568831SAndroid Build Coastguard Worker  *    - or better use the xmlSetExternalEntityLoader() function to
490*7c568831SAndroid Build Coastguard Worker  *      set up it's own entity resolution routine
491*7c568831SAndroid Build Coastguard Worker  *
492*7c568831SAndroid Build Coastguard Worker  * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
493*7c568831SAndroid Build Coastguard Worker  */
494*7c568831SAndroid Build Coastguard Worker typedef xmlParserInputPtr (*resolveEntitySAXFunc) (void *ctx,
495*7c568831SAndroid Build Coastguard Worker 				const xmlChar *publicId,
496*7c568831SAndroid Build Coastguard Worker 				const xmlChar *systemId);
497*7c568831SAndroid Build Coastguard Worker /**
498*7c568831SAndroid Build Coastguard Worker  * internalSubsetSAXFunc:
499*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
500*7c568831SAndroid Build Coastguard Worker  * @name:  the root element name
501*7c568831SAndroid Build Coastguard Worker  * @ExternalID:  the external ID
502*7c568831SAndroid Build Coastguard Worker  * @SystemID:  the SYSTEM ID (e.g. filename or URL)
503*7c568831SAndroid Build Coastguard Worker  *
504*7c568831SAndroid Build Coastguard Worker  * Callback on internal subset declaration.
505*7c568831SAndroid Build Coastguard Worker  */
506*7c568831SAndroid Build Coastguard Worker typedef void (*internalSubsetSAXFunc) (void *ctx,
507*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name,
508*7c568831SAndroid Build Coastguard Worker 				const xmlChar *ExternalID,
509*7c568831SAndroid Build Coastguard Worker 				const xmlChar *SystemID);
510*7c568831SAndroid Build Coastguard Worker /**
511*7c568831SAndroid Build Coastguard Worker  * externalSubsetSAXFunc:
512*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
513*7c568831SAndroid Build Coastguard Worker  * @name:  the root element name
514*7c568831SAndroid Build Coastguard Worker  * @ExternalID:  the external ID
515*7c568831SAndroid Build Coastguard Worker  * @SystemID:  the SYSTEM ID (e.g. filename or URL)
516*7c568831SAndroid Build Coastguard Worker  *
517*7c568831SAndroid Build Coastguard Worker  * Callback on external subset declaration.
518*7c568831SAndroid Build Coastguard Worker  */
519*7c568831SAndroid Build Coastguard Worker typedef void (*externalSubsetSAXFunc) (void *ctx,
520*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name,
521*7c568831SAndroid Build Coastguard Worker 				const xmlChar *ExternalID,
522*7c568831SAndroid Build Coastguard Worker 				const xmlChar *SystemID);
523*7c568831SAndroid Build Coastguard Worker /**
524*7c568831SAndroid Build Coastguard Worker  * getEntitySAXFunc:
525*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
526*7c568831SAndroid Build Coastguard Worker  * @name: The entity name
527*7c568831SAndroid Build Coastguard Worker  *
528*7c568831SAndroid Build Coastguard Worker  * Get an entity by name.
529*7c568831SAndroid Build Coastguard Worker  *
530*7c568831SAndroid Build Coastguard Worker  * Returns the xmlEntityPtr if found.
531*7c568831SAndroid Build Coastguard Worker  */
532*7c568831SAndroid Build Coastguard Worker typedef xmlEntityPtr (*getEntitySAXFunc) (void *ctx,
533*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name);
534*7c568831SAndroid Build Coastguard Worker /**
535*7c568831SAndroid Build Coastguard Worker  * getParameterEntitySAXFunc:
536*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
537*7c568831SAndroid Build Coastguard Worker  * @name: The entity name
538*7c568831SAndroid Build Coastguard Worker  *
539*7c568831SAndroid Build Coastguard Worker  * Get a parameter entity by name.
540*7c568831SAndroid Build Coastguard Worker  *
541*7c568831SAndroid Build Coastguard Worker  * Returns the xmlEntityPtr if found.
542*7c568831SAndroid Build Coastguard Worker  */
543*7c568831SAndroid Build Coastguard Worker typedef xmlEntityPtr (*getParameterEntitySAXFunc) (void *ctx,
544*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name);
545*7c568831SAndroid Build Coastguard Worker /**
546*7c568831SAndroid Build Coastguard Worker  * entityDeclSAXFunc:
547*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
548*7c568831SAndroid Build Coastguard Worker  * @name:  the entity name
549*7c568831SAndroid Build Coastguard Worker  * @type:  the entity type
550*7c568831SAndroid Build Coastguard Worker  * @publicId: The public ID of the entity
551*7c568831SAndroid Build Coastguard Worker  * @systemId: The system ID of the entity
552*7c568831SAndroid Build Coastguard Worker  * @content: the entity value (without processing).
553*7c568831SAndroid Build Coastguard Worker  *
554*7c568831SAndroid Build Coastguard Worker  * An entity definition has been parsed.
555*7c568831SAndroid Build Coastguard Worker  */
556*7c568831SAndroid Build Coastguard Worker typedef void (*entityDeclSAXFunc) (void *ctx,
557*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name,
558*7c568831SAndroid Build Coastguard Worker 				int type,
559*7c568831SAndroid Build Coastguard Worker 				const xmlChar *publicId,
560*7c568831SAndroid Build Coastguard Worker 				const xmlChar *systemId,
561*7c568831SAndroid Build Coastguard Worker 				xmlChar *content);
562*7c568831SAndroid Build Coastguard Worker /**
563*7c568831SAndroid Build Coastguard Worker  * notationDeclSAXFunc:
564*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
565*7c568831SAndroid Build Coastguard Worker  * @name: The name of the notation
566*7c568831SAndroid Build Coastguard Worker  * @publicId: The public ID of the entity
567*7c568831SAndroid Build Coastguard Worker  * @systemId: The system ID of the entity
568*7c568831SAndroid Build Coastguard Worker  *
569*7c568831SAndroid Build Coastguard Worker  * What to do when a notation declaration has been parsed.
570*7c568831SAndroid Build Coastguard Worker  */
571*7c568831SAndroid Build Coastguard Worker typedef void (*notationDeclSAXFunc)(void *ctx,
572*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name,
573*7c568831SAndroid Build Coastguard Worker 				const xmlChar *publicId,
574*7c568831SAndroid Build Coastguard Worker 				const xmlChar *systemId);
575*7c568831SAndroid Build Coastguard Worker /**
576*7c568831SAndroid Build Coastguard Worker  * attributeDeclSAXFunc:
577*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
578*7c568831SAndroid Build Coastguard Worker  * @elem:  the name of the element
579*7c568831SAndroid Build Coastguard Worker  * @fullname:  the attribute name
580*7c568831SAndroid Build Coastguard Worker  * @type:  the attribute type
581*7c568831SAndroid Build Coastguard Worker  * @def:  the type of default value
582*7c568831SAndroid Build Coastguard Worker  * @defaultValue: the attribute default value
583*7c568831SAndroid Build Coastguard Worker  * @tree:  the tree of enumerated value set
584*7c568831SAndroid Build Coastguard Worker  *
585*7c568831SAndroid Build Coastguard Worker  * An attribute definition has been parsed.
586*7c568831SAndroid Build Coastguard Worker  */
587*7c568831SAndroid Build Coastguard Worker typedef void (*attributeDeclSAXFunc)(void *ctx,
588*7c568831SAndroid Build Coastguard Worker 				const xmlChar *elem,
589*7c568831SAndroid Build Coastguard Worker 				const xmlChar *fullname,
590*7c568831SAndroid Build Coastguard Worker 				int type,
591*7c568831SAndroid Build Coastguard Worker 				int def,
592*7c568831SAndroid Build Coastguard Worker 				const xmlChar *defaultValue,
593*7c568831SAndroid Build Coastguard Worker 				xmlEnumerationPtr tree);
594*7c568831SAndroid Build Coastguard Worker /**
595*7c568831SAndroid Build Coastguard Worker  * elementDeclSAXFunc:
596*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
597*7c568831SAndroid Build Coastguard Worker  * @name:  the element name
598*7c568831SAndroid Build Coastguard Worker  * @type:  the element type
599*7c568831SAndroid Build Coastguard Worker  * @content: the element value tree
600*7c568831SAndroid Build Coastguard Worker  *
601*7c568831SAndroid Build Coastguard Worker  * An element definition has been parsed.
602*7c568831SAndroid Build Coastguard Worker  */
603*7c568831SAndroid Build Coastguard Worker typedef void (*elementDeclSAXFunc)(void *ctx,
604*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name,
605*7c568831SAndroid Build Coastguard Worker 				int type,
606*7c568831SAndroid Build Coastguard Worker 				xmlElementContentPtr content);
607*7c568831SAndroid Build Coastguard Worker /**
608*7c568831SAndroid Build Coastguard Worker  * unparsedEntityDeclSAXFunc:
609*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
610*7c568831SAndroid Build Coastguard Worker  * @name: The name of the entity
611*7c568831SAndroid Build Coastguard Worker  * @publicId: The public ID of the entity
612*7c568831SAndroid Build Coastguard Worker  * @systemId: The system ID of the entity
613*7c568831SAndroid Build Coastguard Worker  * @notationName: the name of the notation
614*7c568831SAndroid Build Coastguard Worker  *
615*7c568831SAndroid Build Coastguard Worker  * What to do when an unparsed entity declaration is parsed.
616*7c568831SAndroid Build Coastguard Worker  */
617*7c568831SAndroid Build Coastguard Worker typedef void (*unparsedEntityDeclSAXFunc)(void *ctx,
618*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name,
619*7c568831SAndroid Build Coastguard Worker 				const xmlChar *publicId,
620*7c568831SAndroid Build Coastguard Worker 				const xmlChar *systemId,
621*7c568831SAndroid Build Coastguard Worker 				const xmlChar *notationName);
622*7c568831SAndroid Build Coastguard Worker /**
623*7c568831SAndroid Build Coastguard Worker  * setDocumentLocatorSAXFunc:
624*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
625*7c568831SAndroid Build Coastguard Worker  * @loc: A SAX Locator
626*7c568831SAndroid Build Coastguard Worker  *
627*7c568831SAndroid Build Coastguard Worker  * Receive the document locator at startup, actually xmlDefaultSAXLocator.
628*7c568831SAndroid Build Coastguard Worker  * Everything is available on the context, so this is useless in our case.
629*7c568831SAndroid Build Coastguard Worker  */
630*7c568831SAndroid Build Coastguard Worker typedef void (*setDocumentLocatorSAXFunc) (void *ctx,
631*7c568831SAndroid Build Coastguard Worker 				xmlSAXLocatorPtr loc);
632*7c568831SAndroid Build Coastguard Worker /**
633*7c568831SAndroid Build Coastguard Worker  * startDocumentSAXFunc:
634*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
635*7c568831SAndroid Build Coastguard Worker  *
636*7c568831SAndroid Build Coastguard Worker  * Called when the document start being processed.
637*7c568831SAndroid Build Coastguard Worker  */
638*7c568831SAndroid Build Coastguard Worker typedef void (*startDocumentSAXFunc) (void *ctx);
639*7c568831SAndroid Build Coastguard Worker /**
640*7c568831SAndroid Build Coastguard Worker  * endDocumentSAXFunc:
641*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
642*7c568831SAndroid Build Coastguard Worker  *
643*7c568831SAndroid Build Coastguard Worker  * Called when the document end has been detected.
644*7c568831SAndroid Build Coastguard Worker  */
645*7c568831SAndroid Build Coastguard Worker typedef void (*endDocumentSAXFunc) (void *ctx);
646*7c568831SAndroid Build Coastguard Worker /**
647*7c568831SAndroid Build Coastguard Worker  * startElementSAXFunc:
648*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
649*7c568831SAndroid Build Coastguard Worker  * @name:  The element name, including namespace prefix
650*7c568831SAndroid Build Coastguard Worker  * @atts:  An array of name/value attributes pairs, NULL terminated
651*7c568831SAndroid Build Coastguard Worker  *
652*7c568831SAndroid Build Coastguard Worker  * Called when an opening tag has been processed.
653*7c568831SAndroid Build Coastguard Worker  */
654*7c568831SAndroid Build Coastguard Worker typedef void (*startElementSAXFunc) (void *ctx,
655*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name,
656*7c568831SAndroid Build Coastguard Worker 				const xmlChar **atts);
657*7c568831SAndroid Build Coastguard Worker /**
658*7c568831SAndroid Build Coastguard Worker  * endElementSAXFunc:
659*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
660*7c568831SAndroid Build Coastguard Worker  * @name:  The element name
661*7c568831SAndroid Build Coastguard Worker  *
662*7c568831SAndroid Build Coastguard Worker  * Called when the end of an element has been detected.
663*7c568831SAndroid Build Coastguard Worker  */
664*7c568831SAndroid Build Coastguard Worker typedef void (*endElementSAXFunc) (void *ctx,
665*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name);
666*7c568831SAndroid Build Coastguard Worker /**
667*7c568831SAndroid Build Coastguard Worker  * attributeSAXFunc:
668*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
669*7c568831SAndroid Build Coastguard Worker  * @name:  The attribute name, including namespace prefix
670*7c568831SAndroid Build Coastguard Worker  * @value:  The attribute value
671*7c568831SAndroid Build Coastguard Worker  *
672*7c568831SAndroid Build Coastguard Worker  * Handle an attribute that has been read by the parser.
673*7c568831SAndroid Build Coastguard Worker  * The default handling is to convert the attribute into an
674*7c568831SAndroid Build Coastguard Worker  * DOM subtree and past it in a new xmlAttr element added to
675*7c568831SAndroid Build Coastguard Worker  * the element.
676*7c568831SAndroid Build Coastguard Worker  */
677*7c568831SAndroid Build Coastguard Worker typedef void (*attributeSAXFunc) (void *ctx,
678*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name,
679*7c568831SAndroid Build Coastguard Worker 				const xmlChar *value);
680*7c568831SAndroid Build Coastguard Worker /**
681*7c568831SAndroid Build Coastguard Worker  * referenceSAXFunc:
682*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
683*7c568831SAndroid Build Coastguard Worker  * @name:  The entity name
684*7c568831SAndroid Build Coastguard Worker  *
685*7c568831SAndroid Build Coastguard Worker  * Called when an entity reference is detected.
686*7c568831SAndroid Build Coastguard Worker  */
687*7c568831SAndroid Build Coastguard Worker typedef void (*referenceSAXFunc) (void *ctx,
688*7c568831SAndroid Build Coastguard Worker 				const xmlChar *name);
689*7c568831SAndroid Build Coastguard Worker /**
690*7c568831SAndroid Build Coastguard Worker  * charactersSAXFunc:
691*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
692*7c568831SAndroid Build Coastguard Worker  * @ch:  a xmlChar string
693*7c568831SAndroid Build Coastguard Worker  * @len: the number of xmlChar
694*7c568831SAndroid Build Coastguard Worker  *
695*7c568831SAndroid Build Coastguard Worker  * Receiving some chars from the parser.
696*7c568831SAndroid Build Coastguard Worker  */
697*7c568831SAndroid Build Coastguard Worker typedef void (*charactersSAXFunc) (void *ctx,
698*7c568831SAndroid Build Coastguard Worker 				const xmlChar *ch,
699*7c568831SAndroid Build Coastguard Worker 				int len);
700*7c568831SAndroid Build Coastguard Worker /**
701*7c568831SAndroid Build Coastguard Worker  * ignorableWhitespaceSAXFunc:
702*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
703*7c568831SAndroid Build Coastguard Worker  * @ch:  a xmlChar string
704*7c568831SAndroid Build Coastguard Worker  * @len: the number of xmlChar
705*7c568831SAndroid Build Coastguard Worker  *
706*7c568831SAndroid Build Coastguard Worker  * Receiving some ignorable whitespaces from the parser.
707*7c568831SAndroid Build Coastguard Worker  * UNUSED: by default the DOM building will use characters.
708*7c568831SAndroid Build Coastguard Worker  */
709*7c568831SAndroid Build Coastguard Worker typedef void (*ignorableWhitespaceSAXFunc) (void *ctx,
710*7c568831SAndroid Build Coastguard Worker 				const xmlChar *ch,
711*7c568831SAndroid Build Coastguard Worker 				int len);
712*7c568831SAndroid Build Coastguard Worker /**
713*7c568831SAndroid Build Coastguard Worker  * processingInstructionSAXFunc:
714*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
715*7c568831SAndroid Build Coastguard Worker  * @target:  the target name
716*7c568831SAndroid Build Coastguard Worker  * @data: the PI data's
717*7c568831SAndroid Build Coastguard Worker  *
718*7c568831SAndroid Build Coastguard Worker  * A processing instruction has been parsed.
719*7c568831SAndroid Build Coastguard Worker  */
720*7c568831SAndroid Build Coastguard Worker typedef void (*processingInstructionSAXFunc) (void *ctx,
721*7c568831SAndroid Build Coastguard Worker 				const xmlChar *target,
722*7c568831SAndroid Build Coastguard Worker 				const xmlChar *data);
723*7c568831SAndroid Build Coastguard Worker /**
724*7c568831SAndroid Build Coastguard Worker  * commentSAXFunc:
725*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
726*7c568831SAndroid Build Coastguard Worker  * @value:  the comment content
727*7c568831SAndroid Build Coastguard Worker  *
728*7c568831SAndroid Build Coastguard Worker  * A comment has been parsed.
729*7c568831SAndroid Build Coastguard Worker  */
730*7c568831SAndroid Build Coastguard Worker typedef void (*commentSAXFunc) (void *ctx,
731*7c568831SAndroid Build Coastguard Worker 				const xmlChar *value);
732*7c568831SAndroid Build Coastguard Worker /**
733*7c568831SAndroid Build Coastguard Worker  * cdataBlockSAXFunc:
734*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
735*7c568831SAndroid Build Coastguard Worker  * @value:  The pcdata content
736*7c568831SAndroid Build Coastguard Worker  * @len:  the block length
737*7c568831SAndroid Build Coastguard Worker  *
738*7c568831SAndroid Build Coastguard Worker  * Called when a pcdata block has been parsed.
739*7c568831SAndroid Build Coastguard Worker  */
740*7c568831SAndroid Build Coastguard Worker typedef void (*cdataBlockSAXFunc) (
741*7c568831SAndroid Build Coastguard Worker 	                        void *ctx,
742*7c568831SAndroid Build Coastguard Worker 				const xmlChar *value,
743*7c568831SAndroid Build Coastguard Worker 				int len);
744*7c568831SAndroid Build Coastguard Worker /**
745*7c568831SAndroid Build Coastguard Worker  * warningSAXFunc:
746*7c568831SAndroid Build Coastguard Worker  * @ctx:  an XML parser context
747*7c568831SAndroid Build Coastguard Worker  * @msg:  the message to display/transmit
748*7c568831SAndroid Build Coastguard Worker  * @...:  extra parameters for the message display
749*7c568831SAndroid Build Coastguard Worker  *
750*7c568831SAndroid Build Coastguard Worker  * Display and format a warning messages, callback.
751*7c568831SAndroid Build Coastguard Worker  */
752*7c568831SAndroid Build Coastguard Worker typedef void (*warningSAXFunc) (void *ctx,
753*7c568831SAndroid Build Coastguard Worker 				const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
754*7c568831SAndroid Build Coastguard Worker /**
755*7c568831SAndroid Build Coastguard Worker  * errorSAXFunc:
756*7c568831SAndroid Build Coastguard Worker  * @ctx:  an XML parser context
757*7c568831SAndroid Build Coastguard Worker  * @msg:  the message to display/transmit
758*7c568831SAndroid Build Coastguard Worker  * @...:  extra parameters for the message display
759*7c568831SAndroid Build Coastguard Worker  *
760*7c568831SAndroid Build Coastguard Worker  * Display and format an error messages, callback.
761*7c568831SAndroid Build Coastguard Worker  */
762*7c568831SAndroid Build Coastguard Worker typedef void (*errorSAXFunc) (void *ctx,
763*7c568831SAndroid Build Coastguard Worker 				const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
764*7c568831SAndroid Build Coastguard Worker /**
765*7c568831SAndroid Build Coastguard Worker  * fatalErrorSAXFunc:
766*7c568831SAndroid Build Coastguard Worker  * @ctx:  an XML parser context
767*7c568831SAndroid Build Coastguard Worker  * @msg:  the message to display/transmit
768*7c568831SAndroid Build Coastguard Worker  * @...:  extra parameters for the message display
769*7c568831SAndroid Build Coastguard Worker  *
770*7c568831SAndroid Build Coastguard Worker  * Display and format fatal error messages, callback.
771*7c568831SAndroid Build Coastguard Worker  * Note: so far fatalError() SAX callbacks are not used, error()
772*7c568831SAndroid Build Coastguard Worker  *       get all the callbacks for errors.
773*7c568831SAndroid Build Coastguard Worker  */
774*7c568831SAndroid Build Coastguard Worker typedef void (*fatalErrorSAXFunc) (void *ctx,
775*7c568831SAndroid Build Coastguard Worker 				const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
776*7c568831SAndroid Build Coastguard Worker /**
777*7c568831SAndroid Build Coastguard Worker  * isStandaloneSAXFunc:
778*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
779*7c568831SAndroid Build Coastguard Worker  *
780*7c568831SAndroid Build Coastguard Worker  * Is this document tagged standalone?
781*7c568831SAndroid Build Coastguard Worker  *
782*7c568831SAndroid Build Coastguard Worker  * Returns 1 if true
783*7c568831SAndroid Build Coastguard Worker  */
784*7c568831SAndroid Build Coastguard Worker typedef int (*isStandaloneSAXFunc) (void *ctx);
785*7c568831SAndroid Build Coastguard Worker /**
786*7c568831SAndroid Build Coastguard Worker  * hasInternalSubsetSAXFunc:
787*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
788*7c568831SAndroid Build Coastguard Worker  *
789*7c568831SAndroid Build Coastguard Worker  * Does this document has an internal subset.
790*7c568831SAndroid Build Coastguard Worker  *
791*7c568831SAndroid Build Coastguard Worker  * Returns 1 if true
792*7c568831SAndroid Build Coastguard Worker  */
793*7c568831SAndroid Build Coastguard Worker typedef int (*hasInternalSubsetSAXFunc) (void *ctx);
794*7c568831SAndroid Build Coastguard Worker 
795*7c568831SAndroid Build Coastguard Worker /**
796*7c568831SAndroid Build Coastguard Worker  * hasExternalSubsetSAXFunc:
797*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
798*7c568831SAndroid Build Coastguard Worker  *
799*7c568831SAndroid Build Coastguard Worker  * Does this document has an external subset?
800*7c568831SAndroid Build Coastguard Worker  *
801*7c568831SAndroid Build Coastguard Worker  * Returns 1 if true
802*7c568831SAndroid Build Coastguard Worker  */
803*7c568831SAndroid Build Coastguard Worker typedef int (*hasExternalSubsetSAXFunc) (void *ctx);
804*7c568831SAndroid Build Coastguard Worker 
805*7c568831SAndroid Build Coastguard Worker /************************************************************************
806*7c568831SAndroid Build Coastguard Worker  *									*
807*7c568831SAndroid Build Coastguard Worker  *			The SAX version 2 API extensions		*
808*7c568831SAndroid Build Coastguard Worker  *									*
809*7c568831SAndroid Build Coastguard Worker  ************************************************************************/
810*7c568831SAndroid Build Coastguard Worker /**
811*7c568831SAndroid Build Coastguard Worker  * XML_SAX2_MAGIC:
812*7c568831SAndroid Build Coastguard Worker  *
813*7c568831SAndroid Build Coastguard Worker  * Special constant found in SAX2 blocks initialized fields
814*7c568831SAndroid Build Coastguard Worker  */
815*7c568831SAndroid Build Coastguard Worker #define XML_SAX2_MAGIC 0xDEEDBEAF
816*7c568831SAndroid Build Coastguard Worker 
817*7c568831SAndroid Build Coastguard Worker /**
818*7c568831SAndroid Build Coastguard Worker  * startElementNsSAX2Func:
819*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
820*7c568831SAndroid Build Coastguard Worker  * @localname:  the local name of the element
821*7c568831SAndroid Build Coastguard Worker  * @prefix:  the element namespace prefix if available
822*7c568831SAndroid Build Coastguard Worker  * @URI:  the element namespace name if available
823*7c568831SAndroid Build Coastguard Worker  * @nb_namespaces:  number of namespace definitions on that node
824*7c568831SAndroid Build Coastguard Worker  * @namespaces:  pointer to the array of prefix/URI pairs namespace definitions
825*7c568831SAndroid Build Coastguard Worker  * @nb_attributes:  the number of attributes on that node
826*7c568831SAndroid Build Coastguard Worker  * @nb_defaulted:  the number of defaulted attributes. The defaulted
827*7c568831SAndroid Build Coastguard Worker  *                  ones are at the end of the array
828*7c568831SAndroid Build Coastguard Worker  * @attributes:  pointer to the array of (localname/prefix/URI/value/end)
829*7c568831SAndroid Build Coastguard Worker  *               attribute values.
830*7c568831SAndroid Build Coastguard Worker  *
831*7c568831SAndroid Build Coastguard Worker  * SAX2 callback when an element start has been detected by the parser.
832*7c568831SAndroid Build Coastguard Worker  * It provides the namespace information for the element, as well as
833*7c568831SAndroid Build Coastguard Worker  * the new namespace declarations on the element.
834*7c568831SAndroid Build Coastguard Worker  */
835*7c568831SAndroid Build Coastguard Worker 
836*7c568831SAndroid Build Coastguard Worker typedef void (*startElementNsSAX2Func) (void *ctx,
837*7c568831SAndroid Build Coastguard Worker 					const xmlChar *localname,
838*7c568831SAndroid Build Coastguard Worker 					const xmlChar *prefix,
839*7c568831SAndroid Build Coastguard Worker 					const xmlChar *URI,
840*7c568831SAndroid Build Coastguard Worker 					int nb_namespaces,
841*7c568831SAndroid Build Coastguard Worker 					const xmlChar **namespaces,
842*7c568831SAndroid Build Coastguard Worker 					int nb_attributes,
843*7c568831SAndroid Build Coastguard Worker 					int nb_defaulted,
844*7c568831SAndroid Build Coastguard Worker 					const xmlChar **attributes);
845*7c568831SAndroid Build Coastguard Worker 
846*7c568831SAndroid Build Coastguard Worker /**
847*7c568831SAndroid Build Coastguard Worker  * endElementNsSAX2Func:
848*7c568831SAndroid Build Coastguard Worker  * @ctx:  the user data (XML parser context)
849*7c568831SAndroid Build Coastguard Worker  * @localname:  the local name of the element
850*7c568831SAndroid Build Coastguard Worker  * @prefix:  the element namespace prefix if available
851*7c568831SAndroid Build Coastguard Worker  * @URI:  the element namespace name if available
852*7c568831SAndroid Build Coastguard Worker  *
853*7c568831SAndroid Build Coastguard Worker  * SAX2 callback when an element end has been detected by the parser.
854*7c568831SAndroid Build Coastguard Worker  * It provides the namespace information for the element.
855*7c568831SAndroid Build Coastguard Worker  */
856*7c568831SAndroid Build Coastguard Worker 
857*7c568831SAndroid Build Coastguard Worker typedef void (*endElementNsSAX2Func)   (void *ctx,
858*7c568831SAndroid Build Coastguard Worker 					const xmlChar *localname,
859*7c568831SAndroid Build Coastguard Worker 					const xmlChar *prefix,
860*7c568831SAndroid Build Coastguard Worker 					const xmlChar *URI);
861*7c568831SAndroid Build Coastguard Worker 
862*7c568831SAndroid Build Coastguard Worker 
863*7c568831SAndroid Build Coastguard Worker struct _xmlSAXHandler {
864*7c568831SAndroid Build Coastguard Worker     internalSubsetSAXFunc internalSubset;
865*7c568831SAndroid Build Coastguard Worker     isStandaloneSAXFunc isStandalone;
866*7c568831SAndroid Build Coastguard Worker     hasInternalSubsetSAXFunc hasInternalSubset;
867*7c568831SAndroid Build Coastguard Worker     hasExternalSubsetSAXFunc hasExternalSubset;
868*7c568831SAndroid Build Coastguard Worker     resolveEntitySAXFunc resolveEntity;
869*7c568831SAndroid Build Coastguard Worker     getEntitySAXFunc getEntity;
870*7c568831SAndroid Build Coastguard Worker     entityDeclSAXFunc entityDecl;
871*7c568831SAndroid Build Coastguard Worker     notationDeclSAXFunc notationDecl;
872*7c568831SAndroid Build Coastguard Worker     attributeDeclSAXFunc attributeDecl;
873*7c568831SAndroid Build Coastguard Worker     elementDeclSAXFunc elementDecl;
874*7c568831SAndroid Build Coastguard Worker     unparsedEntityDeclSAXFunc unparsedEntityDecl;
875*7c568831SAndroid Build Coastguard Worker     setDocumentLocatorSAXFunc setDocumentLocator;
876*7c568831SAndroid Build Coastguard Worker     startDocumentSAXFunc startDocument;
877*7c568831SAndroid Build Coastguard Worker     endDocumentSAXFunc endDocument;
878*7c568831SAndroid Build Coastguard Worker     /*
879*7c568831SAndroid Build Coastguard Worker      * `startElement` and `endElement` are only used by the legacy SAX1
880*7c568831SAndroid Build Coastguard Worker      * interface and should not be used in new software. If you really
881*7c568831SAndroid Build Coastguard Worker      * have to enable SAX1, the preferred way is set the `initialized`
882*7c568831SAndroid Build Coastguard Worker      * member to 1 instead of XML_SAX2_MAGIC.
883*7c568831SAndroid Build Coastguard Worker      *
884*7c568831SAndroid Build Coastguard Worker      * For backward compatibility, it's also possible to set the
885*7c568831SAndroid Build Coastguard Worker      * `startElementNs` and `endElementNs` handlers to NULL.
886*7c568831SAndroid Build Coastguard Worker      *
887*7c568831SAndroid Build Coastguard Worker      * You can also set the XML_PARSE_SAX1 parser option, but versions
888*7c568831SAndroid Build Coastguard Worker      * older than 2.12.0 will probably crash if this option is provided
889*7c568831SAndroid Build Coastguard Worker      * together with custom SAX callbacks.
890*7c568831SAndroid Build Coastguard Worker      */
891*7c568831SAndroid Build Coastguard Worker     startElementSAXFunc startElement;
892*7c568831SAndroid Build Coastguard Worker     endElementSAXFunc endElement;
893*7c568831SAndroid Build Coastguard Worker     referenceSAXFunc reference;
894*7c568831SAndroid Build Coastguard Worker     charactersSAXFunc characters;
895*7c568831SAndroid Build Coastguard Worker     ignorableWhitespaceSAXFunc ignorableWhitespace;
896*7c568831SAndroid Build Coastguard Worker     processingInstructionSAXFunc processingInstruction;
897*7c568831SAndroid Build Coastguard Worker     commentSAXFunc comment;
898*7c568831SAndroid Build Coastguard Worker     warningSAXFunc warning;
899*7c568831SAndroid Build Coastguard Worker     errorSAXFunc error;
900*7c568831SAndroid Build Coastguard Worker     fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
901*7c568831SAndroid Build Coastguard Worker     getParameterEntitySAXFunc getParameterEntity;
902*7c568831SAndroid Build Coastguard Worker     cdataBlockSAXFunc cdataBlock;
903*7c568831SAndroid Build Coastguard Worker     externalSubsetSAXFunc externalSubset;
904*7c568831SAndroid Build Coastguard Worker     /*
905*7c568831SAndroid Build Coastguard Worker      * `initialized` should always be set to XML_SAX2_MAGIC to enable the
906*7c568831SAndroid Build Coastguard Worker      * modern SAX2 interface.
907*7c568831SAndroid Build Coastguard Worker      */
908*7c568831SAndroid Build Coastguard Worker     unsigned int initialized;
909*7c568831SAndroid Build Coastguard Worker     /*
910*7c568831SAndroid Build Coastguard Worker      * The following members are only used by the SAX2 interface.
911*7c568831SAndroid Build Coastguard Worker      */
912*7c568831SAndroid Build Coastguard Worker     void *_private;
913*7c568831SAndroid Build Coastguard Worker     startElementNsSAX2Func startElementNs;
914*7c568831SAndroid Build Coastguard Worker     endElementNsSAX2Func endElementNs;
915*7c568831SAndroid Build Coastguard Worker     xmlStructuredErrorFunc serror;
916*7c568831SAndroid Build Coastguard Worker };
917*7c568831SAndroid Build Coastguard Worker 
918*7c568831SAndroid Build Coastguard Worker /*
919*7c568831SAndroid Build Coastguard Worker  * SAX Version 1
920*7c568831SAndroid Build Coastguard Worker  */
921*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSAXHandlerV1 xmlSAXHandlerV1;
922*7c568831SAndroid Build Coastguard Worker typedef xmlSAXHandlerV1 *xmlSAXHandlerV1Ptr;
923*7c568831SAndroid Build Coastguard Worker struct _xmlSAXHandlerV1 {
924*7c568831SAndroid Build Coastguard Worker     internalSubsetSAXFunc internalSubset;
925*7c568831SAndroid Build Coastguard Worker     isStandaloneSAXFunc isStandalone;
926*7c568831SAndroid Build Coastguard Worker     hasInternalSubsetSAXFunc hasInternalSubset;
927*7c568831SAndroid Build Coastguard Worker     hasExternalSubsetSAXFunc hasExternalSubset;
928*7c568831SAndroid Build Coastguard Worker     resolveEntitySAXFunc resolveEntity;
929*7c568831SAndroid Build Coastguard Worker     getEntitySAXFunc getEntity;
930*7c568831SAndroid Build Coastguard Worker     entityDeclSAXFunc entityDecl;
931*7c568831SAndroid Build Coastguard Worker     notationDeclSAXFunc notationDecl;
932*7c568831SAndroid Build Coastguard Worker     attributeDeclSAXFunc attributeDecl;
933*7c568831SAndroid Build Coastguard Worker     elementDeclSAXFunc elementDecl;
934*7c568831SAndroid Build Coastguard Worker     unparsedEntityDeclSAXFunc unparsedEntityDecl;
935*7c568831SAndroid Build Coastguard Worker     setDocumentLocatorSAXFunc setDocumentLocator;
936*7c568831SAndroid Build Coastguard Worker     startDocumentSAXFunc startDocument;
937*7c568831SAndroid Build Coastguard Worker     endDocumentSAXFunc endDocument;
938*7c568831SAndroid Build Coastguard Worker     startElementSAXFunc startElement;
939*7c568831SAndroid Build Coastguard Worker     endElementSAXFunc endElement;
940*7c568831SAndroid Build Coastguard Worker     referenceSAXFunc reference;
941*7c568831SAndroid Build Coastguard Worker     charactersSAXFunc characters;
942*7c568831SAndroid Build Coastguard Worker     ignorableWhitespaceSAXFunc ignorableWhitespace;
943*7c568831SAndroid Build Coastguard Worker     processingInstructionSAXFunc processingInstruction;
944*7c568831SAndroid Build Coastguard Worker     commentSAXFunc comment;
945*7c568831SAndroid Build Coastguard Worker     warningSAXFunc warning;
946*7c568831SAndroid Build Coastguard Worker     errorSAXFunc error;
947*7c568831SAndroid Build Coastguard Worker     fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
948*7c568831SAndroid Build Coastguard Worker     getParameterEntitySAXFunc getParameterEntity;
949*7c568831SAndroid Build Coastguard Worker     cdataBlockSAXFunc cdataBlock;
950*7c568831SAndroid Build Coastguard Worker     externalSubsetSAXFunc externalSubset;
951*7c568831SAndroid Build Coastguard Worker     unsigned int initialized;
952*7c568831SAndroid Build Coastguard Worker };
953*7c568831SAndroid Build Coastguard Worker 
954*7c568831SAndroid Build Coastguard Worker 
955*7c568831SAndroid Build Coastguard Worker /**
956*7c568831SAndroid Build Coastguard Worker  * xmlExternalEntityLoader:
957*7c568831SAndroid Build Coastguard Worker  * @URL: The System ID of the resource requested
958*7c568831SAndroid Build Coastguard Worker  * @ID: The Public ID of the resource requested
959*7c568831SAndroid Build Coastguard Worker  * @context: the XML parser context
960*7c568831SAndroid Build Coastguard Worker  *
961*7c568831SAndroid Build Coastguard Worker  * External entity loaders types.
962*7c568831SAndroid Build Coastguard Worker  *
963*7c568831SAndroid Build Coastguard Worker  * Returns the entity input parser.
964*7c568831SAndroid Build Coastguard Worker  */
965*7c568831SAndroid Build Coastguard Worker typedef xmlParserInputPtr (*xmlExternalEntityLoader) (const char *URL,
966*7c568831SAndroid Build Coastguard Worker 					 const char *ID,
967*7c568831SAndroid Build Coastguard Worker 					 xmlParserCtxtPtr context);
968*7c568831SAndroid Build Coastguard Worker 
969*7c568831SAndroid Build Coastguard Worker /*
970*7c568831SAndroid Build Coastguard Worker  * Variables
971*7c568831SAndroid Build Coastguard Worker  */
972*7c568831SAndroid Build Coastguard Worker 
973*7c568831SAndroid Build Coastguard Worker XMLPUBVAR const char *const xmlParserVersion;
974*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
975*7c568831SAndroid Build Coastguard Worker XMLPUBVAR const int oldXMLWDcompatibility;
976*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
977*7c568831SAndroid Build Coastguard Worker XMLPUBVAR const int xmlParserDebugEntities;
978*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
979*7c568831SAndroid Build Coastguard Worker XMLPUBVAR const xmlSAXLocator xmlDefaultSAXLocator;
980*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SAX1_ENABLED
981*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
982*7c568831SAndroid Build Coastguard Worker XMLPUBVAR const xmlSAXHandlerV1 xmlDefaultSAXHandler;
983*7c568831SAndroid Build Coastguard Worker #endif
984*7c568831SAndroid Build Coastguard Worker 
985*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_THREAD_ENABLED
986*7c568831SAndroid Build Coastguard Worker /* backward compatibility */
987*7c568831SAndroid Build Coastguard Worker XMLPUBFUN const char *const *__xmlParserVersion(void);
988*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
989*7c568831SAndroid Build Coastguard Worker XMLPUBFUN const int *__oldXMLWDcompatibility(void);
990*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
991*7c568831SAndroid Build Coastguard Worker XMLPUBFUN const int *__xmlParserDebugEntities(void);
992*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
993*7c568831SAndroid Build Coastguard Worker XMLPUBFUN const xmlSAXLocator *__xmlDefaultSAXLocator(void);
994*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SAX1_ENABLED
995*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
996*7c568831SAndroid Build Coastguard Worker XMLPUBFUN const xmlSAXHandlerV1 *__xmlDefaultSAXHandler(void);
997*7c568831SAndroid Build Coastguard Worker #endif
998*7c568831SAndroid Build Coastguard Worker #endif
999*7c568831SAndroid Build Coastguard Worker 
1000*7c568831SAndroid Build Coastguard Worker /** DOC_DISABLE */
1001*7c568831SAndroid Build Coastguard Worker #define XML_GLOBALS_PARSER_CORE \
1002*7c568831SAndroid Build Coastguard Worker   XML_OP(xmlDoValidityCheckingDefaultValue, int, XML_DEPRECATED) \
1003*7c568831SAndroid Build Coastguard Worker   XML_OP(xmlGetWarningsDefaultValue, int, XML_DEPRECATED) \
1004*7c568831SAndroid Build Coastguard Worker   XML_OP(xmlKeepBlanksDefaultValue, int, XML_DEPRECATED) \
1005*7c568831SAndroid Build Coastguard Worker   XML_OP(xmlLineNumbersDefaultValue, int, XML_DEPRECATED) \
1006*7c568831SAndroid Build Coastguard Worker   XML_OP(xmlLoadExtDtdDefaultValue, int, XML_DEPRECATED) \
1007*7c568831SAndroid Build Coastguard Worker   XML_OP(xmlPedanticParserDefaultValue, int, XML_DEPRECATED) \
1008*7c568831SAndroid Build Coastguard Worker   XML_OP(xmlSubstituteEntitiesDefaultValue, int, XML_DEPRECATED)
1009*7c568831SAndroid Build Coastguard Worker 
1010*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_OUTPUT_ENABLED
1011*7c568831SAndroid Build Coastguard Worker   #define XML_GLOBALS_PARSER_OUTPUT \
1012*7c568831SAndroid Build Coastguard Worker     XML_OP(xmlIndentTreeOutput, int, XML_NO_ATTR) \
1013*7c568831SAndroid Build Coastguard Worker     XML_OP(xmlTreeIndentString, const char *, XML_NO_ATTR) \
1014*7c568831SAndroid Build Coastguard Worker     XML_OP(xmlSaveNoEmptyTags, int, XML_NO_ATTR)
1015*7c568831SAndroid Build Coastguard Worker #else
1016*7c568831SAndroid Build Coastguard Worker   #define XML_GLOBALS_PARSER_OUTPUT
1017*7c568831SAndroid Build Coastguard Worker #endif
1018*7c568831SAndroid Build Coastguard Worker 
1019*7c568831SAndroid Build Coastguard Worker #define XML_GLOBALS_PARSER \
1020*7c568831SAndroid Build Coastguard Worker   XML_GLOBALS_PARSER_CORE \
1021*7c568831SAndroid Build Coastguard Worker   XML_GLOBALS_PARSER_OUTPUT
1022*7c568831SAndroid Build Coastguard Worker 
1023*7c568831SAndroid Build Coastguard Worker #define XML_OP XML_DECLARE_GLOBAL
1024*7c568831SAndroid Build Coastguard Worker XML_GLOBALS_PARSER
1025*7c568831SAndroid Build Coastguard Worker #undef XML_OP
1026*7c568831SAndroid Build Coastguard Worker 
1027*7c568831SAndroid Build Coastguard Worker #if defined(LIBXML_THREAD_ENABLED) && !defined(XML_GLOBALS_NO_REDEFINITION)
1028*7c568831SAndroid Build Coastguard Worker   #define xmlDoValidityCheckingDefaultValue \
1029*7c568831SAndroid Build Coastguard Worker     XML_GLOBAL_MACRO(xmlDoValidityCheckingDefaultValue)
1030*7c568831SAndroid Build Coastguard Worker   #define xmlGetWarningsDefaultValue \
1031*7c568831SAndroid Build Coastguard Worker     XML_GLOBAL_MACRO(xmlGetWarningsDefaultValue)
1032*7c568831SAndroid Build Coastguard Worker   #define xmlKeepBlanksDefaultValue XML_GLOBAL_MACRO(xmlKeepBlanksDefaultValue)
1033*7c568831SAndroid Build Coastguard Worker   #define xmlLineNumbersDefaultValue \
1034*7c568831SAndroid Build Coastguard Worker     XML_GLOBAL_MACRO(xmlLineNumbersDefaultValue)
1035*7c568831SAndroid Build Coastguard Worker   #define xmlLoadExtDtdDefaultValue XML_GLOBAL_MACRO(xmlLoadExtDtdDefaultValue)
1036*7c568831SAndroid Build Coastguard Worker   #define xmlPedanticParserDefaultValue \
1037*7c568831SAndroid Build Coastguard Worker     XML_GLOBAL_MACRO(xmlPedanticParserDefaultValue)
1038*7c568831SAndroid Build Coastguard Worker   #define xmlSubstituteEntitiesDefaultValue \
1039*7c568831SAndroid Build Coastguard Worker     XML_GLOBAL_MACRO(xmlSubstituteEntitiesDefaultValue)
1040*7c568831SAndroid Build Coastguard Worker   #ifdef LIBXML_OUTPUT_ENABLED
1041*7c568831SAndroid Build Coastguard Worker     #define xmlIndentTreeOutput XML_GLOBAL_MACRO(xmlIndentTreeOutput)
1042*7c568831SAndroid Build Coastguard Worker     #define xmlTreeIndentString XML_GLOBAL_MACRO(xmlTreeIndentString)
1043*7c568831SAndroid Build Coastguard Worker     #define xmlSaveNoEmptyTags XML_GLOBAL_MACRO(xmlSaveNoEmptyTags)
1044*7c568831SAndroid Build Coastguard Worker   #endif
1045*7c568831SAndroid Build Coastguard Worker #endif
1046*7c568831SAndroid Build Coastguard Worker /** DOC_ENABLE */
1047*7c568831SAndroid Build Coastguard Worker 
1048*7c568831SAndroid Build Coastguard Worker /*
1049*7c568831SAndroid Build Coastguard Worker  * Init/Cleanup
1050*7c568831SAndroid Build Coastguard Worker  */
1051*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1052*7c568831SAndroid Build Coastguard Worker 		xmlInitParser		(void);
1053*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1054*7c568831SAndroid Build Coastguard Worker 		xmlCleanupParser	(void);
1055*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1056*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1057*7c568831SAndroid Build Coastguard Worker 		xmlInitGlobals		(void);
1058*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1059*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1060*7c568831SAndroid Build Coastguard Worker 		xmlCleanupGlobals	(void);
1061*7c568831SAndroid Build Coastguard Worker 
1062*7c568831SAndroid Build Coastguard Worker /*
1063*7c568831SAndroid Build Coastguard Worker  * Input functions
1064*7c568831SAndroid Build Coastguard Worker  */
1065*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1066*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1067*7c568831SAndroid Build Coastguard Worker 		xmlParserInputRead	(xmlParserInputPtr in,
1068*7c568831SAndroid Build Coastguard Worker 					 int len);
1069*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1070*7c568831SAndroid Build Coastguard Worker 		xmlParserInputGrow	(xmlParserInputPtr in,
1071*7c568831SAndroid Build Coastguard Worker 					 int len);
1072*7c568831SAndroid Build Coastguard Worker 
1073*7c568831SAndroid Build Coastguard Worker /*
1074*7c568831SAndroid Build Coastguard Worker  * Basic parsing Interfaces
1075*7c568831SAndroid Build Coastguard Worker  */
1076*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SAX1_ENABLED
1077*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1078*7c568831SAndroid Build Coastguard Worker 		xmlParseDoc		(const xmlChar *cur);
1079*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1080*7c568831SAndroid Build Coastguard Worker 		xmlParseFile		(const char *filename);
1081*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1082*7c568831SAndroid Build Coastguard Worker 		xmlParseMemory		(const char *buffer,
1083*7c568831SAndroid Build Coastguard Worker 					 int size);
1084*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SAX1_ENABLED */
1085*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1086*7c568831SAndroid Build Coastguard Worker 		xmlSubstituteEntitiesDefault(int val);
1087*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1088*7c568831SAndroid Build Coastguard Worker                 xmlThrDefSubstituteEntitiesDefaultValue(int v);
1089*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1090*7c568831SAndroid Build Coastguard Worker 		xmlKeepBlanksDefault	(int val);
1091*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1092*7c568831SAndroid Build Coastguard Worker 		xmlThrDefKeepBlanksDefaultValue(int v);
1093*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1094*7c568831SAndroid Build Coastguard Worker 		xmlStopParser		(xmlParserCtxtPtr ctxt);
1095*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1096*7c568831SAndroid Build Coastguard Worker 		xmlPedanticParserDefault(int val);
1097*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1098*7c568831SAndroid Build Coastguard Worker                 xmlThrDefPedanticParserDefaultValue(int v);
1099*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1100*7c568831SAndroid Build Coastguard Worker 		xmlLineNumbersDefault	(int val);
1101*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1102*7c568831SAndroid Build Coastguard Worker                 xmlThrDefLineNumbersDefaultValue(int v);
1103*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1104*7c568831SAndroid Build Coastguard Worker                 xmlThrDefDoValidityCheckingDefaultValue(int v);
1105*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1106*7c568831SAndroid Build Coastguard Worker                 xmlThrDefGetWarningsDefaultValue(int v);
1107*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1108*7c568831SAndroid Build Coastguard Worker                 xmlThrDefLoadExtDtdDefaultValue(int v);
1109*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED XMLPUBFUN int
1110*7c568831SAndroid Build Coastguard Worker                 xmlThrDefParserDebugEntities(int v);
1111*7c568831SAndroid Build Coastguard Worker 
1112*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SAX1_ENABLED
1113*7c568831SAndroid Build Coastguard Worker /*
1114*7c568831SAndroid Build Coastguard Worker  * Recovery mode
1115*7c568831SAndroid Build Coastguard Worker  */
1116*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1117*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1118*7c568831SAndroid Build Coastguard Worker 		xmlRecoverDoc		(const xmlChar *cur);
1119*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1120*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1121*7c568831SAndroid Build Coastguard Worker 		xmlRecoverMemory	(const char *buffer,
1122*7c568831SAndroid Build Coastguard Worker 					 int size);
1123*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1124*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1125*7c568831SAndroid Build Coastguard Worker 		xmlRecoverFile		(const char *filename);
1126*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SAX1_ENABLED */
1127*7c568831SAndroid Build Coastguard Worker 
1128*7c568831SAndroid Build Coastguard Worker /*
1129*7c568831SAndroid Build Coastguard Worker  * Less common routines and SAX interfaces
1130*7c568831SAndroid Build Coastguard Worker  */
1131*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1132*7c568831SAndroid Build Coastguard Worker 		xmlParseDocument	(xmlParserCtxtPtr ctxt);
1133*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1134*7c568831SAndroid Build Coastguard Worker 		xmlParseExtParsedEnt	(xmlParserCtxtPtr ctxt);
1135*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SAX1_ENABLED
1136*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1137*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1138*7c568831SAndroid Build Coastguard Worker 		xmlSAXUserParseFile	(xmlSAXHandlerPtr sax,
1139*7c568831SAndroid Build Coastguard Worker 					 void *user_data,
1140*7c568831SAndroid Build Coastguard Worker 					 const char *filename);
1141*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1142*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1143*7c568831SAndroid Build Coastguard Worker 		xmlSAXUserParseMemory	(xmlSAXHandlerPtr sax,
1144*7c568831SAndroid Build Coastguard Worker 					 void *user_data,
1145*7c568831SAndroid Build Coastguard Worker 					 const char *buffer,
1146*7c568831SAndroid Build Coastguard Worker 					 int size);
1147*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1148*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1149*7c568831SAndroid Build Coastguard Worker 		xmlSAXParseDoc		(xmlSAXHandlerPtr sax,
1150*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *cur,
1151*7c568831SAndroid Build Coastguard Worker 					 int recovery);
1152*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1153*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1154*7c568831SAndroid Build Coastguard Worker 		xmlSAXParseMemory	(xmlSAXHandlerPtr sax,
1155*7c568831SAndroid Build Coastguard Worker 					 const char *buffer,
1156*7c568831SAndroid Build Coastguard Worker 					 int size,
1157*7c568831SAndroid Build Coastguard Worker 					 int recovery);
1158*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1159*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1160*7c568831SAndroid Build Coastguard Worker 		xmlSAXParseMemoryWithData (xmlSAXHandlerPtr sax,
1161*7c568831SAndroid Build Coastguard Worker 					 const char *buffer,
1162*7c568831SAndroid Build Coastguard Worker 					 int size,
1163*7c568831SAndroid Build Coastguard Worker 					 int recovery,
1164*7c568831SAndroid Build Coastguard Worker 					 void *data);
1165*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1166*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1167*7c568831SAndroid Build Coastguard Worker 		xmlSAXParseFile		(xmlSAXHandlerPtr sax,
1168*7c568831SAndroid Build Coastguard Worker 					 const char *filename,
1169*7c568831SAndroid Build Coastguard Worker 					 int recovery);
1170*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1171*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1172*7c568831SAndroid Build Coastguard Worker 		xmlSAXParseFileWithData	(xmlSAXHandlerPtr sax,
1173*7c568831SAndroid Build Coastguard Worker 					 const char *filename,
1174*7c568831SAndroid Build Coastguard Worker 					 int recovery,
1175*7c568831SAndroid Build Coastguard Worker 					 void *data);
1176*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1177*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1178*7c568831SAndroid Build Coastguard Worker 		xmlSAXParseEntity	(xmlSAXHandlerPtr sax,
1179*7c568831SAndroid Build Coastguard Worker 					 const char *filename);
1180*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1181*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1182*7c568831SAndroid Build Coastguard Worker 		xmlParseEntity		(const char *filename);
1183*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SAX1_ENABLED */
1184*7c568831SAndroid Build Coastguard Worker 
1185*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_VALID_ENABLED
1186*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1187*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDtdPtr
1188*7c568831SAndroid Build Coastguard Worker 		xmlSAXParseDTD		(xmlSAXHandlerPtr sax,
1189*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *ExternalID,
1190*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *SystemID);
1191*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDtdPtr
1192*7c568831SAndroid Build Coastguard Worker 		xmlParseDTD		(const xmlChar *ExternalID,
1193*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *SystemID);
1194*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDtdPtr
1195*7c568831SAndroid Build Coastguard Worker 		xmlIOParseDTD		(xmlSAXHandlerPtr sax,
1196*7c568831SAndroid Build Coastguard Worker 					 xmlParserInputBufferPtr input,
1197*7c568831SAndroid Build Coastguard Worker 					 xmlCharEncoding enc);
1198*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_VALID_ENABLE */
1199*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SAX1_ENABLED
1200*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1201*7c568831SAndroid Build Coastguard Worker 		xmlParseBalancedChunkMemory(xmlDocPtr doc,
1202*7c568831SAndroid Build Coastguard Worker 					 xmlSAXHandlerPtr sax,
1203*7c568831SAndroid Build Coastguard Worker 					 void *user_data,
1204*7c568831SAndroid Build Coastguard Worker 					 int depth,
1205*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *string,
1206*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr *lst);
1207*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SAX1_ENABLED */
1208*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserErrors
1209*7c568831SAndroid Build Coastguard Worker 		xmlParseInNodeContext	(xmlNodePtr node,
1210*7c568831SAndroid Build Coastguard Worker 					 const char *data,
1211*7c568831SAndroid Build Coastguard Worker 					 int datalen,
1212*7c568831SAndroid Build Coastguard Worker 					 int options,
1213*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr *lst);
1214*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SAX1_ENABLED
1215*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1216*7c568831SAndroid Build Coastguard Worker 		xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc,
1217*7c568831SAndroid Build Coastguard Worker                      xmlSAXHandlerPtr sax,
1218*7c568831SAndroid Build Coastguard Worker                      void *user_data,
1219*7c568831SAndroid Build Coastguard Worker                      int depth,
1220*7c568831SAndroid Build Coastguard Worker                      const xmlChar *string,
1221*7c568831SAndroid Build Coastguard Worker                      xmlNodePtr *lst,
1222*7c568831SAndroid Build Coastguard Worker                      int recover);
1223*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1224*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1225*7c568831SAndroid Build Coastguard Worker 		xmlParseExternalEntity	(xmlDocPtr doc,
1226*7c568831SAndroid Build Coastguard Worker 					 xmlSAXHandlerPtr sax,
1227*7c568831SAndroid Build Coastguard Worker 					 void *user_data,
1228*7c568831SAndroid Build Coastguard Worker 					 int depth,
1229*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *URL,
1230*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *ID,
1231*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr *lst);
1232*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SAX1_ENABLED */
1233*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1234*7c568831SAndroid Build Coastguard Worker 		xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx,
1235*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *URL,
1236*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *ID,
1237*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr *lst);
1238*7c568831SAndroid Build Coastguard Worker 
1239*7c568831SAndroid Build Coastguard Worker /*
1240*7c568831SAndroid Build Coastguard Worker  * Parser contexts handling.
1241*7c568831SAndroid Build Coastguard Worker  */
1242*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserCtxtPtr
1243*7c568831SAndroid Build Coastguard Worker 		xmlNewParserCtxt	(void);
1244*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserCtxtPtr
1245*7c568831SAndroid Build Coastguard Worker 		xmlNewSAXParserCtxt	(const xmlSAXHandler *sax,
1246*7c568831SAndroid Build Coastguard Worker 					 void *userData);
1247*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1248*7c568831SAndroid Build Coastguard Worker 		xmlInitParserCtxt	(xmlParserCtxtPtr ctxt);
1249*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1250*7c568831SAndroid Build Coastguard Worker 		xmlClearParserCtxt	(xmlParserCtxtPtr ctxt);
1251*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1252*7c568831SAndroid Build Coastguard Worker 		xmlFreeParserCtxt	(xmlParserCtxtPtr ctxt);
1253*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SAX1_ENABLED
1254*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1255*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1256*7c568831SAndroid Build Coastguard Worker 		xmlSetupParserForBuffer	(xmlParserCtxtPtr ctxt,
1257*7c568831SAndroid Build Coastguard Worker 					 const xmlChar* buffer,
1258*7c568831SAndroid Build Coastguard Worker 					 const char *filename);
1259*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SAX1_ENABLED */
1260*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserCtxtPtr
1261*7c568831SAndroid Build Coastguard Worker 		xmlCreateDocParserCtxt	(const xmlChar *cur);
1262*7c568831SAndroid Build Coastguard Worker 
1263*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_LEGACY_ENABLED
1264*7c568831SAndroid Build Coastguard Worker /** DOC_DISABLE */
1265*7c568831SAndroid Build Coastguard Worker /*
1266*7c568831SAndroid Build Coastguard Worker  * Reading/setting optional parsing features.
1267*7c568831SAndroid Build Coastguard Worker  */
1268*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1269*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1270*7c568831SAndroid Build Coastguard Worker 		xmlGetFeaturesList	(int *len,
1271*7c568831SAndroid Build Coastguard Worker 					 const char **result);
1272*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1273*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1274*7c568831SAndroid Build Coastguard Worker 		xmlGetFeature		(xmlParserCtxtPtr ctxt,
1275*7c568831SAndroid Build Coastguard Worker 					 const char *name,
1276*7c568831SAndroid Build Coastguard Worker 					 void *result);
1277*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1278*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1279*7c568831SAndroid Build Coastguard Worker 		xmlSetFeature		(xmlParserCtxtPtr ctxt,
1280*7c568831SAndroid Build Coastguard Worker 					 const char *name,
1281*7c568831SAndroid Build Coastguard Worker 					 void *value);
1282*7c568831SAndroid Build Coastguard Worker /** DOC_ENABLE */
1283*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_LEGACY_ENABLED */
1284*7c568831SAndroid Build Coastguard Worker 
1285*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_PUSH_ENABLED
1286*7c568831SAndroid Build Coastguard Worker /*
1287*7c568831SAndroid Build Coastguard Worker  * Interfaces for the Push mode.
1288*7c568831SAndroid Build Coastguard Worker  */
1289*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserCtxtPtr
1290*7c568831SAndroid Build Coastguard Worker 		xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
1291*7c568831SAndroid Build Coastguard Worker 					 void *user_data,
1292*7c568831SAndroid Build Coastguard Worker 					 const char *chunk,
1293*7c568831SAndroid Build Coastguard Worker 					 int size,
1294*7c568831SAndroid Build Coastguard Worker 					 const char *filename);
1295*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1296*7c568831SAndroid Build Coastguard Worker 		xmlParseChunk		(xmlParserCtxtPtr ctxt,
1297*7c568831SAndroid Build Coastguard Worker 					 const char *chunk,
1298*7c568831SAndroid Build Coastguard Worker 					 int size,
1299*7c568831SAndroid Build Coastguard Worker 					 int terminate);
1300*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_PUSH_ENABLED */
1301*7c568831SAndroid Build Coastguard Worker 
1302*7c568831SAndroid Build Coastguard Worker /*
1303*7c568831SAndroid Build Coastguard Worker  * Special I/O mode.
1304*7c568831SAndroid Build Coastguard Worker  */
1305*7c568831SAndroid Build Coastguard Worker 
1306*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserCtxtPtr
1307*7c568831SAndroid Build Coastguard Worker 		xmlCreateIOParserCtxt	(xmlSAXHandlerPtr sax,
1308*7c568831SAndroid Build Coastguard Worker 					 void *user_data,
1309*7c568831SAndroid Build Coastguard Worker 					 xmlInputReadCallback   ioread,
1310*7c568831SAndroid Build Coastguard Worker 					 xmlInputCloseCallback  ioclose,
1311*7c568831SAndroid Build Coastguard Worker 					 void *ioctx,
1312*7c568831SAndroid Build Coastguard Worker 					 xmlCharEncoding enc);
1313*7c568831SAndroid Build Coastguard Worker 
1314*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserInputPtr
1315*7c568831SAndroid Build Coastguard Worker 		xmlNewIOInputStream	(xmlParserCtxtPtr ctxt,
1316*7c568831SAndroid Build Coastguard Worker 					 xmlParserInputBufferPtr input,
1317*7c568831SAndroid Build Coastguard Worker 					 xmlCharEncoding enc);
1318*7c568831SAndroid Build Coastguard Worker 
1319*7c568831SAndroid Build Coastguard Worker /*
1320*7c568831SAndroid Build Coastguard Worker  * Node infos.
1321*7c568831SAndroid Build Coastguard Worker  */
1322*7c568831SAndroid Build Coastguard Worker XMLPUBFUN const xmlParserNodeInfo*
1323*7c568831SAndroid Build Coastguard Worker 		xmlParserFindNodeInfo	(xmlParserCtxtPtr ctxt,
1324*7c568831SAndroid Build Coastguard Worker 				         xmlNodePtr node);
1325*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1326*7c568831SAndroid Build Coastguard Worker 		xmlInitNodeInfoSeq	(xmlParserNodeInfoSeqPtr seq);
1327*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1328*7c568831SAndroid Build Coastguard Worker 		xmlClearNodeInfoSeq	(xmlParserNodeInfoSeqPtr seq);
1329*7c568831SAndroid Build Coastguard Worker XMLPUBFUN unsigned long
1330*7c568831SAndroid Build Coastguard Worker 		xmlParserFindNodeInfoIndex(xmlParserNodeInfoSeqPtr seq,
1331*7c568831SAndroid Build Coastguard Worker                                          xmlNodePtr node);
1332*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1333*7c568831SAndroid Build Coastguard Worker 		xmlParserAddNodeInfo	(xmlParserCtxtPtr ctxt,
1334*7c568831SAndroid Build Coastguard Worker 					 xmlParserNodeInfoPtr info);
1335*7c568831SAndroid Build Coastguard Worker 
1336*7c568831SAndroid Build Coastguard Worker /*
1337*7c568831SAndroid Build Coastguard Worker  * External entities handling actually implemented in xmlIO.
1338*7c568831SAndroid Build Coastguard Worker  */
1339*7c568831SAndroid Build Coastguard Worker 
1340*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1341*7c568831SAndroid Build Coastguard Worker 		xmlSetExternalEntityLoader(xmlExternalEntityLoader f);
1342*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlExternalEntityLoader
1343*7c568831SAndroid Build Coastguard Worker 		xmlGetExternalEntityLoader(void);
1344*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserInputPtr
1345*7c568831SAndroid Build Coastguard Worker 		xmlLoadExternalEntity	(const char *URL,
1346*7c568831SAndroid Build Coastguard Worker 					 const char *ID,
1347*7c568831SAndroid Build Coastguard Worker 					 xmlParserCtxtPtr ctxt);
1348*7c568831SAndroid Build Coastguard Worker 
1349*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
1350*7c568831SAndroid Build Coastguard Worker XMLPUBFUN long
1351*7c568831SAndroid Build Coastguard Worker 		xmlByteConsumed		(xmlParserCtxtPtr ctxt);
1352*7c568831SAndroid Build Coastguard Worker 
1353*7c568831SAndroid Build Coastguard Worker /*
1354*7c568831SAndroid Build Coastguard Worker  * New set of simpler/more flexible APIs
1355*7c568831SAndroid Build Coastguard Worker  */
1356*7c568831SAndroid Build Coastguard Worker /**
1357*7c568831SAndroid Build Coastguard Worker  * xmlParserOption:
1358*7c568831SAndroid Build Coastguard Worker  *
1359*7c568831SAndroid Build Coastguard Worker  * This is the set of XML parser options that can be passed down
1360*7c568831SAndroid Build Coastguard Worker  * to the xmlReadDoc() and similar calls.
1361*7c568831SAndroid Build Coastguard Worker  */
1362*7c568831SAndroid Build Coastguard Worker typedef enum {
1363*7c568831SAndroid Build Coastguard Worker     XML_PARSE_RECOVER	= 1<<0,	/* recover on errors */
1364*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NOENT	= 1<<1,	/* substitute entities */
1365*7c568831SAndroid Build Coastguard Worker     XML_PARSE_DTDLOAD	= 1<<2,	/* load the external subset */
1366*7c568831SAndroid Build Coastguard Worker     XML_PARSE_DTDATTR	= 1<<3,	/* default DTD attributes */
1367*7c568831SAndroid Build Coastguard Worker     XML_PARSE_DTDVALID	= 1<<4,	/* validate with the DTD */
1368*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NOERROR	= 1<<5,	/* suppress error reports */
1369*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NOWARNING	= 1<<6,	/* suppress warning reports */
1370*7c568831SAndroid Build Coastguard Worker     XML_PARSE_PEDANTIC	= 1<<7,	/* pedantic error reporting */
1371*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NOBLANKS	= 1<<8,	/* remove blank nodes */
1372*7c568831SAndroid Build Coastguard Worker     XML_PARSE_SAX1	= 1<<9,	/* use the SAX1 interface internally */
1373*7c568831SAndroid Build Coastguard Worker     XML_PARSE_XINCLUDE	= 1<<10,/* Implement XInclude substitution  */
1374*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NONET	= 1<<11,/* Forbid network access */
1375*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NODICT	= 1<<12,/* Do not reuse the context dictionary */
1376*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NSCLEAN	= 1<<13,/* remove redundant namespaces declarations */
1377*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NOCDATA	= 1<<14,/* merge CDATA as text nodes */
1378*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NOXINCNODE= 1<<15,/* do not generate XINCLUDE START/END nodes */
1379*7c568831SAndroid Build Coastguard Worker     XML_PARSE_COMPACT   = 1<<16,/* compact small text nodes; no modification of
1380*7c568831SAndroid Build Coastguard Worker                                    the tree allowed afterwards (will possibly
1381*7c568831SAndroid Build Coastguard Worker 				   crash if you try to modify the tree) */
1382*7c568831SAndroid Build Coastguard Worker     XML_PARSE_OLD10	= 1<<17,/* parse using XML-1.0 before update 5 */
1383*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NOBASEFIX = 1<<18,/* do not fixup XINCLUDE xml:base uris */
1384*7c568831SAndroid Build Coastguard Worker     XML_PARSE_HUGE      = 1<<19,/* relax any hardcoded limit from the parser */
1385*7c568831SAndroid Build Coastguard Worker     XML_PARSE_OLDSAX    = 1<<20,/* parse using SAX2 interface before 2.7.0 */
1386*7c568831SAndroid Build Coastguard Worker     XML_PARSE_IGNORE_ENC= 1<<21,/* ignore internal document encoding hint */
1387*7c568831SAndroid Build Coastguard Worker     XML_PARSE_BIG_LINES = 1<<22,/* Store big lines numbers in text PSVI field */
1388*7c568831SAndroid Build Coastguard Worker     /* since 2.13.0 */
1389*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NO_XXE    = 1<<23,/* disable loading of external content */
1390*7c568831SAndroid Build Coastguard Worker     /* since 2.14.0 */
1391*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NO_UNZIP       = 1<<24,/* disable compressed content */
1392*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NO_SYS_CATALOG = 1<<25,/* disable global system catalog */
1393*7c568831SAndroid Build Coastguard Worker     XML_PARSE_NO_CATALOG_PI  = 1<<26 /* ignore catalog PIs */
1394*7c568831SAndroid Build Coastguard Worker } xmlParserOption;
1395*7c568831SAndroid Build Coastguard Worker 
1396*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1397*7c568831SAndroid Build Coastguard Worker 		xmlCtxtReset		(xmlParserCtxtPtr ctxt);
1398*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1399*7c568831SAndroid Build Coastguard Worker 		xmlCtxtResetPush	(xmlParserCtxtPtr ctxt,
1400*7c568831SAndroid Build Coastguard Worker 					 const char *chunk,
1401*7c568831SAndroid Build Coastguard Worker 					 int size,
1402*7c568831SAndroid Build Coastguard Worker 					 const char *filename,
1403*7c568831SAndroid Build Coastguard Worker 					 const char *encoding);
1404*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1405*7c568831SAndroid Build Coastguard Worker 		xmlCtxtGetOptions	(xmlParserCtxtPtr ctxt);
1406*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1407*7c568831SAndroid Build Coastguard Worker 		xmlCtxtSetOptions	(xmlParserCtxtPtr ctxt,
1408*7c568831SAndroid Build Coastguard Worker 					 int options);
1409*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1410*7c568831SAndroid Build Coastguard Worker 		xmlCtxtUseOptions	(xmlParserCtxtPtr ctxt,
1411*7c568831SAndroid Build Coastguard Worker 					 int options);
1412*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void *
1413*7c568831SAndroid Build Coastguard Worker 		xmlCtxtGetPrivate	(xmlParserCtxtPtr ctxt);
1414*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1415*7c568831SAndroid Build Coastguard Worker 		xmlCtxtSetPrivate	(xmlParserCtxtPtr ctxt,
1416*7c568831SAndroid Build Coastguard Worker 					 void *priv);
1417*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void *
1418*7c568831SAndroid Build Coastguard Worker 		xmlCtxtGetCatalogs	(xmlParserCtxtPtr ctxt);
1419*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1420*7c568831SAndroid Build Coastguard Worker 		xmlCtxtSetCatalogs	(xmlParserCtxtPtr ctxt,
1421*7c568831SAndroid Build Coastguard Worker 					 void *catalogs);
1422*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDictPtr
1423*7c568831SAndroid Build Coastguard Worker 		xmlCtxtGetDict		(xmlParserCtxtPtr ctxt);
1424*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1425*7c568831SAndroid Build Coastguard Worker 		xmlCtxtSetDict		(xmlParserCtxtPtr ctxt,
1426*7c568831SAndroid Build Coastguard Worker 					 xmlDictPtr);
1427*7c568831SAndroid Build Coastguard Worker XMLPUBFUN const xmlChar *
1428*7c568831SAndroid Build Coastguard Worker 		xmlCtxtGetVersion	(xmlParserCtxtPtr ctxt);
1429*7c568831SAndroid Build Coastguard Worker XMLPUBFUN const xmlChar *
1430*7c568831SAndroid Build Coastguard Worker 		xmlCtxtGetDeclaredEncoding(xmlParserCtxtPtr ctxt);
1431*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1432*7c568831SAndroid Build Coastguard Worker 		xmlCtxtGetStandalone	(xmlParserCtxtPtr ctxt);
1433*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1434*7c568831SAndroid Build Coastguard Worker 		xmlCtxtGetStatus	(xmlParserCtxtPtr ctxt);
1435*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1436*7c568831SAndroid Build Coastguard Worker 		xmlCtxtSetErrorHandler	(xmlParserCtxtPtr ctxt,
1437*7c568831SAndroid Build Coastguard Worker 					 xmlStructuredErrorFunc handler,
1438*7c568831SAndroid Build Coastguard Worker 					 void *data);
1439*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1440*7c568831SAndroid Build Coastguard Worker 		xmlCtxtSetResourceLoader(xmlParserCtxtPtr ctxt,
1441*7c568831SAndroid Build Coastguard Worker 					 xmlResourceLoader loader,
1442*7c568831SAndroid Build Coastguard Worker 					 void *vctxt);
1443*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1444*7c568831SAndroid Build Coastguard Worker 		xmlCtxtSetCharEncConvImpl(xmlParserCtxtPtr ctxt,
1445*7c568831SAndroid Build Coastguard Worker 					 xmlCharEncConvImpl impl,
1446*7c568831SAndroid Build Coastguard Worker 					 void *vctxt);
1447*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
1448*7c568831SAndroid Build Coastguard Worker 		xmlCtxtSetMaxAmplification(xmlParserCtxtPtr ctxt,
1449*7c568831SAndroid Build Coastguard Worker 					 unsigned maxAmpl);
1450*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1451*7c568831SAndroid Build Coastguard Worker 		xmlReadDoc		(const xmlChar *cur,
1452*7c568831SAndroid Build Coastguard Worker 					 const char *URL,
1453*7c568831SAndroid Build Coastguard Worker 					 const char *encoding,
1454*7c568831SAndroid Build Coastguard Worker 					 int options);
1455*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1456*7c568831SAndroid Build Coastguard Worker 		xmlReadFile		(const char *URL,
1457*7c568831SAndroid Build Coastguard Worker 					 const char *encoding,
1458*7c568831SAndroid Build Coastguard Worker 					 int options);
1459*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1460*7c568831SAndroid Build Coastguard Worker 		xmlReadMemory		(const char *buffer,
1461*7c568831SAndroid Build Coastguard Worker 					 int size,
1462*7c568831SAndroid Build Coastguard Worker 					 const char *URL,
1463*7c568831SAndroid Build Coastguard Worker 					 const char *encoding,
1464*7c568831SAndroid Build Coastguard Worker 					 int options);
1465*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1466*7c568831SAndroid Build Coastguard Worker 		xmlReadFd		(int fd,
1467*7c568831SAndroid Build Coastguard Worker 					 const char *URL,
1468*7c568831SAndroid Build Coastguard Worker 					 const char *encoding,
1469*7c568831SAndroid Build Coastguard Worker 					 int options);
1470*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1471*7c568831SAndroid Build Coastguard Worker 		xmlReadIO		(xmlInputReadCallback ioread,
1472*7c568831SAndroid Build Coastguard Worker 					 xmlInputCloseCallback ioclose,
1473*7c568831SAndroid Build Coastguard Worker 					 void *ioctx,
1474*7c568831SAndroid Build Coastguard Worker 					 const char *URL,
1475*7c568831SAndroid Build Coastguard Worker 					 const char *encoding,
1476*7c568831SAndroid Build Coastguard Worker 					 int options);
1477*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1478*7c568831SAndroid Build Coastguard Worker 		xmlCtxtParseDocument	(xmlParserCtxtPtr ctxt,
1479*7c568831SAndroid Build Coastguard Worker 					 xmlParserInputPtr input);
1480*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlNodePtr
1481*7c568831SAndroid Build Coastguard Worker 		xmlCtxtParseContent	(xmlParserCtxtPtr ctxt,
1482*7c568831SAndroid Build Coastguard Worker 					 xmlParserInputPtr input,
1483*7c568831SAndroid Build Coastguard Worker 					 xmlNodePtr node,
1484*7c568831SAndroid Build Coastguard Worker 					 int hasTextDecl);
1485*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1486*7c568831SAndroid Build Coastguard Worker 		xmlCtxtReadDoc		(xmlParserCtxtPtr ctxt,
1487*7c568831SAndroid Build Coastguard Worker 					 const xmlChar *cur,
1488*7c568831SAndroid Build Coastguard Worker 					 const char *URL,
1489*7c568831SAndroid Build Coastguard Worker 					 const char *encoding,
1490*7c568831SAndroid Build Coastguard Worker 					 int options);
1491*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1492*7c568831SAndroid Build Coastguard Worker 		xmlCtxtReadFile		(xmlParserCtxtPtr ctxt,
1493*7c568831SAndroid Build Coastguard Worker 					 const char *filename,
1494*7c568831SAndroid Build Coastguard Worker 					 const char *encoding,
1495*7c568831SAndroid Build Coastguard Worker 					 int options);
1496*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1497*7c568831SAndroid Build Coastguard Worker 		xmlCtxtReadMemory		(xmlParserCtxtPtr ctxt,
1498*7c568831SAndroid Build Coastguard Worker 					 const char *buffer,
1499*7c568831SAndroid Build Coastguard Worker 					 int size,
1500*7c568831SAndroid Build Coastguard Worker 					 const char *URL,
1501*7c568831SAndroid Build Coastguard Worker 					 const char *encoding,
1502*7c568831SAndroid Build Coastguard Worker 					 int options);
1503*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1504*7c568831SAndroid Build Coastguard Worker 		xmlCtxtReadFd		(xmlParserCtxtPtr ctxt,
1505*7c568831SAndroid Build Coastguard Worker 					 int fd,
1506*7c568831SAndroid Build Coastguard Worker 					 const char *URL,
1507*7c568831SAndroid Build Coastguard Worker 					 const char *encoding,
1508*7c568831SAndroid Build Coastguard Worker 					 int options);
1509*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlDocPtr
1510*7c568831SAndroid Build Coastguard Worker 		xmlCtxtReadIO		(xmlParserCtxtPtr ctxt,
1511*7c568831SAndroid Build Coastguard Worker 					 xmlInputReadCallback ioread,
1512*7c568831SAndroid Build Coastguard Worker 					 xmlInputCloseCallback ioclose,
1513*7c568831SAndroid Build Coastguard Worker 					 void *ioctx,
1514*7c568831SAndroid Build Coastguard Worker 					 const char *URL,
1515*7c568831SAndroid Build Coastguard Worker 					 const char *encoding,
1516*7c568831SAndroid Build Coastguard Worker 					 int options);
1517*7c568831SAndroid Build Coastguard Worker 
1518*7c568831SAndroid Build Coastguard Worker /**
1519*7c568831SAndroid Build Coastguard Worker  * New input API
1520*7c568831SAndroid Build Coastguard Worker  */
1521*7c568831SAndroid Build Coastguard Worker 
1522*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_BUF_STATIC		(1 << 1)
1523*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_BUF_ZERO_TERMINATED	(1 << 2)
1524*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_UNZIP                 (1 << 3)
1525*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_NETWORK               (1 << 4)
1526*7c568831SAndroid Build Coastguard Worker 
1527*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1528*7c568831SAndroid Build Coastguard Worker xmlNewInputFromUrl(const char *url, int flags, xmlParserInputPtr *out);
1529*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserInputPtr
1530*7c568831SAndroid Build Coastguard Worker xmlNewInputFromMemory(const char *url, const void *mem, size_t size,
1531*7c568831SAndroid Build Coastguard Worker                       int flags);
1532*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserInputPtr
1533*7c568831SAndroid Build Coastguard Worker xmlNewInputFromString(const char *url, const char *str, int flags);
1534*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserInputPtr
1535*7c568831SAndroid Build Coastguard Worker xmlNewInputFromFd(const char *url, int fd, int flags);
1536*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlParserInputPtr
1537*7c568831SAndroid Build Coastguard Worker xmlNewInputFromIO(const char *url, xmlInputReadCallback ioRead,
1538*7c568831SAndroid Build Coastguard Worker                   xmlInputCloseCallback ioClose, void *ioCtxt, int flags);
1539*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1540*7c568831SAndroid Build Coastguard Worker xmlInputSetEncodingHandler(xmlParserInputPtr input,
1541*7c568831SAndroid Build Coastguard Worker                            xmlCharEncodingHandlerPtr handler);
1542*7c568831SAndroid Build Coastguard Worker 
1543*7c568831SAndroid Build Coastguard Worker /*
1544*7c568831SAndroid Build Coastguard Worker  * Library wide options
1545*7c568831SAndroid Build Coastguard Worker  */
1546*7c568831SAndroid Build Coastguard Worker /**
1547*7c568831SAndroid Build Coastguard Worker  * xmlFeature:
1548*7c568831SAndroid Build Coastguard Worker  *
1549*7c568831SAndroid Build Coastguard Worker  * Used to examine the existence of features that can be enabled
1550*7c568831SAndroid Build Coastguard Worker  * or disabled at compile-time.
1551*7c568831SAndroid Build Coastguard Worker  * They used to be called XML_FEATURE_xxx but this clashed with Expat
1552*7c568831SAndroid Build Coastguard Worker  */
1553*7c568831SAndroid Build Coastguard Worker typedef enum {
1554*7c568831SAndroid Build Coastguard Worker     XML_WITH_THREAD = 1,
1555*7c568831SAndroid Build Coastguard Worker     XML_WITH_TREE = 2,
1556*7c568831SAndroid Build Coastguard Worker     XML_WITH_OUTPUT = 3,
1557*7c568831SAndroid Build Coastguard Worker     XML_WITH_PUSH = 4,
1558*7c568831SAndroid Build Coastguard Worker     XML_WITH_READER = 5,
1559*7c568831SAndroid Build Coastguard Worker     XML_WITH_PATTERN = 6,
1560*7c568831SAndroid Build Coastguard Worker     XML_WITH_WRITER = 7,
1561*7c568831SAndroid Build Coastguard Worker     XML_WITH_SAX1 = 8,
1562*7c568831SAndroid Build Coastguard Worker     XML_WITH_FTP = 9,
1563*7c568831SAndroid Build Coastguard Worker     XML_WITH_HTTP = 10,
1564*7c568831SAndroid Build Coastguard Worker     XML_WITH_VALID = 11,
1565*7c568831SAndroid Build Coastguard Worker     XML_WITH_HTML = 12,
1566*7c568831SAndroid Build Coastguard Worker     XML_WITH_LEGACY = 13,
1567*7c568831SAndroid Build Coastguard Worker     XML_WITH_C14N = 14,
1568*7c568831SAndroid Build Coastguard Worker     XML_WITH_CATALOG = 15,
1569*7c568831SAndroid Build Coastguard Worker     XML_WITH_XPATH = 16,
1570*7c568831SAndroid Build Coastguard Worker     XML_WITH_XPTR = 17,
1571*7c568831SAndroid Build Coastguard Worker     XML_WITH_XINCLUDE = 18,
1572*7c568831SAndroid Build Coastguard Worker     XML_WITH_ICONV = 19,
1573*7c568831SAndroid Build Coastguard Worker     XML_WITH_ISO8859X = 20,
1574*7c568831SAndroid Build Coastguard Worker     XML_WITH_UNICODE = 21,
1575*7c568831SAndroid Build Coastguard Worker     XML_WITH_REGEXP = 22,
1576*7c568831SAndroid Build Coastguard Worker     XML_WITH_AUTOMATA = 23,
1577*7c568831SAndroid Build Coastguard Worker     XML_WITH_EXPR = 24,
1578*7c568831SAndroid Build Coastguard Worker     XML_WITH_SCHEMAS = 25,
1579*7c568831SAndroid Build Coastguard Worker     XML_WITH_SCHEMATRON = 26,
1580*7c568831SAndroid Build Coastguard Worker     XML_WITH_MODULES = 27,
1581*7c568831SAndroid Build Coastguard Worker     XML_WITH_DEBUG = 28,
1582*7c568831SAndroid Build Coastguard Worker     XML_WITH_DEBUG_MEM = 29,
1583*7c568831SAndroid Build Coastguard Worker     XML_WITH_DEBUG_RUN = 30, /* unused */
1584*7c568831SAndroid Build Coastguard Worker     XML_WITH_ZLIB = 31,
1585*7c568831SAndroid Build Coastguard Worker     XML_WITH_ICU = 32,
1586*7c568831SAndroid Build Coastguard Worker     XML_WITH_LZMA = 33,
1587*7c568831SAndroid Build Coastguard Worker     XML_WITH_NONE = 99999 /* just to be sure of allocation size */
1588*7c568831SAndroid Build Coastguard Worker } xmlFeature;
1589*7c568831SAndroid Build Coastguard Worker 
1590*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
1591*7c568831SAndroid Build Coastguard Worker 		xmlHasFeature		(xmlFeature feature);
1592*7c568831SAndroid Build Coastguard Worker 
1593*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
1594*7c568831SAndroid Build Coastguard Worker }
1595*7c568831SAndroid Build Coastguard Worker #endif
1596*7c568831SAndroid Build Coastguard Worker #endif /* __XML_PARSER_H__ */
1597