1d12988f19fac91aa814dac7354a9f6fe9aa9ea6
[platform/upstream/gettext.git] / gnulib-local / lib / libxml / xmlreader.in.h
1 /*
2  * Summary: the XMLReader implementation
3  * Description: API of the XML streaming API based on C# interfaces.
4  *
5  * Copy: See Copyright for the status of this software.
6  *
7  * Author: Daniel Veillard
8  */
9
10 #ifndef __XML_XMLREADER_H__
11 #define __XML_XMLREADER_H__
12
13 #include <libxml/xmlversion.h>
14 #include <libxml/tree.h>
15 #include <libxml/xmlIO.h>
16 #ifdef LIBXML_SCHEMAS_ENABLED
17 #include <libxml/relaxng.h>
18 #include <libxml/xmlschemas.h>
19 #endif
20
21 #ifdef LIBXML_READER_ENABLED
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /**
28  * xmlTextReaderMode:
29  *
30  * Internal state values for the reader.
31  */
32 typedef enum {
33     XML_TEXTREADER_MODE_INITIAL = 0,
34     XML_TEXTREADER_MODE_INTERACTIVE = 1,
35     XML_TEXTREADER_MODE_ERROR = 2,
36     XML_TEXTREADER_MODE_EOF =3,
37     XML_TEXTREADER_MODE_CLOSED = 4,
38     XML_TEXTREADER_MODE_READING = 5
39 } xmlTextReaderMode;
40
41 /**
42  * xmlParserProperties:
43  *
44  * Some common options to use with xmlTextReaderSetParserProp, but it
45  * is better to use xmlParserOption and the xmlReaderNewxxx and 
46  * xmlReaderForxxx APIs now.
47  */
48 typedef enum {
49     XML_PARSER_LOADDTD = 1,
50     XML_PARSER_DEFAULTATTRS = 2,
51     XML_PARSER_VALIDATE = 3,
52     XML_PARSER_SUBST_ENTITIES = 4
53 } xmlParserProperties;
54
55 /**
56  * xmlParserSeverities:
57  *
58  * How severe an error callback is when the per-reader error callback API
59  * is used.
60  */
61 typedef enum {
62     XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
63     XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
64     XML_PARSER_SEVERITY_WARNING = 3,
65     XML_PARSER_SEVERITY_ERROR = 4
66 } xmlParserSeverities;
67
68 /**
69  * xmlReaderTypes:
70  *
71  * Predefined constants for the different types of nodes.
72  */
73 typedef enum {
74     XML_READER_TYPE_NONE = 0,
75     XML_READER_TYPE_ELEMENT = 1,
76     XML_READER_TYPE_ATTRIBUTE = 2,
77     XML_READER_TYPE_TEXT = 3,
78     XML_READER_TYPE_CDATA = 4,
79     XML_READER_TYPE_ENTITY_REFERENCE = 5,
80     XML_READER_TYPE_ENTITY = 6,
81     XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
82     XML_READER_TYPE_COMMENT = 8,
83     XML_READER_TYPE_DOCUMENT = 9,
84     XML_READER_TYPE_DOCUMENT_TYPE = 10,
85     XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
86     XML_READER_TYPE_NOTATION = 12,
87     XML_READER_TYPE_WHITESPACE = 13,
88     XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
89     XML_READER_TYPE_END_ELEMENT = 15,
90     XML_READER_TYPE_END_ENTITY = 16,
91     XML_READER_TYPE_XML_DECLARATION = 17
92 } xmlReaderTypes;
93
94 /**
95  * xmlTextReader:
96  *
97  * Structure for an xmlReader context.
98  */
99 typedef struct _xmlTextReader xmlTextReader;
100
101 /**
102  * xmlTextReaderPtr:
103  *
104  * Pointer to an xmlReader context.
105  */
106 typedef xmlTextReader *xmlTextReaderPtr;
107
108 /*
109  * Constructors & Destructor
110  */
111 XMLPUBFUN xmlTextReaderPtr XMLCALL
112                         xmlNewTextReader        (xmlParserInputBufferPtr input,
113                                                  const char *URI);
114 XMLPUBFUN xmlTextReaderPtr XMLCALL      
115                         xmlNewTextReaderFilename(const char *URI);
116 XMLPUBFUN void XMLCALL                  
117                         xmlFreeTextReader       (xmlTextReaderPtr reader);
118
119 /*
120  * Iterators
121  */
122 XMLPUBFUN int XMLCALL           
123                         xmlTextReaderRead       (xmlTextReaderPtr reader);
124
125 #ifdef LIBXML_WRITER_ENABLED
126 XMLPUBFUN xmlChar * XMLCALL     
127                         xmlTextReaderReadInnerXml       (xmlTextReaderPtr reader);
128                         
129 XMLPUBFUN xmlChar * XMLCALL     
130                         xmlTextReaderReadOuterXml       (xmlTextReaderPtr reader);
131 #endif
132
133 XMLPUBFUN xmlChar * XMLCALL     
134                         xmlTextReaderReadString         (xmlTextReaderPtr reader);
135 XMLPUBFUN int XMLCALL           
136                         xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader);
137
138 /*
139  * Attributes of the node
140  */
141 XMLPUBFUN int XMLCALL           
142                         xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
143 XMLPUBFUN int XMLCALL           
144                         xmlTextReaderDepth      (xmlTextReaderPtr reader);
145 XMLPUBFUN int XMLCALL           
146                         xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
147 XMLPUBFUN int XMLCALL           
148                         xmlTextReaderHasValue(xmlTextReaderPtr reader);
149 XMLPUBFUN int XMLCALL           
150                         xmlTextReaderIsDefault  (xmlTextReaderPtr reader);
151 XMLPUBFUN int XMLCALL           
152                         xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
153 XMLPUBFUN int XMLCALL           
154                         xmlTextReaderNodeType   (xmlTextReaderPtr reader);
155 XMLPUBFUN int XMLCALL           
156                         xmlTextReaderQuoteChar  (xmlTextReaderPtr reader);
157 XMLPUBFUN int XMLCALL           
158                         xmlTextReaderReadState  (xmlTextReaderPtr reader);
159 XMLPUBFUN int XMLCALL
160                         xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
161
162 XMLPUBFUN const xmlChar * XMLCALL       
163                     xmlTextReaderConstBaseUri   (xmlTextReaderPtr reader);
164 XMLPUBFUN const xmlChar * XMLCALL       
165                     xmlTextReaderConstLocalName (xmlTextReaderPtr reader);
166 XMLPUBFUN const xmlChar * XMLCALL       
167                     xmlTextReaderConstName      (xmlTextReaderPtr reader);
168 XMLPUBFUN const xmlChar * XMLCALL       
169                     xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
170 XMLPUBFUN const xmlChar * XMLCALL       
171                     xmlTextReaderConstPrefix    (xmlTextReaderPtr reader);
172 XMLPUBFUN const xmlChar * XMLCALL       
173                     xmlTextReaderConstXmlLang   (xmlTextReaderPtr reader);
174 XMLPUBFUN const xmlChar * XMLCALL       
175                     xmlTextReaderConstString    (xmlTextReaderPtr reader,
176                                                  const xmlChar *str);
177 XMLPUBFUN const xmlChar * XMLCALL       
178                     xmlTextReaderConstValue     (xmlTextReaderPtr reader);
179
180 /*
181  * use the Const version of the routine for
182  * better performance and simpler code
183  */
184 XMLPUBFUN xmlChar * XMLCALL     
185                         xmlTextReaderBaseUri    (xmlTextReaderPtr reader);
186 XMLPUBFUN xmlChar * XMLCALL     
187                         xmlTextReaderLocalName  (xmlTextReaderPtr reader);
188 XMLPUBFUN xmlChar * XMLCALL     
189                         xmlTextReaderName       (xmlTextReaderPtr reader);
190 XMLPUBFUN xmlChar * XMLCALL     
191                         xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
192 XMLPUBFUN xmlChar * XMLCALL     
193                         xmlTextReaderPrefix     (xmlTextReaderPtr reader);
194 XMLPUBFUN xmlChar * XMLCALL     
195                         xmlTextReaderXmlLang    (xmlTextReaderPtr reader);
196 XMLPUBFUN xmlChar * XMLCALL     
197                         xmlTextReaderValue      (xmlTextReaderPtr reader);
198
199 /*
200  * Methods of the XmlTextReader
201  */
202 XMLPUBFUN int XMLCALL           
203                     xmlTextReaderClose          (xmlTextReaderPtr reader);
204 XMLPUBFUN xmlChar * XMLCALL     
205                     xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
206                                                  int no);
207 XMLPUBFUN xmlChar * XMLCALL     
208                     xmlTextReaderGetAttribute   (xmlTextReaderPtr reader,
209                                                  const xmlChar *name);
210 XMLPUBFUN xmlChar * XMLCALL     
211                     xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
212                                                  const xmlChar *localName,
213                                                  const xmlChar *namespaceURI);
214 XMLPUBFUN xmlParserInputBufferPtr XMLCALL 
215                     xmlTextReaderGetRemainder   (xmlTextReaderPtr reader);
216 XMLPUBFUN xmlChar * XMLCALL     
217                     xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
218                                                  const xmlChar *prefix);
219 XMLPUBFUN int XMLCALL           
220                     xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
221                                                  int no);
222 XMLPUBFUN int XMLCALL           
223                     xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
224                                                  const xmlChar *name);
225 XMLPUBFUN int XMLCALL           
226                     xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
227                                                  const xmlChar *localName,
228                                                  const xmlChar *namespaceURI);
229 XMLPUBFUN int XMLCALL           
230                     xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
231 XMLPUBFUN int XMLCALL           
232                     xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
233 XMLPUBFUN int XMLCALL           
234                     xmlTextReaderMoveToElement  (xmlTextReaderPtr reader);
235 XMLPUBFUN int XMLCALL           
236                     xmlTextReaderNormalization  (xmlTextReaderPtr reader);
237 XMLPUBFUN const xmlChar * XMLCALL
238                     xmlTextReaderConstEncoding  (xmlTextReaderPtr reader);
239
240 /*
241  * Extensions
242  */
243 XMLPUBFUN int XMLCALL           
244                     xmlTextReaderSetParserProp  (xmlTextReaderPtr reader,
245                                                  int prop,
246                                                  int value);
247 XMLPUBFUN int XMLCALL           
248                     xmlTextReaderGetParserProp  (xmlTextReaderPtr reader,
249                                                  int prop);
250 XMLPUBFUN xmlNodePtr XMLCALL    
251                     xmlTextReaderCurrentNode    (xmlTextReaderPtr reader);
252
253 XMLPUBFUN int XMLCALL
254             xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
255
256 XMLPUBFUN int XMLCALL
257             xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
258
259 XMLPUBFUN xmlNodePtr XMLCALL    
260                     xmlTextReaderPreserve       (xmlTextReaderPtr reader);
261 #ifdef LIBXML_PATTERN_ENABLED
262 XMLPUBFUN int XMLCALL   
263                     xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
264                                                  const xmlChar *pattern,
265                                                  const xmlChar **namespaces);
266 #endif /* LIBXML_PATTERN_ENABLED */
267 XMLPUBFUN xmlDocPtr XMLCALL     
268                     xmlTextReaderCurrentDoc     (xmlTextReaderPtr reader);
269 XMLPUBFUN xmlNodePtr XMLCALL    
270                     xmlTextReaderExpand         (xmlTextReaderPtr reader);
271 XMLPUBFUN int XMLCALL           
272                     xmlTextReaderNext           (xmlTextReaderPtr reader);
273 XMLPUBFUN int XMLCALL
274                     xmlTextReaderNextSibling    (xmlTextReaderPtr reader);
275 XMLPUBFUN int XMLCALL           
276                     xmlTextReaderIsValid        (xmlTextReaderPtr reader);
277 #ifdef LIBXML_SCHEMAS_ENABLED
278 XMLPUBFUN int XMLCALL           
279                     xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
280                                                  const char *rng);
281 XMLPUBFUN int XMLCALL           
282                     xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
283                                                  xmlRelaxNGPtr schema);
284 XMLPUBFUN int XMLCALL
285                     xmlTextReaderSchemaValidate (xmlTextReaderPtr reader,
286                                                  const char *xsd);
287 XMLPUBFUN int XMLCALL
288                     xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
289                                                  xmlSchemaValidCtxtPtr ctxt,
290                                                  int options);
291 XMLPUBFUN int XMLCALL           
292                     xmlTextReaderSetSchema      (xmlTextReaderPtr reader,
293                                                  xmlSchemaPtr schema);
294 #endif
295 XMLPUBFUN const xmlChar * XMLCALL
296                     xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
297 XMLPUBFUN int XMLCALL
298                     xmlTextReaderStandalone     (xmlTextReaderPtr reader);
299
300
301 /*
302  * Index lookup
303  */
304 XMLPUBFUN long XMLCALL
305                 xmlTextReaderByteConsumed       (xmlTextReaderPtr reader);
306
307 /*
308  * New more complete APIs for simpler creation and reuse of readers
309  */
310 XMLPUBFUN xmlTextReaderPtr XMLCALL
311                 xmlReaderWalker         (xmlDocPtr doc);
312 XMLPUBFUN xmlTextReaderPtr XMLCALL
313                 xmlReaderForDoc         (const xmlChar * cur,
314                                          const char *URL,
315                                          const char *encoding,
316                                          int options);
317 XMLPUBFUN xmlTextReaderPtr XMLCALL
318                 xmlReaderForFile        (const char *filename,
319                                          const char *encoding,
320                                          int options);
321 XMLPUBFUN xmlTextReaderPtr XMLCALL
322                 xmlReaderForMemory      (const char *buffer,
323                                          int size,
324                                          const char *URL,
325                                          const char *encoding,
326                                          int options);
327 XMLPUBFUN xmlTextReaderPtr XMLCALL
328                 xmlReaderForFd          (int fd,
329                                          const char *URL,
330                                          const char *encoding,
331                                          int options);
332 XMLPUBFUN xmlTextReaderPtr XMLCALL
333                 xmlReaderForIO          (xmlInputReadCallback ioread,
334                                          xmlInputCloseCallback ioclose,
335                                          void *ioctx,
336                                          const char *URL,
337                                          const char *encoding,
338                                          int options);
339
340 XMLPUBFUN int XMLCALL
341                 xmlReaderNewWalker      (xmlTextReaderPtr reader,
342                                          xmlDocPtr doc);
343 XMLPUBFUN int XMLCALL
344                 xmlReaderNewDoc         (xmlTextReaderPtr reader,
345                                          const xmlChar * cur,
346                                          const char *URL,
347                                          const char *encoding,
348                                          int options);
349 XMLPUBFUN int XMLCALL
350                 xmlReaderNewFile        (xmlTextReaderPtr reader,
351                                          const char *filename,
352                                          const char *encoding,
353                                          int options);
354 XMLPUBFUN int XMLCALL
355                 xmlReaderNewMemory      (xmlTextReaderPtr reader,
356                                          const char *buffer,
357                                          int size,
358                                          const char *URL,
359                                          const char *encoding,
360                                          int options);
361 XMLPUBFUN int XMLCALL
362                 xmlReaderNewFd          (xmlTextReaderPtr reader,
363                                          int fd,
364                                          const char *URL,
365                                          const char *encoding,
366                                          int options);
367 XMLPUBFUN int XMLCALL
368                 xmlReaderNewIO          (xmlTextReaderPtr reader,
369                                          xmlInputReadCallback ioread,
370                                          xmlInputCloseCallback ioclose,
371                                          void *ioctx,
372                                          const char *URL,
373                                          const char *encoding,
374                                          int options);
375 /*
376  * Error handling extensions
377  */
378 typedef void *  xmlTextReaderLocatorPtr;
379 typedef void   (XMLCALL *xmlTextReaderErrorFunc)        (void *arg, 
380                                                  const char *msg,
381                                                  xmlParserSeverities severity,
382                                                  xmlTextReaderLocatorPtr locator);
383 XMLPUBFUN int XMLCALL             
384                     xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
385 /*int             xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/
386 XMLPUBFUN xmlChar * XMLCALL       
387                     xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
388 XMLPUBFUN void XMLCALL            
389                     xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader, 
390                                                  xmlTextReaderErrorFunc f, 
391                                                  void *arg);
392 XMLPUBFUN void XMLCALL
393                     xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
394                                                            xmlStructuredErrorFunc f,
395                                                            void *arg);
396 XMLPUBFUN void XMLCALL            
397                     xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader, 
398                                                  xmlTextReaderErrorFunc *f, 
399                                                  void **arg);
400
401 #ifdef __cplusplus
402 }
403 #endif
404
405 #endif /* LIBXML_READER_ENABLED */
406
407 #endif /* __XML_XMLREADER_H__ */
408