xmlwriter.h revision 60a4c356ee9ce5e9ccb23347c0381f0436192691
1
2/*
3 * Summary: text writing API for XML
4 * Description: text writing API for XML
5 *
6 * Copy: See Copyright for the status of this software.
7 *
8 * Author: Alfred Mickautsch <alfred@mickautsch.de>
9 */
10
11#ifndef __XML_XMLWRITER_H__
12#define __XML_XMLWRITER_H__
13
14#include <libxml/xmlversion.h>
15
16#ifdef LIBXML_WRITER_ENABLED
17
18#include <stdarg.h>
19#include <libxml/xmlIO.h>
20#include <libxml/list.h>
21#include <libxml/xmlstring.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27    typedef struct _xmlTextWriter xmlTextWriter;
28    typedef xmlTextWriter *xmlTextWriterPtr;
29
30/*
31 * Constructors & Destructor
32 */
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,
45                             int compression);
46    XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer);
47
48/*
49 * Functions
50 */
51
52
53/*
54 * Document
55 */
56    XMLPUBFUN int XMLCALL
57        xmlTextWriterStartDocument(xmlTextWriterPtr writer,
58                                   const char *version,
59                                   const char *encoding,
60                                   const char *standalone);
61    XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr
62                                                   writer);
63
64/*
65 * Comments
66 */
67    XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr
68                                                    writer);
69    XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer);
70    XMLPUBFUN int XMLCALL
71        xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,
72                                        const char *format, ...)
73					ATTRIBUTE_PRINTF(2,3);
74    XMLPUBFUN int XMLCALL
75        xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,
76                                         const char *format,
77                                         va_list argptr)
78					 ATTRIBUTE_PRINTF(2,0);
79    XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr
80                                                    writer,
81                                                    const xmlChar *
82                                                    content);
83
84/*
85 * Elements
86 */
87    XMLPUBFUN int XMLCALL
88        xmlTextWriterStartElement(xmlTextWriterPtr writer,
89                                  const xmlChar * name);
90    XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr
91                                                      writer,
92                                                      const xmlChar *
93                                                      prefix,
94                                                      const xmlChar * name,
95                                                      const xmlChar *
96                                                      namespaceURI);
97    XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer);
98    XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr
99                                                      writer);
100
101/*
102 * Elements conveniency functions
103 */
104    XMLPUBFUN int XMLCALL
105        xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,
106                                        const xmlChar * name,
107                                        const char *format, ...)
108					ATTRIBUTE_PRINTF(3,4);
109    XMLPUBFUN int XMLCALL
110        xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,
111                                         const xmlChar * name,
112                                         const char *format,
113                                         va_list argptr)
114					 ATTRIBUTE_PRINTF(3,0);
115    XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr
116                                                    writer,
117                                                    const xmlChar * name,
118                                                    const xmlChar *
119                                                    content);
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					  ATTRIBUTE_PRINTF(5,6);
127    XMLPUBFUN int XMLCALL
128        xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer,
129                                           const xmlChar * prefix,
130                                           const xmlChar * name,
131                                           const xmlChar * namespaceURI,
132                                           const char *format,
133                                           va_list argptr)
134					   ATTRIBUTE_PRINTF(5,0);
135    XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr
136                                                      writer,
137                                                      const xmlChar *
138                                                      prefix,
139                                                      const xmlChar * name,
140                                                      const xmlChar *
141                                                      namespaceURI,
142                                                      const xmlChar *
143                                                      content);
144
145/*
146 * Text
147 */
148    XMLPUBFUN int XMLCALL
149        xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer,
150                                    const char *format, ...)
151				    ATTRIBUTE_PRINTF(2,3);
152    XMLPUBFUN int XMLCALL
153        xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer,
154                                     const char *format, va_list argptr)
155				     ATTRIBUTE_PRINTF(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
163                                                         writer,
164                                                         const char
165                                                         *format, ...)
166							 ATTRIBUTE_PRINTF(2,3);
167    XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr
168                                                          writer,
169                                                          const char
170                                                          *format,
171                                                          va_list argptr)
172							  ATTRIBUTE_PRINTF(2,0);
173    XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer,
174                                                   const xmlChar *
175                                                   content);
176    XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer,
177                                                   const char *data,
178                                                   int start, int len);
179    XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer,
180                                                   const char *data,
181                                                   int start, int len);
182
183/*
184 * Attributes
185 */
186    XMLPUBFUN int XMLCALL
187        xmlTextWriterStartAttribute(xmlTextWriterPtr writer,
188                                    const xmlChar * name);
189    XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr
190                                                        writer,
191                                                        const xmlChar *
192                                                        prefix,
193                                                        const xmlChar *
194                                                        name,
195                                                        const xmlChar *
196                                                        namespaceURI);
197    XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr
198                                                    writer);
199
200/*
201 * Attributes conveniency functions
202 */
203    XMLPUBFUN int XMLCALL
204        xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
205                                          const xmlChar * name,
206                                          const char *format, ...)
207					  ATTRIBUTE_PRINTF(3,4);
208    XMLPUBFUN int XMLCALL
209        xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,
210                                           const xmlChar * name,
211                                           const char *format,
212                                           va_list argptr)
213					   ATTRIBUTE_PRINTF(3,0);
214    XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr
215                                                      writer,
216                                                      const xmlChar * name,
217                                                      const xmlChar *
218                                                      content);
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					    ATTRIBUTE_PRINTF(5,6);
226    XMLPUBFUN int XMLCALL
227        xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer,
228                                             const xmlChar * prefix,
229                                             const xmlChar * name,
230                                             const xmlChar * namespaceURI,
231                                             const char *format,
232                                             va_list argptr)
233					     ATTRIBUTE_PRINTF(5,0);
234    XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr
235                                                        writer,
236                                                        const xmlChar *
237                                                        prefix,
238                                                        const xmlChar *
239                                                        name,
240                                                        const xmlChar *
241                                                        namespaceURI,
242                                                        const xmlChar *
243                                                        content);
244
245/*
246 * PI's
247 */
248    XMLPUBFUN int XMLCALL
249        xmlTextWriterStartPI(xmlTextWriterPtr writer,
250                             const xmlChar * target);
251    XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer);
252
253/*
254 * PI conveniency functions
255 */
256    XMLPUBFUN int XMLCALL
257        xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer,
258                                   const xmlChar * target,
259                                   const char *format, ...)
260				   ATTRIBUTE_PRINTF(3,4);
261    XMLPUBFUN int XMLCALL
262        xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer,
263                                    const xmlChar * target,
264                                    const char *format, va_list argptr)
265				    ATTRIBUTE_PRINTF(3,0);
266    XMLPUBFUN int XMLCALL
267        xmlTextWriterWritePI(xmlTextWriterPtr writer,
268                             const xmlChar * target,
269                             const xmlChar * content);
270
271/**
272 * xmlTextWriterWriteProcessingInstruction:
273 *
274 * This macro maps to xmlTextWriterWritePI
275 */
276#define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI
277
278/*
279 * CDATA
280 */
281    XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer);
282    XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer);
283
284/*
285 * CDATA conveniency functions
286 */
287    XMLPUBFUN int XMLCALL
288        xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer,
289                                      const char *format, ...)
290				      ATTRIBUTE_PRINTF(2,3);
291    XMLPUBFUN int XMLCALL
292        xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer,
293                                       const char *format, va_list argptr)
294				       ATTRIBUTE_PRINTF(2,0);
295    XMLPUBFUN int XMLCALL
296        xmlTextWriterWriteCDATA(xmlTextWriterPtr writer,
297                                const xmlChar * content);
298
299/*
300 * DTD
301 */
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);
308
309/*
310 * DTD conveniency functions
311 */
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				    ATTRIBUTE_PRINTF(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				     ATTRIBUTE_PRINTF(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);
332
333/**
334 * xmlTextWriterWriteDocType:
335 *
336 * this macro maps to xmlTextWriterWriteDTD
337 */
338#define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
339
340/*
341 * DTD element definition
342 */
343    XMLPUBFUN int XMLCALL
344        xmlTextWriterStartDTDElement(xmlTextWriterPtr writer,
345                                     const xmlChar * name);
346    XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr
347                                                     writer);
348
349/*
350 * DTD element definition conveniency functions
351 */
352    XMLPUBFUN int XMLCALL
353        xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
354                                           const xmlChar * name,
355                                           const char *format, ...)
356					   ATTRIBUTE_PRINTF(3,4);
357    XMLPUBFUN int XMLCALL
358        xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,
359                                            const xmlChar * name,
360                                            const char *format,
361                                            va_list argptr)
362					    ATTRIBUTE_PRINTF(3,0);
363    XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr
364                                                       writer,
365                                                       const xmlChar *
366                                                       name,
367                                                       const xmlChar *
368                                                       content);
369
370/*
371 * DTD attribute list definition
372 */
373    XMLPUBFUN int XMLCALL
374        xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer,
375                                     const xmlChar * name);
376    XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr
377                                                     writer);
378
379/*
380 * DTD attribute list definition conveniency functions
381 */
382    XMLPUBFUN int XMLCALL
383        xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
384                                           const xmlChar * name,
385                                           const char *format, ...)
386					   ATTRIBUTE_PRINTF(3,4);
387    XMLPUBFUN int XMLCALL
388        xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,
389                                            const xmlChar * name,
390                                            const char *format,
391                                            va_list argptr)
392					    ATTRIBUTE_PRINTF(3,0);
393    XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr
394                                                       writer,
395                                                       const xmlChar *
396                                                       name,
397                                                       const xmlChar *
398                                                       content);
399
400/*
401 * DTD entity definition
402 */
403    XMLPUBFUN int XMLCALL
404        xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer,
405                                    int pe, const xmlChar * name);
406    XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr
407                                                    writer);
408
409/*
410 * DTD entity definition conveniency functions
411 */
412    XMLPUBFUN int XMLCALL
413        xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
414                                                  int pe,
415                                                  const xmlChar * name,
416                                                  const char *format, ...)
417						  ATTRIBUTE_PRINTF(4,5);
418    XMLPUBFUN int XMLCALL
419        xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer,
420                                                   int pe,
421                                                   const xmlChar * name,
422                                                   const char *format,
423                                                   va_list argptr)
424						   ATTRIBUTE_PRINTF(4,0);
425    XMLPUBFUN int XMLCALL
426        xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer,
427                                            int pe,
428                                            const xmlChar * name,
429                                            const xmlChar * content);
430    XMLPUBFUN int XMLCALL
431        xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer,
432                                            int pe,
433                                            const xmlChar * name,
434                                            const xmlChar * pubid,
435                                            const xmlChar * sysid,
436                                            const xmlChar * ndataid);
437    XMLPUBFUN int XMLCALL
438        xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr
439                                                    writer,
440                                                    const xmlChar * pubid,
441                                                    const xmlChar * sysid,
442                                                    const xmlChar *
443                                                    ndataid);
444    XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr
445                                                      writer, int pe,
446                                                      const xmlChar * name,
447                                                      const xmlChar *
448                                                      pubid,
449                                                      const xmlChar *
450                                                      sysid,
451                                                      const xmlChar *
452                                                      ndataid,
453                                                      const xmlChar *
454                                                      content);
455
456/*
457 * DTD notation definition
458 */
459    XMLPUBFUN int XMLCALL
460        xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer,
461                                      const xmlChar * name,
462                                      const xmlChar * pubid,
463                                      const xmlChar * sysid);
464
465/*
466 * Indentation
467 */
468    XMLPUBFUN int XMLCALL
469        xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent);
470    XMLPUBFUN int XMLCALL
471        xmlTextWriterSetIndentString(xmlTextWriterPtr writer,
472                                     const xmlChar * str);
473
474/*
475 * misc
476 */
477    XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer);
478
479#ifdef __cplusplus
480}
481#endif
482
483#endif /* LIBXML_WRITER_ENABLED */
484
485#endif                          /* __XML_XMLWRITER_H__ */
486