Annotation of embedaddon/libxml2/include/libxml/xmlreader.h, revision 1.1.1.1
1.1 misho 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 __cplusplus
22: extern "C" {
23: #endif
24:
25: /**
26: * xmlParserSeverities:
27: *
28: * How severe an error callback is when the per-reader error callback API
29: * is used.
30: */
31: typedef enum {
32: XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
33: XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
34: XML_PARSER_SEVERITY_WARNING = 3,
35: XML_PARSER_SEVERITY_ERROR = 4
36: } xmlParserSeverities;
37:
38: #ifdef LIBXML_READER_ENABLED
39:
40: /**
41: * xmlTextReaderMode:
42: *
43: * Internal state values for the reader.
44: */
45: typedef enum {
46: XML_TEXTREADER_MODE_INITIAL = 0,
47: XML_TEXTREADER_MODE_INTERACTIVE = 1,
48: XML_TEXTREADER_MODE_ERROR = 2,
49: XML_TEXTREADER_MODE_EOF =3,
50: XML_TEXTREADER_MODE_CLOSED = 4,
51: XML_TEXTREADER_MODE_READING = 5
52: } xmlTextReaderMode;
53:
54: /**
55: * xmlParserProperties:
56: *
57: * Some common options to use with xmlTextReaderSetParserProp, but it
58: * is better to use xmlParserOption and the xmlReaderNewxxx and
59: * xmlReaderForxxx APIs now.
60: */
61: typedef enum {
62: XML_PARSER_LOADDTD = 1,
63: XML_PARSER_DEFAULTATTRS = 2,
64: XML_PARSER_VALIDATE = 3,
65: XML_PARSER_SUBST_ENTITIES = 4
66: } xmlParserProperties;
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:
117: XMLPUBFUN void XMLCALL
118: xmlFreeTextReader (xmlTextReaderPtr reader);
119:
120: XMLPUBFUN int XMLCALL
121: xmlTextReaderSetup(xmlTextReaderPtr reader,
122: xmlParserInputBufferPtr input, const char *URL,
123: const char *encoding, int options);
124:
125: /*
126: * Iterators
127: */
128: XMLPUBFUN int XMLCALL
129: xmlTextReaderRead (xmlTextReaderPtr reader);
130:
131: #ifdef LIBXML_WRITER_ENABLED
132: XMLPUBFUN xmlChar * XMLCALL
133: xmlTextReaderReadInnerXml (xmlTextReaderPtr reader);
134:
135: XMLPUBFUN xmlChar * XMLCALL
136: xmlTextReaderReadOuterXml (xmlTextReaderPtr reader);
137: #endif
138:
139: XMLPUBFUN xmlChar * XMLCALL
140: xmlTextReaderReadString (xmlTextReaderPtr reader);
141: XMLPUBFUN int XMLCALL
142: xmlTextReaderReadAttributeValue (xmlTextReaderPtr reader);
143:
144: /*
145: * Attributes of the node
146: */
147: XMLPUBFUN int XMLCALL
148: xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
149: XMLPUBFUN int XMLCALL
150: xmlTextReaderDepth (xmlTextReaderPtr reader);
151: XMLPUBFUN int XMLCALL
152: xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
153: XMLPUBFUN int XMLCALL
154: xmlTextReaderHasValue(xmlTextReaderPtr reader);
155: XMLPUBFUN int XMLCALL
156: xmlTextReaderIsDefault (xmlTextReaderPtr reader);
157: XMLPUBFUN int XMLCALL
158: xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
159: XMLPUBFUN int XMLCALL
160: xmlTextReaderNodeType (xmlTextReaderPtr reader);
161: XMLPUBFUN int XMLCALL
162: xmlTextReaderQuoteChar (xmlTextReaderPtr reader);
163: XMLPUBFUN int XMLCALL
164: xmlTextReaderReadState (xmlTextReaderPtr reader);
165: XMLPUBFUN int XMLCALL
166: xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
167:
168: XMLPUBFUN const xmlChar * XMLCALL
169: xmlTextReaderConstBaseUri (xmlTextReaderPtr reader);
170: XMLPUBFUN const xmlChar * XMLCALL
171: xmlTextReaderConstLocalName (xmlTextReaderPtr reader);
172: XMLPUBFUN const xmlChar * XMLCALL
173: xmlTextReaderConstName (xmlTextReaderPtr reader);
174: XMLPUBFUN const xmlChar * XMLCALL
175: xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
176: XMLPUBFUN const xmlChar * XMLCALL
177: xmlTextReaderConstPrefix (xmlTextReaderPtr reader);
178: XMLPUBFUN const xmlChar * XMLCALL
179: xmlTextReaderConstXmlLang (xmlTextReaderPtr reader);
180: XMLPUBFUN const xmlChar * XMLCALL
181: xmlTextReaderConstString (xmlTextReaderPtr reader,
182: const xmlChar *str);
183: XMLPUBFUN const xmlChar * XMLCALL
184: xmlTextReaderConstValue (xmlTextReaderPtr reader);
185:
186: /*
187: * use the Const version of the routine for
188: * better performance and simpler code
189: */
190: XMLPUBFUN xmlChar * XMLCALL
191: xmlTextReaderBaseUri (xmlTextReaderPtr reader);
192: XMLPUBFUN xmlChar * XMLCALL
193: xmlTextReaderLocalName (xmlTextReaderPtr reader);
194: XMLPUBFUN xmlChar * XMLCALL
195: xmlTextReaderName (xmlTextReaderPtr reader);
196: XMLPUBFUN xmlChar * XMLCALL
197: xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
198: XMLPUBFUN xmlChar * XMLCALL
199: xmlTextReaderPrefix (xmlTextReaderPtr reader);
200: XMLPUBFUN xmlChar * XMLCALL
201: xmlTextReaderXmlLang (xmlTextReaderPtr reader);
202: XMLPUBFUN xmlChar * XMLCALL
203: xmlTextReaderValue (xmlTextReaderPtr reader);
204:
205: /*
206: * Methods of the XmlTextReader
207: */
208: XMLPUBFUN int XMLCALL
209: xmlTextReaderClose (xmlTextReaderPtr reader);
210: XMLPUBFUN xmlChar * XMLCALL
211: xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
212: int no);
213: XMLPUBFUN xmlChar * XMLCALL
214: xmlTextReaderGetAttribute (xmlTextReaderPtr reader,
215: const xmlChar *name);
216: XMLPUBFUN xmlChar * XMLCALL
217: xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
218: const xmlChar *localName,
219: const xmlChar *namespaceURI);
220: XMLPUBFUN xmlParserInputBufferPtr XMLCALL
221: xmlTextReaderGetRemainder (xmlTextReaderPtr reader);
222: XMLPUBFUN xmlChar * XMLCALL
223: xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
224: const xmlChar *prefix);
225: XMLPUBFUN int XMLCALL
226: xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
227: int no);
228: XMLPUBFUN int XMLCALL
229: xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
230: const xmlChar *name);
231: XMLPUBFUN int XMLCALL
232: xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
233: const xmlChar *localName,
234: const xmlChar *namespaceURI);
235: XMLPUBFUN int XMLCALL
236: xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
237: XMLPUBFUN int XMLCALL
238: xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
239: XMLPUBFUN int XMLCALL
240: xmlTextReaderMoveToElement (xmlTextReaderPtr reader);
241: XMLPUBFUN int XMLCALL
242: xmlTextReaderNormalization (xmlTextReaderPtr reader);
243: XMLPUBFUN const xmlChar * XMLCALL
244: xmlTextReaderConstEncoding (xmlTextReaderPtr reader);
245:
246: /*
247: * Extensions
248: */
249: XMLPUBFUN int XMLCALL
250: xmlTextReaderSetParserProp (xmlTextReaderPtr reader,
251: int prop,
252: int value);
253: XMLPUBFUN int XMLCALL
254: xmlTextReaderGetParserProp (xmlTextReaderPtr reader,
255: int prop);
256: XMLPUBFUN xmlNodePtr XMLCALL
257: xmlTextReaderCurrentNode (xmlTextReaderPtr reader);
258:
259: XMLPUBFUN int XMLCALL
260: xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
261:
262: XMLPUBFUN int XMLCALL
263: xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
264:
265: XMLPUBFUN xmlNodePtr XMLCALL
266: xmlTextReaderPreserve (xmlTextReaderPtr reader);
267: #ifdef LIBXML_PATTERN_ENABLED
268: XMLPUBFUN int XMLCALL
269: xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
270: const xmlChar *pattern,
271: const xmlChar **namespaces);
272: #endif /* LIBXML_PATTERN_ENABLED */
273: XMLPUBFUN xmlDocPtr XMLCALL
274: xmlTextReaderCurrentDoc (xmlTextReaderPtr reader);
275: XMLPUBFUN xmlNodePtr XMLCALL
276: xmlTextReaderExpand (xmlTextReaderPtr reader);
277: XMLPUBFUN int XMLCALL
278: xmlTextReaderNext (xmlTextReaderPtr reader);
279: XMLPUBFUN int XMLCALL
280: xmlTextReaderNextSibling (xmlTextReaderPtr reader);
281: XMLPUBFUN int XMLCALL
282: xmlTextReaderIsValid (xmlTextReaderPtr reader);
283: #ifdef LIBXML_SCHEMAS_ENABLED
284: XMLPUBFUN int XMLCALL
285: xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
286: const char *rng);
287: XMLPUBFUN int XMLCALL
288: xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
289: xmlRelaxNGPtr schema);
290: XMLPUBFUN int XMLCALL
291: xmlTextReaderSchemaValidate (xmlTextReaderPtr reader,
292: const char *xsd);
293: XMLPUBFUN int XMLCALL
294: xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
295: xmlSchemaValidCtxtPtr ctxt,
296: int options);
297: XMLPUBFUN int XMLCALL
298: xmlTextReaderSetSchema (xmlTextReaderPtr reader,
299: xmlSchemaPtr schema);
300: #endif
301: XMLPUBFUN const xmlChar * XMLCALL
302: xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
303: XMLPUBFUN int XMLCALL
304: xmlTextReaderStandalone (xmlTextReaderPtr reader);
305:
306:
307: /*
308: * Index lookup
309: */
310: XMLPUBFUN long XMLCALL
311: xmlTextReaderByteConsumed (xmlTextReaderPtr reader);
312:
313: /*
314: * New more complete APIs for simpler creation and reuse of readers
315: */
316: XMLPUBFUN xmlTextReaderPtr XMLCALL
317: xmlReaderWalker (xmlDocPtr doc);
318: XMLPUBFUN xmlTextReaderPtr XMLCALL
319: xmlReaderForDoc (const xmlChar * cur,
320: const char *URL,
321: const char *encoding,
322: int options);
323: XMLPUBFUN xmlTextReaderPtr XMLCALL
324: xmlReaderForFile (const char *filename,
325: const char *encoding,
326: int options);
327: XMLPUBFUN xmlTextReaderPtr XMLCALL
328: xmlReaderForMemory (const char *buffer,
329: int size,
330: const char *URL,
331: const char *encoding,
332: int options);
333: XMLPUBFUN xmlTextReaderPtr XMLCALL
334: xmlReaderForFd (int fd,
335: const char *URL,
336: const char *encoding,
337: int options);
338: XMLPUBFUN xmlTextReaderPtr XMLCALL
339: xmlReaderForIO (xmlInputReadCallback ioread,
340: xmlInputCloseCallback ioclose,
341: void *ioctx,
342: const char *URL,
343: const char *encoding,
344: int options);
345:
346: XMLPUBFUN int XMLCALL
347: xmlReaderNewWalker (xmlTextReaderPtr reader,
348: xmlDocPtr doc);
349: XMLPUBFUN int XMLCALL
350: xmlReaderNewDoc (xmlTextReaderPtr reader,
351: const xmlChar * cur,
352: const char *URL,
353: const char *encoding,
354: int options);
355: XMLPUBFUN int XMLCALL
356: xmlReaderNewFile (xmlTextReaderPtr reader,
357: const char *filename,
358: const char *encoding,
359: int options);
360: XMLPUBFUN int XMLCALL
361: xmlReaderNewMemory (xmlTextReaderPtr reader,
362: const char *buffer,
363: int size,
364: const char *URL,
365: const char *encoding,
366: int options);
367: XMLPUBFUN int XMLCALL
368: xmlReaderNewFd (xmlTextReaderPtr reader,
369: int fd,
370: const char *URL,
371: const char *encoding,
372: int options);
373: XMLPUBFUN int XMLCALL
374: xmlReaderNewIO (xmlTextReaderPtr reader,
375: xmlInputReadCallback ioread,
376: xmlInputCloseCallback ioclose,
377: void *ioctx,
378: const char *URL,
379: const char *encoding,
380: int options);
381: /*
382: * Error handling extensions
383: */
384: typedef void * xmlTextReaderLocatorPtr;
385:
386: /**
387: * xmlTextReaderErrorFunc:
388: * @arg: the user argument
389: * @msg: the message
390: * @severity: the severity of the error
391: * @locator: a locator indicating where the error occured
392: *
393: * Signature of an error callback from a reader parser
394: */
395: typedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
396: const char *msg,
397: xmlParserSeverities severity,
398: xmlTextReaderLocatorPtr locator);
399: XMLPUBFUN int XMLCALL
400: xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
401: /*int xmlTextReaderLocatorLinePosition(xmlTextReaderLocatorPtr locator);*/
402: XMLPUBFUN xmlChar * XMLCALL
403: xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
404: XMLPUBFUN void XMLCALL
405: xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
406: xmlTextReaderErrorFunc f,
407: void *arg);
408: XMLPUBFUN void XMLCALL
409: xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
410: xmlStructuredErrorFunc f,
411: void *arg);
412: XMLPUBFUN void XMLCALL
413: xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
414: xmlTextReaderErrorFunc *f,
415: void **arg);
416:
417: #endif /* LIBXML_READER_ENABLED */
418:
419: #ifdef __cplusplus
420: }
421: #endif
422:
423: #endif /* __XML_XMLREADER_H__ */
424:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>