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>
8 * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
16 #ifndef XML_XMLWRITER_H
17 #define XML_XMLWRITER_H
20 #include <stdapis/libxml2/libxml2_xmlio.h>
21 #include <stdapis/libxml2/libxml2_list.h>
22 #include <stdapis/libxml2/libxml2_xmlstring.h>
24 #ifdef LIBXML_WRITER_ENABLED
30 typedef struct _xmlTextWriter xmlTextWriter;
31 typedef xmlTextWriter *xmlTextWriterPtr;
32 // Moved from Libxml2_xmlwriter.cpp
33 struct _xmlTextWriter {
34 xmlOutputBufferPtr out; /* output buffer */
35 xmlListPtr nodes; /* element name stack */
36 xmlListPtr nsstack; /* name spaces stack */
38 int indent; /* enable indent */
39 int doindent; /* internal indent flag */
40 xmlChar *ichar; /* indent character */
41 char qchar; /* character used for quoting attribute values */
42 xmlParserCtxtPtr ctxt;
46 * Constructors & Destructor
48 XMLPUBFUN xmlTextWriterPtr XMLCALL
49 xmlNewTextWriter(xmlOutputBufferPtr out);
50 XMLPUBFUN xmlTextWriterPtr XMLCALL
51 xmlNewTextWriterFilename(const char *uri, int compression);
52 XMLPUBFUN xmlTextWriterPtr XMLCALL
53 xmlNewTextWriterMemory(xmlBufferPtr buf, int compression);
54 XMLPUBFUN xmlTextWriterPtr XMLCALL
55 xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression);
56 XMLPUBFUN xmlTextWriterPtr XMLCALL
57 xmlNewTextWriterDoc(xmlDocPtr * doc, int compression);
58 XMLPUBFUN xmlTextWriterPtr XMLCALL
59 xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node,
61 XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer);
72 xmlTextWriterStartDocument(xmlTextWriterPtr writer,
75 const char *standalone);
76 XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr
82 XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr
84 XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer);
86 xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,
87 const char *format, ...);
89 xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,
92 XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr
100 XMLPUBFUN int XMLCALL
101 xmlTextWriterStartElement(xmlTextWriterPtr writer,
102 const xmlChar * name);
103 XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr
107 const xmlChar * name,
110 XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer);
111 XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr
115 * Elements conveniency functions
117 XMLPUBFUN int XMLCALL
118 xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,
119 const xmlChar * name,
120 const char *format, ...);
121 XMLPUBFUN int XMLCALL
122 xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,
123 const xmlChar * name,
126 XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr
128 const xmlChar * name,
131 XMLPUBFUN int XMLCALL
132 xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer,
133 const xmlChar * prefix,
134 const xmlChar * name,
135 const xmlChar * namespaceURI,
136 const char *format, ...);
137 XMLPUBFUN int XMLCALL
138 xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer,
139 const xmlChar * prefix,
140 const xmlChar * name,
141 const xmlChar * namespaceURI,
144 XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr
148 const xmlChar * name,
157 XMLPUBFUN int XMLCALL
158 xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer,
159 const char *format, ...);
160 XMLPUBFUN int XMLCALL
161 xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer,
162 const char *format, va_list argptr);
163 XMLPUBFUN int XMLCALL
164 xmlTextWriterWriteRawLen(xmlTextWriterPtr writer,
165 const xmlChar * content, int len);
166 XMLPUBFUN int XMLCALL
167 xmlTextWriterWriteRaw(xmlTextWriterPtr writer,
168 const xmlChar * content);
169 XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr
173 XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr
178 XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer,
181 XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer,
184 XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer,
191 XMLPUBFUN int XMLCALL
192 xmlTextWriterStartAttribute(xmlTextWriterPtr writer,
193 const xmlChar * name);
194 XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr
202 XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr
206 * Attributes conveniency functions
208 XMLPUBFUN int XMLCALL
209 xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
210 const xmlChar * name,
211 const char *format, ...);
212 XMLPUBFUN int XMLCALL
213 xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,
214 const xmlChar * name,
217 XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr
219 const xmlChar * name,
222 XMLPUBFUN int XMLCALL
223 xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer,
224 const xmlChar * prefix,
225 const xmlChar * name,
226 const xmlChar * namespaceURI,
227 const char *format, ...);
228 XMLPUBFUN int XMLCALL
229 xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer,
230 const xmlChar * prefix,
231 const xmlChar * name,
232 const xmlChar * namespaceURI,
235 XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr
249 XMLPUBFUN int XMLCALL
250 xmlTextWriterStartPI(xmlTextWriterPtr writer,
251 const xmlChar * target);
252 XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer);
255 * PI conveniency functions
257 XMLPUBFUN int XMLCALL
258 xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer,
259 const xmlChar * target,
260 const char *format, ...);
261 XMLPUBFUN int XMLCALL
262 xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer,
263 const xmlChar * target,
264 const char *format, va_list argptr);
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 XMLPUBFUN int XMLCALL
290 xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer,
291 const char *format, va_list argptr);
292 XMLPUBFUN int XMLCALL
293 xmlTextWriterWriteCDATA(xmlTextWriterPtr writer,
294 const xmlChar * content);
299 XMLPUBFUN int XMLCALL
300 xmlTextWriterStartDTD(xmlTextWriterPtr writer,
301 const xmlChar * name,
302 const xmlChar * pubid,
303 const xmlChar * sysid);
304 XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer);
307 * DTD conveniency functions
309 XMLPUBFUN int XMLCALL
310 xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer,
311 const xmlChar * name,
312 const xmlChar * pubid,
313 const xmlChar * sysid,
314 const char *format, ...);
315 XMLPUBFUN int XMLCALL
316 xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer,
317 const xmlChar * name,
318 const xmlChar * pubid,
319 const xmlChar * sysid,
320 const char *format, va_list argptr);
321 XMLPUBFUN int XMLCALL
322 xmlTextWriterWriteDTD(xmlTextWriterPtr writer,
323 const xmlChar * name,
324 const xmlChar * pubid,
325 const xmlChar * sysid,
326 const xmlChar * subset);
329 * xmlTextWriterWriteDocType:
331 * this macro maps to xmlTextWriterWriteDTD
333 #define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
336 * DTD element definition
338 XMLPUBFUN int XMLCALL
339 xmlTextWriterStartDTDElement(xmlTextWriterPtr writer,
340 const xmlChar * name);
341 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr
345 * DTD element definition conveniency functions
347 XMLPUBFUN int XMLCALL
348 xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
349 const xmlChar * name,
350 const char *format, ...);
351 XMLPUBFUN int XMLCALL
352 xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,
353 const xmlChar * name,
356 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr
364 * DTD attribute list definition
366 XMLPUBFUN int XMLCALL
367 xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer,
368 const xmlChar * name);
369 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr
373 * DTD attribute list definition conveniency functions
375 XMLPUBFUN int XMLCALL
376 xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
377 const xmlChar * name,
378 const char *format, ...);
379 XMLPUBFUN int XMLCALL
380 xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,
381 const xmlChar * name,
384 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr
392 * DTD entity definition
394 XMLPUBFUN int XMLCALL
395 xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer,
396 int pe, const xmlChar * name);
397 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr
401 * DTD entity definition conveniency functions
403 XMLPUBFUN int XMLCALL
404 xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
406 const xmlChar * name,
407 const char *format, ...);
408 XMLPUBFUN int XMLCALL
409 xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer,
411 const xmlChar * name,
414 XMLPUBFUN int XMLCALL
415 xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer,
417 const xmlChar * name,
418 const xmlChar * content);
419 XMLPUBFUN int XMLCALL
420 xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer,
422 const xmlChar * name,
423 const xmlChar * pubid,
424 const xmlChar * sysid,
425 const xmlChar * ndataid);
426 XMLPUBFUN int XMLCALL
427 xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr
429 const xmlChar * pubid,
430 const xmlChar * sysid,
433 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr
435 const xmlChar * name,
446 * DTD notation definition
448 XMLPUBFUN int XMLCALL
449 xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer,
450 const xmlChar * name,
451 const xmlChar * pubid,
452 const xmlChar * sysid);
457 XMLPUBFUN int XMLCALL
458 xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent);
459 XMLPUBFUN int XMLCALL
460 xmlTextWriterSetIndentString(xmlTextWriterPtr writer,
461 const xmlChar * str);
466 XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer);
472 #endif /* LIBXML_WRITER_ENABLED */
474 #endif /* XML_XMLWRITER_H */