2 * Summary: text writing API for XML
3 * Description: text writing API for XML
5 * Copy: See Copyright for the status of this software.
7 * Author: Alfred Mickautsch <alfred@mickautsch.de>
10 #ifndef __XML_XMLWRITER_H__
11 #define __XML_XMLWRITER_H__
13 #include <libxml/xmlversion.h>
15 #ifdef LIBXML_WRITER_ENABLED
18 #include <libxml/xmlIO.h>
19 #include <libxml/list.h>
20 #include <libxml/xmlstring.h>
26 typedef struct _xmlTextWriter xmlTextWriter;
27 typedef xmlTextWriter *xmlTextWriterPtr;
30 * Constructors & Destructor
32 XMLPUBFUN xmlTextWriterPtr XMLCALL
33 xmlNewTextWriter(xmlOutputBufferPtr out);
34 XMLPUBFUN xmlTextWriterPtr XMLCALL
35 xmlNewTextWriterFilename(const char *uri, int compression);
36 XMLPUBFUN xmlTextWriterPtr XMLCALL
37 xmlNewTextWriterMemory(xmlBufferPtr buf, int compression);
38 XMLPUBFUN xmlTextWriterPtr XMLCALL
39 xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression);
40 XMLPUBFUN xmlTextWriterPtr XMLCALL
41 xmlNewTextWriterDoc(xmlDocPtr * doc, int compression);
42 XMLPUBFUN xmlTextWriterPtr XMLCALL
43 xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node,
45 XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer);
56 xmlTextWriterStartDocument(xmlTextWriterPtr writer,
59 const char *standalone);
60 XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr
66 XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr
68 XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer);
70 xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,
71 const char *format, ...)
72 LIBXML_ATTR_FORMAT(2,3);
74 xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,
77 LIBXML_ATTR_FORMAT(2,0);
78 XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr
87 xmlTextWriterStartElement(xmlTextWriterPtr writer,
88 const xmlChar * name);
89 XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr
96 XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer);
97 XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr
101 * Elements conveniency functions
103 XMLPUBFUN int XMLCALL
104 xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,
105 const xmlChar * name,
106 const char *format, ...)
107 LIBXML_ATTR_FORMAT(3,4);
108 XMLPUBFUN int XMLCALL
109 xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,
110 const xmlChar * name,
113 LIBXML_ATTR_FORMAT(3,0);
114 XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr
116 const xmlChar * name,
119 XMLPUBFUN int XMLCALL
120 xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer,
121 const xmlChar * prefix,
122 const xmlChar * name,
123 const xmlChar * namespaceURI,
124 const char *format, ...)
125 LIBXML_ATTR_FORMAT(5,6);
126 XMLPUBFUN int XMLCALL
127 xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer,
128 const xmlChar * prefix,
129 const xmlChar * name,
130 const xmlChar * namespaceURI,
133 LIBXML_ATTR_FORMAT(5,0);
134 XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr
138 const xmlChar * name,
147 XMLPUBFUN int XMLCALL
148 xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer,
149 const char *format, ...)
150 LIBXML_ATTR_FORMAT(2,3);
151 XMLPUBFUN int XMLCALL
152 xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer,
153 const char *format, va_list argptr)
154 LIBXML_ATTR_FORMAT(2,0);
155 XMLPUBFUN int XMLCALL
156 xmlTextWriterWriteRawLen(xmlTextWriterPtr writer,
157 const xmlChar * content, int len);
158 XMLPUBFUN int XMLCALL
159 xmlTextWriterWriteRaw(xmlTextWriterPtr writer,
160 const xmlChar * content);
161 XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr
165 LIBXML_ATTR_FORMAT(2,3);
166 XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr
171 LIBXML_ATTR_FORMAT(2,0);
172 XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer,
175 XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer,
178 XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer,
185 XMLPUBFUN int XMLCALL
186 xmlTextWriterStartAttribute(xmlTextWriterPtr writer,
187 const xmlChar * name);
188 XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr
196 XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr
200 * Attributes conveniency functions
202 XMLPUBFUN int XMLCALL
203 xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
204 const xmlChar * name,
205 const char *format, ...)
206 LIBXML_ATTR_FORMAT(3,4);
207 XMLPUBFUN int XMLCALL
208 xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,
209 const xmlChar * name,
212 LIBXML_ATTR_FORMAT(3,0);
213 XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr
215 const xmlChar * name,
218 XMLPUBFUN int XMLCALL
219 xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer,
220 const xmlChar * prefix,
221 const xmlChar * name,
222 const xmlChar * namespaceURI,
223 const char *format, ...)
224 LIBXML_ATTR_FORMAT(5,6);
225 XMLPUBFUN int XMLCALL
226 xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer,
227 const xmlChar * prefix,
228 const xmlChar * name,
229 const xmlChar * namespaceURI,
232 LIBXML_ATTR_FORMAT(5,0);
233 XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr
247 XMLPUBFUN int XMLCALL
248 xmlTextWriterStartPI(xmlTextWriterPtr writer,
249 const xmlChar * target);
250 XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer);
253 * PI conveniency functions
255 XMLPUBFUN int XMLCALL
256 xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer,
257 const xmlChar * target,
258 const char *format, ...)
259 LIBXML_ATTR_FORMAT(3,4);
260 XMLPUBFUN int XMLCALL
261 xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer,
262 const xmlChar * target,
263 const char *format, va_list argptr)
264 LIBXML_ATTR_FORMAT(3,0);
265 XMLPUBFUN int XMLCALL
266 xmlTextWriterWritePI(xmlTextWriterPtr writer,
267 const xmlChar * target,
268 const xmlChar * content);
271 * xmlTextWriterWriteProcessingInstruction:
273 * This macro maps to xmlTextWriterWritePI
275 #define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI
280 XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer);
281 XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer);
284 * CDATA conveniency functions
286 XMLPUBFUN int XMLCALL
287 xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer,
288 const char *format, ...)
289 LIBXML_ATTR_FORMAT(2,3);
290 XMLPUBFUN int XMLCALL
291 xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer,
292 const char *format, va_list argptr)
293 LIBXML_ATTR_FORMAT(2,0);
294 XMLPUBFUN int XMLCALL
295 xmlTextWriterWriteCDATA(xmlTextWriterPtr writer,
296 const xmlChar * content);
301 XMLPUBFUN int XMLCALL
302 xmlTextWriterStartDTD(xmlTextWriterPtr writer,
303 const xmlChar * name,
304 const xmlChar * pubid,
305 const xmlChar * sysid);
306 XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer);
309 * DTD conveniency functions
311 XMLPUBFUN int XMLCALL
312 xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer,
313 const xmlChar * name,
314 const xmlChar * pubid,
315 const xmlChar * sysid,
316 const char *format, ...)
317 LIBXML_ATTR_FORMAT(5,6);
318 XMLPUBFUN int XMLCALL
319 xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer,
320 const xmlChar * name,
321 const xmlChar * pubid,
322 const xmlChar * sysid,
323 const char *format, va_list argptr)
324 LIBXML_ATTR_FORMAT(5,0);
325 XMLPUBFUN int XMLCALL
326 xmlTextWriterWriteDTD(xmlTextWriterPtr writer,
327 const xmlChar * name,
328 const xmlChar * pubid,
329 const xmlChar * sysid,
330 const xmlChar * subset);
333 * xmlTextWriterWriteDocType:
335 * this macro maps to xmlTextWriterWriteDTD
337 #define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
340 * DTD element definition
342 XMLPUBFUN int XMLCALL
343 xmlTextWriterStartDTDElement(xmlTextWriterPtr writer,
344 const xmlChar * name);
345 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr
349 * DTD element definition conveniency functions
351 XMLPUBFUN int XMLCALL
352 xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
353 const xmlChar * name,
354 const char *format, ...)
355 LIBXML_ATTR_FORMAT(3,4);
356 XMLPUBFUN int XMLCALL
357 xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,
358 const xmlChar * name,
361 LIBXML_ATTR_FORMAT(3,0);
362 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr
370 * DTD attribute list definition
372 XMLPUBFUN int XMLCALL
373 xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer,
374 const xmlChar * name);
375 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr
379 * DTD attribute list definition conveniency functions
381 XMLPUBFUN int XMLCALL
382 xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
383 const xmlChar * name,
384 const char *format, ...)
385 LIBXML_ATTR_FORMAT(3,4);
386 XMLPUBFUN int XMLCALL
387 xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,
388 const xmlChar * name,
391 LIBXML_ATTR_FORMAT(3,0);
392 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr
400 * DTD entity definition
402 XMLPUBFUN int XMLCALL
403 xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer,
404 int pe, const xmlChar * name);
405 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr
409 * DTD entity definition conveniency functions
411 XMLPUBFUN int XMLCALL
412 xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
414 const xmlChar * name,
415 const char *format, ...)
416 LIBXML_ATTR_FORMAT(4,5);
417 XMLPUBFUN int XMLCALL
418 xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer,
420 const xmlChar * name,
423 LIBXML_ATTR_FORMAT(4,0);
424 XMLPUBFUN int XMLCALL
425 xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer,
427 const xmlChar * name,
428 const xmlChar * content);
429 XMLPUBFUN int XMLCALL
430 xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer,
432 const xmlChar * name,
433 const xmlChar * pubid,
434 const xmlChar * sysid,
435 const xmlChar * ndataid);
436 XMLPUBFUN int XMLCALL
437 xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr
439 const xmlChar * pubid,
440 const xmlChar * sysid,
443 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr
445 const xmlChar * name,
456 * DTD notation definition
458 XMLPUBFUN int XMLCALL
459 xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer,
460 const xmlChar * name,
461 const xmlChar * pubid,
462 const xmlChar * sysid);
467 XMLPUBFUN int XMLCALL
468 xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent);
469 XMLPUBFUN int XMLCALL
470 xmlTextWriterSetIndentString(xmlTextWriterPtr writer,
471 const xmlChar * str);
473 XMLPUBFUN int XMLCALL
474 xmlTextWriterSetQuoteChar(xmlTextWriterPtr writer, xmlChar quotechar);
480 XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer);
486 #endif /* LIBXML_WRITER_ENABLED */
488 #endif /* __XML_XMLWRITER_H__ */