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