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 (xmlTextWriterPtr |
67 | writer); |
68 | XMLPUBFUN int XMLCALL (xmlTextWriterPtr writer); |
69 | XMLPUBFUN int XMLCALL |
70 | (xmlTextWriterPtr writer, |
71 | const char *format, ...) |
72 | LIBXML_ATTR_FORMAT(2,3); |
73 | XMLPUBFUN int XMLCALL |
74 | (xmlTextWriterPtr writer, |
75 | const char *format, |
76 | va_list argptr) |
77 | LIBXML_ATTR_FORMAT(2,0); |
78 | XMLPUBFUN int XMLCALL (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__ */ |
489 | |