blob: e35e76a852dc35611178a26564c2e2cc1a803cff [file] [log] [blame]
Daniel Veillard1d211e22003-10-20 22:32:39 +00001/*
Daniel Veillardbe586972003-11-18 20:56:51 +00002 * Summary: text writing API for XML
3 * Description: text writing API for XML
Daniel Veillard1d211e22003-10-20 22:32:39 +00004 *
Daniel Veillardbe586972003-11-18 20:56:51 +00005 * Copy: See Copyright for the status of this software.
Daniel Veillard1d211e22003-10-20 22:32:39 +00006 *
Daniel Veillardbe586972003-11-18 20:56:51 +00007 * Author: Alfred Mickautsch <alfred@mickautsch.de>
Daniel Veillard1d211e22003-10-20 22:32:39 +00008 */
9
10#ifndef __XML_XMLWRITER_H__
11#define __XML_XMLWRITER_H__
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
Daniel Veillard5841f0e2003-11-20 11:59:09 +000017#include <stdarg.h>
Daniel Veillard1d211e22003-10-20 22:32:39 +000018#include <libxml/xmlIO.h>
19#include <libxml/list.h>
20
21typedef struct _xmlTextWriter xmlTextWriter;
22typedef xmlTextWriter *xmlTextWriterPtr;
23
24/*
25 * Constructors & Destructor
26 */
27XMLPUBFUN xmlTextWriterPtr XMLCALL
28 xmlNewTextWriter (xmlOutputBufferPtr out);
29XMLPUBFUN xmlTextWriterPtr XMLCALL
Daniel Veillard5841f0e2003-11-20 11:59:09 +000030 xmlNewTextWriterFilename(const char *uri, int compression);
Daniel Veillard1d211e22003-10-20 22:32:39 +000031XMLPUBFUN xmlTextWriterPtr XMLCALL
Daniel Veillard5841f0e2003-11-20 11:59:09 +000032 xmlNewTextWriterMemory(xmlBufferPtr buf, int compression);
Daniel Veillard6cbd6c02003-12-04 12:31:49 +000033XMLPUBFUN xmlTextWriterPtr XMLCALL
Daniel Veillard5841f0e2003-11-20 11:59:09 +000034 xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression);
Daniel Veillard6cbd6c02003-12-04 12:31:49 +000035XMLPUBFUN xmlTextWriterPtr XMLCALL
Daniel Veillard5841f0e2003-11-20 11:59:09 +000036 xmlNewTextWriterDoc(xmlDocPtr * doc, int compression);
Daniel Veillard6cbd6c02003-12-04 12:31:49 +000037XMLPUBFUN xmlTextWriterPtr XMLCALL
Daniel Veillard5841f0e2003-11-20 11:59:09 +000038 xmlNewTextWriterTree(xmlDocPtr doc,
39 xmlNodePtr node, int compression);
Daniel Veillard6cbd6c02003-12-04 12:31:49 +000040XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +000041
42/*
43 * Functions
44 */
45
46
47/*
48 * Document
49 */
50XMLPUBFUN int XMLCALL
51 xmlTextWriterStartDocument (xmlTextWriterPtr writer,
52 const char *version,
53 const char *encoding,
54 const char *standalone);
55XMLPUBFUN int XMLCALL
56 xmlTextWriterEndDocument (xmlTextWriterPtr writer);
57
58/*
59 * Comments
60 */
61XMLPUBFUN int XMLCALL
62 xmlTextWriterWriteFormatComment (xmlTextWriterPtr writer,
63 const char *format, ...);
64XMLPUBFUN int XMLCALL
65 xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,
66 const char *format,
67 va_list argptr);
68XMLPUBFUN int XMLCALL
69 xmlTextWriterWriteComment (xmlTextWriterPtr writer,
70 const xmlChar * content);
71
72/*
73 * Elements
74 */
75XMLPUBFUN int XMLCALL
76 xmlTextWriterStartElement (xmlTextWriterPtr writer,
77 const xmlChar * name);
78XMLPUBFUN int XMLCALL
79 xmlTextWriterStartElementNS (xmlTextWriterPtr writer,
80 const xmlChar * prefix,
81 const xmlChar * name,
82 const xmlChar * namespaceURI);
Daniel Veillard5841f0e2003-11-20 11:59:09 +000083 XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +000084XMLPUBFUN int XMLCALL
85 xmlTextWriterFullEndElement (xmlTextWriterPtr writer);
86
87/*
88 * Elements conveniency functions
89 */
90XMLPUBFUN int XMLCALL
91 xmlTextWriterWriteFormatElement (xmlTextWriterPtr writer,
92 const xmlChar * name,
93 const char *format, ...);
94XMLPUBFUN int XMLCALL
95 xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,
96 const xmlChar * name,
97 const char *format,
98 va_list argptr);
99XMLPUBFUN int XMLCALL
100 xmlTextWriterWriteElement (xmlTextWriterPtr writer,
101 const xmlChar * name,
102 const xmlChar * content);
103XMLPUBFUN int XMLCALL
104 xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer,
105 const xmlChar * prefix,
106 const xmlChar * name,
107 const xmlChar * namespaceURI,
108 const char *format, ...);
109XMLPUBFUN int XMLCALL
110 xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer,
111 const xmlChar * prefix,
112 const xmlChar * name,
113 const xmlChar * namespaceURI,
114 const char *format,
115 va_list argptr);
116XMLPUBFUN int XMLCALL
117 xmlTextWriterWriteElementNS (xmlTextWriterPtr writer,
118 const xmlChar * prefix,
119 const xmlChar * name,
120 const xmlChar * namespaceURI,
121 const xmlChar * content);
122
123/*
124 * Text
125 */
126XMLPUBFUN int XMLCALL
127 xmlTextWriterWriteFormatRaw (xmlTextWriterPtr writer,
128 const char *format, ...);
129XMLPUBFUN int XMLCALL
130 xmlTextWriterWriteVFormatRaw (xmlTextWriterPtr writer,
Daniel Veillard5841f0e2003-11-20 11:59:09 +0000131 const char *format, va_list argptr);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000132XMLPUBFUN int XMLCALL
133 xmlTextWriterWriteRawLen (xmlTextWriterPtr writer,
Daniel Veillard5841f0e2003-11-20 11:59:09 +0000134 const xmlChar * content, int len);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000135XMLPUBFUN int XMLCALL
136 xmlTextWriterWriteRaw (xmlTextWriterPtr writer,
137 const xmlChar * content);
138XMLPUBFUN int XMLCALL
139 xmlTextWriterWriteFormatString (xmlTextWriterPtr writer,
140 const char *format, ...);
141XMLPUBFUN int XMLCALL
142 xmlTextWriterWriteVFormatString (xmlTextWriterPtr writer,
143 const char *format,
144 va_list argptr);
145XMLPUBFUN int XMLCALL
146 xmlTextWriterWriteString (xmlTextWriterPtr writer,
147 const xmlChar * content);
148XMLPUBFUN int XMLCALL
149 xmlTextWriterWriteBase64 (xmlTextWriterPtr writer,
Daniel Veillard5841f0e2003-11-20 11:59:09 +0000150 const char *data, int start, int len);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000151XMLPUBFUN int XMLCALL
152 xmlTextWriterWriteBinHex (xmlTextWriterPtr writer,
Daniel Veillard5841f0e2003-11-20 11:59:09 +0000153 const char *data, int start, int len);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000154
155/*
156 * Attributes
157 */
158XMLPUBFUN int XMLCALL
159 xmlTextWriterStartAttribute (xmlTextWriterPtr writer,
160 const xmlChar * name);
161XMLPUBFUN int XMLCALL
162 xmlTextWriterStartAttributeNS (xmlTextWriterPtr writer,
163 const xmlChar * prefix,
164 const xmlChar * name,
165 const xmlChar * namespaceURI);
166XMLPUBFUN int XMLCALL
167 xmlTextWriterEndAttribute (xmlTextWriterPtr writer);
168
169/*
170 * Attributes conveniency functions
171 */
172XMLPUBFUN int XMLCALL
173 xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
174 const xmlChar * name,
175 const char *format, ...);
176XMLPUBFUN int XMLCALL
177 xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,
178 const xmlChar * name,
179 const char *format,
180 va_list argptr);
181XMLPUBFUN int XMLCALL
182 xmlTextWriterWriteAttribute (xmlTextWriterPtr writer,
183 const xmlChar * name,
184 const xmlChar * content);
185XMLPUBFUN int XMLCALL
186 xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer,
187 const xmlChar * prefix,
188 const xmlChar * name,
189 const xmlChar * namespaceURI,
190 const char *format, ...);
191XMLPUBFUN int XMLCALL
192 xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer,
193 const xmlChar * prefix,
194 const xmlChar * name,
195 const xmlChar * namespaceURI,
196 const char *format,
197 va_list argptr);
198XMLPUBFUN int XMLCALL
199 xmlTextWriterWriteAttributeNS (xmlTextWriterPtr writer,
200 const xmlChar * prefix,
201 const xmlChar * name,
202 const xmlChar * namespaceURI,
203 const xmlChar * content);
204
205/*
206 * PI's
207 */
208XMLPUBFUN int XMLCALL
209 xmlTextWriterStartPI (xmlTextWriterPtr writer,
210 const xmlChar * target);
Daniel Veillard6cbd6c02003-12-04 12:31:49 +0000211XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000212
213/*
214 * PI conveniency functions
215 */
216XMLPUBFUN int XMLCALL
217 xmlTextWriterWriteFormatPI (xmlTextWriterPtr writer,
218 const xmlChar * target,
219 const char *format, ...);
220XMLPUBFUN int XMLCALL
221 xmlTextWriterWriteVFormatPI (xmlTextWriterPtr writer,
222 const xmlChar * target,
Daniel Veillard5841f0e2003-11-20 11:59:09 +0000223 const char *format, va_list argptr);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000224XMLPUBFUN int XMLCALL
225 xmlTextWriterWritePI (xmlTextWriterPtr writer,
226 const xmlChar * target,
227 const xmlChar * content);
228#define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI
229
230/*
231 * CDATA
232 */
Daniel Veillard6cbd6c02003-12-04 12:31:49 +0000233XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer);
234XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000235
236/*
237 * CDATA conveniency functions
238 */
239XMLPUBFUN int XMLCALL
240 xmlTextWriterWriteFormatCDATA (xmlTextWriterPtr writer,
241 const char *format, ...);
242XMLPUBFUN int XMLCALL
243 xmlTextWriterWriteVFormatCDATA (xmlTextWriterPtr writer,
Daniel Veillard5841f0e2003-11-20 11:59:09 +0000244 const char *format, va_list argptr);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000245XMLPUBFUN int XMLCALL
246 xmlTextWriterWriteCDATA (xmlTextWriterPtr writer,
247 const xmlChar * content);
248
249/*
250 * DTD
251 */
252XMLPUBFUN int XMLCALL
253 xmlTextWriterStartDTD (xmlTextWriterPtr writer,
254 const xmlChar * name,
255 const xmlChar * pubid,
256 const xmlChar * sysid);
Daniel Veillard6cbd6c02003-12-04 12:31:49 +0000257XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000258
259/*
260 * DTD conveniency functions
261 */
262XMLPUBFUN int XMLCALL
263 xmlTextWriterWriteFormatDTD (xmlTextWriterPtr writer,
264 const xmlChar * name,
265 const xmlChar * pubid,
266 const xmlChar * sysid,
267 const char *format, ...);
268XMLPUBFUN int XMLCALL
269 xmlTextWriterWriteVFormatDTD (xmlTextWriterPtr writer,
270 const xmlChar * name,
271 const xmlChar * pubid,
272 const xmlChar * sysid,
Daniel Veillard5841f0e2003-11-20 11:59:09 +0000273 const char *format, va_list argptr);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000274XMLPUBFUN int XMLCALL
275 xmlTextWriterWriteDTD (xmlTextWriterPtr writer,
276 const xmlChar * name,
277 const xmlChar * pubid,
278 const xmlChar * sysid,
279 const xmlChar * subset);
280#define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
281
282/*
283 * DTD element definition
284 */
285XMLPUBFUN int XMLCALL
286 xmlTextWriterStartDTDElement (xmlTextWriterPtr writer,
287 const xmlChar * name);
288#define xmlTextWriterEndDTDElement xmlTextWriterEndDTD
289
290/*
291 * DTD element definition conveniency functions
292 */
293XMLPUBFUN int XMLCALL
294 xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
295 const xmlChar * name,
296 const char *format, ...);
297XMLPUBFUN int XMLCALL
298 xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,
299 const xmlChar * name,
300 const char *format,
301 va_list argptr);
302XMLPUBFUN int XMLCALL
303 xmlTextWriterWriteDTDElement (xmlTextWriterPtr writer,
304 const xmlChar * name,
305 const xmlChar * content);
306
307/*
308 * DTD attribute list definition
309 */
310XMLPUBFUN int XMLCALL
311 xmlTextWriterStartDTDAttlist (xmlTextWriterPtr writer,
312 const xmlChar * name);
313#define xmlTextWriterEndDTDAttlist xmlTextWriterEndDTD
314
315/*
316 * DTD attribute list definition conveniency functions
317 */
318XMLPUBFUN int XMLCALL
319 xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
320 const xmlChar * name,
321 const char *format, ...);
322XMLPUBFUN int XMLCALL
323 xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,
324 const xmlChar * name,
325 const char *format,
326 va_list argptr);
327XMLPUBFUN int XMLCALL
328 xmlTextWriterWriteDTDAttlist (xmlTextWriterPtr writer,
329 const xmlChar * name,
330 const xmlChar * content);
331
332/*
333 * DTD entity definition
334 */
335XMLPUBFUN int XMLCALL
336 xmlTextWriterStartDTDEntity (xmlTextWriterPtr writer,
Daniel Veillard5841f0e2003-11-20 11:59:09 +0000337 int pe, const xmlChar * name);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000338#define xmlTextWriterEndDTDEntity xmlTextWriterEndDTD
339
340/*
341 * DTD entity definition conveniency functions
342 */
343XMLPUBFUN int XMLCALL
344 xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
345 int pe,
346 const xmlChar * name,
347 const char *format, ...);
348XMLPUBFUN int XMLCALL
349 xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer,
350 int pe,
351 const xmlChar * name,
352 const char *format,
353 va_list argptr);
354XMLPUBFUN int XMLCALL
355 xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer,
356 int pe,
357 const xmlChar * name,
358 const xmlChar * content);
359XMLPUBFUN int XMLCALL
360 xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer,
361 int pe,
362 const xmlChar * name,
363 const xmlChar * pubid,
364 const xmlChar * sysid,
365 const xmlChar * ndataid);
366XMLPUBFUN int XMLCALL
367 xmlTextWriterWriteDTDEntity (xmlTextWriterPtr writer,
368 int pe,
369 const xmlChar * name,
370 const xmlChar * pubid,
371 const xmlChar * sysid,
372 const xmlChar * ndataid,
373 const xmlChar * content);
374
375/*
376 * DTD notation definition
377 */
378XMLPUBFUN int XMLCALL
379 xmlTextWriterWriteDTDNotation (xmlTextWriterPtr writer,
380 const xmlChar * name,
381 const xmlChar * pubid,
382 const xmlChar * sysid);
383
384/*
385 * misc
386 */
Daniel Veillard6cbd6c02003-12-04 12:31:49 +0000387XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer);
Daniel Veillard1d211e22003-10-20 22:32:39 +0000388
389#ifdef __cplusplus
390}
391#endif
392#endif /* __XML_XMLWRITER_H__ */