blob: 91e683c88cf28dd514fc7d45bc3d3803b779ecc3 [file] [log] [blame]
Daniel Veillardab69f362004-02-17 11:40:32 +00001
Daniel Veillard1d211e22003-10-20 22:32:39 +00002/*
Daniel Veillardbe586972003-11-18 20:56:51 +00003 * Summary: text writing API for XML
4 * Description: text writing API for XML
Daniel Veillard1d211e22003-10-20 22:32:39 +00005 *
Daniel Veillardbe586972003-11-18 20:56:51 +00006 * Copy: See Copyright for the status of this software.
Daniel Veillard1d211e22003-10-20 22:32:39 +00007 *
Daniel Veillardbe586972003-11-18 20:56:51 +00008 * Author: Alfred Mickautsch <alfred@mickautsch.de>
Daniel Veillard1d211e22003-10-20 22:32:39 +00009 */
10
11#ifndef __XML_XMLWRITER_H__
12#define __XML_XMLWRITER_H__
13
Daniel Veillarda2351322004-06-27 12:08:10 +000014#include <libxml/xmlversion.h>
15
16#ifdef LIBXML_WRITER_ENABLED
17
Daniel Veillard5841f0e2003-11-20 11:59:09 +000018#include <stdarg.h>
Daniel Veillard1d211e22003-10-20 22:32:39 +000019#include <libxml/xmlIO.h>
20#include <libxml/list.h>
William M. Bracka2e844a2004-01-06 11:52:13 +000021#include <libxml/xmlstring.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
Daniel Veillard1d211e22003-10-20 22:32:39 +000026
Daniel Veillardab69f362004-02-17 11:40:32 +000027 typedef struct _xmlTextWriter xmlTextWriter;
28 typedef xmlTextWriter *xmlTextWriterPtr;
Daniel Veillard1d211e22003-10-20 22:32:39 +000029
30/*
31 * Constructors & Destructor
32 */
Daniel Veillardab69f362004-02-17 11:40:32 +000033 XMLPUBFUN xmlTextWriterPtr XMLCALL
34 xmlNewTextWriter(xmlOutputBufferPtr out);
35 XMLPUBFUN xmlTextWriterPtr XMLCALL
Daniel Veillard5841f0e2003-11-20 11:59:09 +000036 xmlNewTextWriterFilename(const char *uri, int compression);
Daniel Veillardab69f362004-02-17 11:40:32 +000037 XMLPUBFUN xmlTextWriterPtr XMLCALL
Daniel Veillard5841f0e2003-11-20 11:59:09 +000038 xmlNewTextWriterMemory(xmlBufferPtr buf, int compression);
Daniel Veillardab69f362004-02-17 11:40:32 +000039 XMLPUBFUN xmlTextWriterPtr XMLCALL
Daniel Veillard5841f0e2003-11-20 11:59:09 +000040 xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression);
Daniel Veillardab69f362004-02-17 11:40:32 +000041 XMLPUBFUN xmlTextWriterPtr XMLCALL
Daniel Veillard5841f0e2003-11-20 11:59:09 +000042 xmlNewTextWriterDoc(xmlDocPtr * doc, int compression);
Daniel Veillardab69f362004-02-17 11:40:32 +000043 XMLPUBFUN xmlTextWriterPtr XMLCALL
Daniel Veillard500a1de2004-03-22 15:22:58 +000044 xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node,
45 int compression);
Daniel Veillardab69f362004-02-17 11:40:32 +000046 XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +000047
48/*
49 * Functions
50 */
51
52
53/*
54 * Document
55 */
Daniel Veillardab69f362004-02-17 11:40:32 +000056 XMLPUBFUN int XMLCALL
57 xmlTextWriterStartDocument(xmlTextWriterPtr writer,
58 const char *version,
59 const char *encoding,
60 const char *standalone);
Daniel Veillard500a1de2004-03-22 15:22:58 +000061 XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr
62 writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +000063
64/*
65 * Comments
66 */
Daniel Veillard500a1de2004-03-22 15:22:58 +000067 XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr
68 writer);
Daniel Veillardab69f362004-02-17 11:40:32 +000069 XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer);
70 XMLPUBFUN int XMLCALL
71 xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,
Daniel Veillardf63085d2009-01-18 20:53:59 +000072 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +000073 LIBXML_ATTR_FORMAT(2,3);
Daniel Veillardab69f362004-02-17 11:40:32 +000074 XMLPUBFUN int XMLCALL
75 xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,
76 const char *format,
Daniel Veillardf63085d2009-01-18 20:53:59 +000077 va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +000078 LIBXML_ATTR_FORMAT(2,0);
Daniel Veillard500a1de2004-03-22 15:22:58 +000079 XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr
80 writer,
81 const xmlChar *
82 content);
Daniel Veillard1d211e22003-10-20 22:32:39 +000083
84/*
85 * Elements
86 */
Daniel Veillardab69f362004-02-17 11:40:32 +000087 XMLPUBFUN int XMLCALL
88 xmlTextWriterStartElement(xmlTextWriterPtr writer,
89 const xmlChar * name);
Daniel Veillard500a1de2004-03-22 15:22:58 +000090 XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr
91 writer,
92 const xmlChar *
93 prefix,
94 const xmlChar * name,
95 const xmlChar *
96 namespaceURI);
Daniel Veillard5841f0e2003-11-20 11:59:09 +000097 XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer);
Daniel Veillard500a1de2004-03-22 15:22:58 +000098 XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr
99 writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000100
101/*
102 * Elements conveniency functions
103 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000104 XMLPUBFUN int XMLCALL
105 xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,
106 const xmlChar * name,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000107 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000108 LIBXML_ATTR_FORMAT(3,4);
Daniel Veillardab69f362004-02-17 11:40:32 +0000109 XMLPUBFUN int XMLCALL
110 xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,
111 const xmlChar * name,
112 const char *format,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000113 va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000114 LIBXML_ATTR_FORMAT(3,0);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000115 XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr
116 writer,
117 const xmlChar * name,
118 const xmlChar *
119 content);
Daniel Veillardab69f362004-02-17 11:40:32 +0000120 XMLPUBFUN int XMLCALL
121 xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer,
122 const xmlChar * prefix,
123 const xmlChar * name,
124 const xmlChar * namespaceURI,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000125 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000126 LIBXML_ATTR_FORMAT(5,6);
Daniel Veillardab69f362004-02-17 11:40:32 +0000127 XMLPUBFUN int XMLCALL
128 xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer,
129 const xmlChar * prefix,
130 const xmlChar * name,
131 const xmlChar * namespaceURI,
132 const char *format,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000133 va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000134 LIBXML_ATTR_FORMAT(5,0);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000135 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);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000144
145/*
146 * Text
147 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000148 XMLPUBFUN int XMLCALL
149 xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000150 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000151 LIBXML_ATTR_FORMAT(2,3);
Daniel Veillardab69f362004-02-17 11:40:32 +0000152 XMLPUBFUN int XMLCALL
153 xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000154 const char *format, va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000155 LIBXML_ATTR_FORMAT(2,0);
Daniel Veillardab69f362004-02-17 11:40:32 +0000156 XMLPUBFUN int XMLCALL
157 xmlTextWriterWriteRawLen(xmlTextWriterPtr writer,
Daniel Veillard5841f0e2003-11-20 11:59:09 +0000158 const xmlChar * content, int len);
Daniel Veillardab69f362004-02-17 11:40:32 +0000159 XMLPUBFUN int XMLCALL
160 xmlTextWriterWriteRaw(xmlTextWriterPtr writer,
161 const xmlChar * content);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000162 XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr
163 writer,
164 const char
Daniel Veillardf63085d2009-01-18 20:53:59 +0000165 *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000166 LIBXML_ATTR_FORMAT(2,3);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000167 XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr
168 writer,
169 const char
170 *format,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000171 va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000172 LIBXML_ATTR_FORMAT(2,0);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000173 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);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000182
183/*
184 * Attributes
185 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000186 XMLPUBFUN int XMLCALL
187 xmlTextWriterStartAttribute(xmlTextWriterPtr writer,
188 const xmlChar * name);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000189 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);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000199
200/*
201 * Attributes conveniency functions
202 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000203 XMLPUBFUN int XMLCALL
204 xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
205 const xmlChar * name,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000206 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000207 LIBXML_ATTR_FORMAT(3,4);
Daniel Veillardab69f362004-02-17 11:40:32 +0000208 XMLPUBFUN int XMLCALL
209 xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,
210 const xmlChar * name,
211 const char *format,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000212 va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000213 LIBXML_ATTR_FORMAT(3,0);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000214 XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr
215 writer,
216 const xmlChar * name,
217 const xmlChar *
218 content);
Daniel Veillardab69f362004-02-17 11:40:32 +0000219 XMLPUBFUN int XMLCALL
220 xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer,
221 const xmlChar * prefix,
222 const xmlChar * name,
223 const xmlChar * namespaceURI,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000224 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000225 LIBXML_ATTR_FORMAT(5,6);
Daniel Veillardab69f362004-02-17 11:40:32 +0000226 XMLPUBFUN int XMLCALL
227 xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer,
228 const xmlChar * prefix,
229 const xmlChar * name,
230 const xmlChar * namespaceURI,
231 const char *format,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000232 va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000233 LIBXML_ATTR_FORMAT(5,0);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000234 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);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000244
245/*
246 * PI's
247 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000248 XMLPUBFUN int XMLCALL
249 xmlTextWriterStartPI(xmlTextWriterPtr writer,
250 const xmlChar * target);
251 XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000252
253/*
254 * PI conveniency functions
255 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000256 XMLPUBFUN int XMLCALL
257 xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer,
258 const xmlChar * target,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000259 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000260 LIBXML_ATTR_FORMAT(3,4);
Daniel Veillardab69f362004-02-17 11:40:32 +0000261 XMLPUBFUN int XMLCALL
262 xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer,
263 const xmlChar * target,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000264 const char *format, va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000265 LIBXML_ATTR_FORMAT(3,0);
Daniel Veillardab69f362004-02-17 11:40:32 +0000266 XMLPUBFUN int XMLCALL
267 xmlTextWriterWritePI(xmlTextWriterPtr writer,
268 const xmlChar * target,
269 const xmlChar * content);
270
Daniel Veillard1e906612003-12-05 14:57:46 +0000271/**
272 * xmlTextWriterWriteProcessingInstruction:
273 *
274 * This macro maps to xmlTextWriterWritePI
275 */
Daniel Veillard1d211e22003-10-20 22:32:39 +0000276#define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI
277
278/*
279 * CDATA
280 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000281 XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer);
282 XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000283
284/*
285 * CDATA conveniency functions
286 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000287 XMLPUBFUN int XMLCALL
288 xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000289 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000290 LIBXML_ATTR_FORMAT(2,3);
Daniel Veillardab69f362004-02-17 11:40:32 +0000291 XMLPUBFUN int XMLCALL
292 xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000293 const char *format, va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000294 LIBXML_ATTR_FORMAT(2,0);
Daniel Veillardab69f362004-02-17 11:40:32 +0000295 XMLPUBFUN int XMLCALL
296 xmlTextWriterWriteCDATA(xmlTextWriterPtr writer,
297 const xmlChar * content);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000298
299/*
300 * DTD
301 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000302 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);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000308
309/*
310 * DTD conveniency functions
311 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000312 XMLPUBFUN int XMLCALL
313 xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer,
314 const xmlChar * name,
315 const xmlChar * pubid,
316 const xmlChar * sysid,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000317 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000318 LIBXML_ATTR_FORMAT(5,6);
Daniel Veillardab69f362004-02-17 11:40:32 +0000319 XMLPUBFUN int XMLCALL
320 xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer,
321 const xmlChar * name,
322 const xmlChar * pubid,
323 const xmlChar * sysid,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000324 const char *format, va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000325 LIBXML_ATTR_FORMAT(5,0);
Daniel Veillardab69f362004-02-17 11:40:32 +0000326 XMLPUBFUN int XMLCALL
327 xmlTextWriterWriteDTD(xmlTextWriterPtr writer,
328 const xmlChar * name,
329 const xmlChar * pubid,
330 const xmlChar * sysid,
331 const xmlChar * subset);
332
Daniel Veillard1e906612003-12-05 14:57:46 +0000333/**
334 * xmlTextWriterWriteDocType:
335 *
336 * this macro maps to xmlTextWriterWriteDTD
337 */
Daniel Veillard1d211e22003-10-20 22:32:39 +0000338#define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
339
340/*
341 * DTD element definition
342 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000343 XMLPUBFUN int XMLCALL
344 xmlTextWriterStartDTDElement(xmlTextWriterPtr writer,
345 const xmlChar * name);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000346 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr
347 writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000348
349/*
350 * DTD element definition conveniency functions
351 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000352 XMLPUBFUN int XMLCALL
353 xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
354 const xmlChar * name,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000355 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000356 LIBXML_ATTR_FORMAT(3,4);
Daniel Veillardab69f362004-02-17 11:40:32 +0000357 XMLPUBFUN int XMLCALL
358 xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,
359 const xmlChar * name,
360 const char *format,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000361 va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000362 LIBXML_ATTR_FORMAT(3,0);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000363 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr
364 writer,
365 const xmlChar *
366 name,
367 const xmlChar *
368 content);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000369
370/*
371 * DTD attribute list definition
372 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000373 XMLPUBFUN int XMLCALL
374 xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer,
375 const xmlChar * name);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000376 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr
377 writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000378
379/*
380 * DTD attribute list definition conveniency functions
381 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000382 XMLPUBFUN int XMLCALL
383 xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
384 const xmlChar * name,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000385 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000386 LIBXML_ATTR_FORMAT(3,4);
Daniel Veillardab69f362004-02-17 11:40:32 +0000387 XMLPUBFUN int XMLCALL
388 xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,
389 const xmlChar * name,
390 const char *format,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000391 va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000392 LIBXML_ATTR_FORMAT(3,0);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000393 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr
394 writer,
395 const xmlChar *
396 name,
397 const xmlChar *
398 content);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000399
400/*
401 * DTD entity definition
402 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000403 XMLPUBFUN int XMLCALL
404 xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer,
Daniel Veillard5841f0e2003-11-20 11:59:09 +0000405 int pe, const xmlChar * name);
Daniel Veillard500a1de2004-03-22 15:22:58 +0000406 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr
407 writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000408
409/*
410 * DTD entity definition conveniency functions
411 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000412 XMLPUBFUN int XMLCALL
413 xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
414 int pe,
415 const xmlChar * name,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000416 const char *format, ...)
Daniel Veillardf076f342009-04-15 09:20:25 +0000417 LIBXML_ATTR_FORMAT(4,5);
Daniel Veillardab69f362004-02-17 11:40:32 +0000418 XMLPUBFUN int XMLCALL
419 xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer,
420 int pe,
421 const xmlChar * name,
422 const char *format,
Daniel Veillardf63085d2009-01-18 20:53:59 +0000423 va_list argptr)
Daniel Veillardf076f342009-04-15 09:20:25 +0000424 LIBXML_ATTR_FORMAT(4,0);
Daniel Veillardab69f362004-02-17 11:40:32 +0000425 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
Daniel Veillard500a1de2004-03-22 15:22:58 +0000438 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);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000455
456/*
457 * DTD notation definition
458 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000459 XMLPUBFUN int XMLCALL
460 xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer,
461 const xmlChar * name,
462 const xmlChar * pubid,
463 const xmlChar * sysid);
464
Daniel Veillard2cca4462004-01-02 20:04:23 +0000465/*
466 * Indentation
467 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000468 XMLPUBFUN int XMLCALL
469 xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent);
470 XMLPUBFUN int XMLCALL
471 xmlTextWriterSetIndentString(xmlTextWriterPtr writer,
472 const xmlChar * str);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000473
474/*
475 * misc
476 */
Daniel Veillardab69f362004-02-17 11:40:32 +0000477 XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000478
479#ifdef __cplusplus
480}
481#endif
Daniel Veillarda2351322004-06-27 12:08:10 +0000482
483#endif /* LIBXML_WRITER_ENABLED */
484
Daniel Veillard1d211e22003-10-20 22:32:39 +0000485#endif /* __XML_XMLWRITER_H__ */