3 * Summary: text writing API for XML
4 * Description: text writing API for XML
6 * Copy: See Copyright for the status of this software.
8 * Author: Alfred Mickautsch <alfred@mickautsch.de>
11 #ifndef __XML_XMLWRITER_H__
12 #define __XML_XMLWRITER_H__
14 #include <libxml/xmlversion.h>
16 #ifdef LIBXML_WRITER_ENABLED
19 #include <libxml/xmlIO.h>
20 #include <libxml/list.h>
21 #include <libxml/xmlstring.h>
27 typedef struct _xmlTextWriter xmlTextWriter;
28 typedef xmlTextWriter *xmlTextWriterPtr;
31 * Constructors & Destructor
33 XMLPUBFUN xmlTextWriterPtr XMLCALL
34 xmlNewTextWriter(xmlOutputBufferPtr out);
35 XMLPUBFUN xmlTextWriterPtr XMLCALL
36 xmlNewTextWriterFilename(const char *uri, int compression);
37 XMLPUBFUN xmlTextWriterPtr XMLCALL
38 xmlNewTextWriterMemory(xmlBufferPtr buf, int compression);
39 XMLPUBFUN xmlTextWriterPtr XMLCALL
40 xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression);
41 XMLPUBFUN xmlTextWriterPtr XMLCALL
42 xmlNewTextWriterDoc(xmlDocPtr * doc, int compression);
43 XMLPUBFUN xmlTextWriterPtr XMLCALL
44 xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node,
46 XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer);
57 xmlTextWriterStartDocument(xmlTextWriterPtr writer,
60 const char *standalone);
61 XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr
67 XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr
69 XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer);
71 xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,
72 const char *format, ...)
73 LIBXML_ATTR_FORMAT(2,3);
75 xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,
78 LIBXML_ATTR_FORMAT(2,0);
79 XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr
88 xmlTextWriterStartElement(xmlTextWriterPtr writer,
89 const xmlChar * name);
90 XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr
97 XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer);
98 XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr
102 * Elements conveniency functions
104 XMLPUBFUN int XMLCALL
105 xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,
106 const xmlChar * name,
107 const char *format, ...)
108 LIBXML_ATTR_FORMAT(3,4);
109 XMLPUBFUN int XMLCALL
110 xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,
111 const xmlChar * name,
114 LIBXML_ATTR_FORMAT(3,0);
115 XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr
117 const xmlChar * name,
120 XMLPUBFUN int XMLCALL
121 xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer,
122 const xmlChar * prefix,
123 const xmlChar * name,
124 const xmlChar * namespaceURI,
125 const char *format, ...)
126 LIBXML_ATTR_FORMAT(5,6);
127 XMLPUBFUN int XMLCALL
128 xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer,
129 const xmlChar * prefix,
130 const xmlChar * name,
131 const xmlChar * namespaceURI,
134 LIBXML_ATTR_FORMAT(5,0);
135 XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr
139 const xmlChar * name,
148 XMLPUBFUN int XMLCALL
149 xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer,
150 const char *format, ...)
151 LIBXML_ATTR_FORMAT(2,3);
152 XMLPUBFUN int XMLCALL
153 xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer,
154 const char *format, va_list argptr)
155 LIBXML_ATTR_FORMAT(2,0);
156 XMLPUBFUN int XMLCALL
157 xmlTextWriterWriteRawLen(xmlTextWriterPtr writer,
158 const xmlChar * content, int len);
159 XMLPUBFUN int XMLCALL
160 xmlTextWriterWriteRaw(xmlTextWriterPtr writer,
161 const xmlChar * content);
162 XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr
166 LIBXML_ATTR_FORMAT(2,3);
167 XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr
172 LIBXML_ATTR_FORMAT(2,0);
173 XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer,
176 XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer,
179 XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer,
186 XMLPUBFUN int XMLCALL
187 xmlTextWriterStartAttribute(xmlTextWriterPtr writer,
188 const xmlChar * name);
189 XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr
197 XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr
201 * Attributes conveniency functions
203 XMLPUBFUN int XMLCALL
204 xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
205 const xmlChar * name,
206 const char *format, ...)
207 LIBXML_ATTR_FORMAT(3,4);
208 XMLPUBFUN int XMLCALL
209 xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,
210 const xmlChar * name,
213 LIBXML_ATTR_FORMAT(3,0);
214 XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr
216 const xmlChar * name,
219 XMLPUBFUN int XMLCALL
220 xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer,
221 const xmlChar * prefix,
222 const xmlChar * name,
223 const xmlChar * namespaceURI,
224 const char *format, ...)
225 LIBXML_ATTR_FORMAT(5,6);
226 XMLPUBFUN int XMLCALL
227 xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer,
228 const xmlChar * prefix,
229 const xmlChar * name,
230 const xmlChar * namespaceURI,
233 LIBXML_ATTR_FORMAT(5,0);
234 XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr
248 XMLPUBFUN int XMLCALL
249 xmlTextWriterStartPI(xmlTextWriterPtr writer,
250 const xmlChar * target);
251 XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer);
254 * PI conveniency functions
256 XMLPUBFUN int XMLCALL
257 xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer,
258 const xmlChar * target,
259 const char *format, ...)
260 LIBXML_ATTR_FORMAT(3,4);
261 XMLPUBFUN int XMLCALL
262 xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer,
263 const xmlChar * target,
264 const char *format, va_list argptr)
265 LIBXML_ATTR_FORMAT(3,0);
266 XMLPUBFUN int XMLCALL
267 xmlTextWriterWritePI(xmlTextWriterPtr writer,
268 const xmlChar * target,
269 const xmlChar * content);
272 * xmlTextWriterWriteProcessingInstruction:
274 * This macro maps to xmlTextWriterWritePI
276 #define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI
281 XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer);
282 XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer);
285 * CDATA conveniency functions
287 XMLPUBFUN int XMLCALL
288 xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer,
289 const char *format, ...)
290 LIBXML_ATTR_FORMAT(2,3);
291 XMLPUBFUN int XMLCALL
292 xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer,
293 const char *format, va_list argptr)
294 LIBXML_ATTR_FORMAT(2,0);
295 XMLPUBFUN int XMLCALL
296 xmlTextWriterWriteCDATA(xmlTextWriterPtr writer,
297 const xmlChar * content);
302 XMLPUBFUN int XMLCALL
303 xmlTextWriterStartDTD(xmlTextWriterPtr writer,
304 const xmlChar * name,
305 const xmlChar * pubid,
306 const xmlChar * sysid);
307 XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer);
310 * DTD conveniency functions
312 XMLPUBFUN int XMLCALL
313 xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer,
314 const xmlChar * name,
315 const xmlChar * pubid,
316 const xmlChar * sysid,
317 const char *format, ...)
318 LIBXML_ATTR_FORMAT(5,6);
319 XMLPUBFUN int XMLCALL
320 xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer,
321 const xmlChar * name,
322 const xmlChar * pubid,
323 const xmlChar * sysid,
324 const char *format, va_list argptr)
325 LIBXML_ATTR_FORMAT(5,0);
326 XMLPUBFUN int XMLCALL
327 xmlTextWriterWriteDTD(xmlTextWriterPtr writer,
328 const xmlChar * name,
329 const xmlChar * pubid,
330 const xmlChar * sysid,
331 const xmlChar * subset);
334 * xmlTextWriterWriteDocType:
336 * this macro maps to xmlTextWriterWriteDTD
338 #define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
341 * DTD element definition
343 XMLPUBFUN int XMLCALL
344 xmlTextWriterStartDTDElement(xmlTextWriterPtr writer,
345 const xmlChar * name);
346 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr
350 * DTD element definition conveniency functions
352 XMLPUBFUN int XMLCALL
353 xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
354 const xmlChar * name,
355 const char *format, ...)
356 LIBXML_ATTR_FORMAT(3,4);
357 XMLPUBFUN int XMLCALL
358 xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,
359 const xmlChar * name,
362 LIBXML_ATTR_FORMAT(3,0);
363 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr
371 * DTD attribute list definition
373 XMLPUBFUN int XMLCALL
374 xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer,
375 const xmlChar * name);
376 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr
380 * DTD attribute list definition conveniency functions
382 XMLPUBFUN int XMLCALL
383 xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
384 const xmlChar * name,
385 const char *format, ...)
386 LIBXML_ATTR_FORMAT(3,4);
387 XMLPUBFUN int XMLCALL
388 xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,
389 const xmlChar * name,
392 LIBXML_ATTR_FORMAT(3,0);
393 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr
401 * DTD entity definition
403 XMLPUBFUN int XMLCALL
404 xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer,
405 int pe, const xmlChar * name);
406 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr
410 * DTD entity definition conveniency functions
412 XMLPUBFUN int XMLCALL
413 xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
415 const xmlChar * name,
416 const char *format, ...)
417 LIBXML_ATTR_FORMAT(4,5);
418 XMLPUBFUN int XMLCALL
419 xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer,
421 const xmlChar * name,
424 LIBXML_ATTR_FORMAT(4,0);
425 XMLPUBFUN int XMLCALL
426 xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer,
428 const xmlChar * name,
429 const xmlChar * content);
430 XMLPUBFUN int XMLCALL
431 xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer,
433 const xmlChar * name,
434 const xmlChar * pubid,
435 const xmlChar * sysid,
436 const xmlChar * ndataid);
437 XMLPUBFUN int XMLCALL
438 xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr
440 const xmlChar * pubid,
441 const xmlChar * sysid,
444 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr
446 const xmlChar * name,
457 * DTD notation definition
459 XMLPUBFUN int XMLCALL
460 xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer,
461 const xmlChar * name,
462 const xmlChar * pubid,
463 const xmlChar * sysid);
468 XMLPUBFUN int XMLCALL
469 xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent);
470 XMLPUBFUN int XMLCALL
471 xmlTextWriterSetIndentString(xmlTextWriterPtr writer,
472 const xmlChar * str);
477 XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer);
483 #endif /* LIBXML_WRITER_ENABLED */
485 #endif /* __XML_XMLWRITER_H__ */