xmlwriter.h revision 1b7783879f7122564e209c7124301e886079f393
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 XMLPUBFUN int XMLCALL 74 xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer, 75 const char *format, 76 va_list argptr); 77 XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr 78 writer, 79 const xmlChar * 80 content); 81 82/* 83 * Elements 84 */ 85 XMLPUBFUN int XMLCALL 86 xmlTextWriterStartElement(xmlTextWriterPtr writer, 87 const xmlChar * name); 88 XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr 89 writer, 90 const xmlChar * 91 prefix, 92 const xmlChar * name, 93 const xmlChar * 94 namespaceURI); 95 XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer); 96 XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr 97 writer); 98 99/* 100 * Elements conveniency functions 101 */ 102 XMLPUBFUN int XMLCALL 103 xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer, 104 const xmlChar * name, 105 const char *format, ...); 106 XMLPUBFUN int XMLCALL 107 xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer, 108 const xmlChar * name, 109 const char *format, 110 va_list argptr); 111 XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr 112 writer, 113 const xmlChar * name, 114 const xmlChar * 115 content); 116 XMLPUBFUN int XMLCALL 117 xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer, 118 const xmlChar * prefix, 119 const xmlChar * name, 120 const xmlChar * namespaceURI, 121 const char *format, ...); 122 XMLPUBFUN int XMLCALL 123 xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer, 124 const xmlChar * prefix, 125 const xmlChar * name, 126 const xmlChar * namespaceURI, 127 const char *format, 128 va_list argptr); 129 XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr 130 writer, 131 const xmlChar * 132 prefix, 133 const xmlChar * name, 134 const xmlChar * 135 namespaceURI, 136 const xmlChar * 137 content); 138 139/* 140 * Text 141 */ 142 XMLPUBFUN int XMLCALL 143 xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer, 144 const char *format, ...); 145 XMLPUBFUN int XMLCALL 146 xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer, 147 const char *format, va_list argptr); 148 XMLPUBFUN int XMLCALL 149 xmlTextWriterWriteRawLen(xmlTextWriterPtr writer, 150 const xmlChar * content, int len); 151 XMLPUBFUN int XMLCALL 152 xmlTextWriterWriteRaw(xmlTextWriterPtr writer, 153 const xmlChar * content); 154 XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr 155 writer, 156 const char 157 *format, ...); 158 XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr 159 writer, 160 const char 161 *format, 162 va_list argptr); 163 XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer, 164 const xmlChar * 165 content); 166 XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer, 167 const char *data, 168 int start, int len); 169 XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer, 170 const char *data, 171 int start, int len); 172 173/* 174 * Attributes 175 */ 176 XMLPUBFUN int XMLCALL 177 xmlTextWriterStartAttribute(xmlTextWriterPtr writer, 178 const xmlChar * name); 179 XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr 180 writer, 181 const xmlChar * 182 prefix, 183 const xmlChar * 184 name, 185 const xmlChar * 186 namespaceURI); 187 XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr 188 writer); 189 190/* 191 * Attributes conveniency functions 192 */ 193 XMLPUBFUN int XMLCALL 194 xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer, 195 const xmlChar * name, 196 const char *format, ...); 197 XMLPUBFUN int XMLCALL 198 xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer, 199 const xmlChar * name, 200 const char *format, 201 va_list argptr); 202 XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr 203 writer, 204 const xmlChar * name, 205 const xmlChar * 206 content); 207 XMLPUBFUN int XMLCALL 208 xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer, 209 const xmlChar * prefix, 210 const xmlChar * name, 211 const xmlChar * namespaceURI, 212 const char *format, ...); 213 XMLPUBFUN int XMLCALL 214 xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer, 215 const xmlChar * prefix, 216 const xmlChar * name, 217 const xmlChar * namespaceURI, 218 const char *format, 219 va_list argptr); 220 XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr 221 writer, 222 const xmlChar * 223 prefix, 224 const xmlChar * 225 name, 226 const xmlChar * 227 namespaceURI, 228 const xmlChar * 229 content); 230 231/* 232 * PI's 233 */ 234 XMLPUBFUN int XMLCALL 235 xmlTextWriterStartPI(xmlTextWriterPtr writer, 236 const xmlChar * target); 237 XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer); 238 239/* 240 * PI conveniency functions 241 */ 242 XMLPUBFUN int XMLCALL 243 xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer, 244 const xmlChar * target, 245 const char *format, ...); 246 XMLPUBFUN int XMLCALL 247 xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer, 248 const xmlChar * target, 249 const char *format, va_list argptr); 250 XMLPUBFUN int XMLCALL 251 xmlTextWriterWritePI(xmlTextWriterPtr writer, 252 const xmlChar * target, 253 const xmlChar * content); 254 255/** 256 * xmlTextWriterWriteProcessingInstruction: 257 * 258 * This macro maps to xmlTextWriterWritePI 259 */ 260#define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI 261 262/* 263 * CDATA 264 */ 265 XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer); 266 XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer); 267 268/* 269 * CDATA conveniency functions 270 */ 271 XMLPUBFUN int XMLCALL 272 xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer, 273 const char *format, ...); 274 XMLPUBFUN int XMLCALL 275 xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer, 276 const char *format, va_list argptr); 277 XMLPUBFUN int XMLCALL 278 xmlTextWriterWriteCDATA(xmlTextWriterPtr writer, 279 const xmlChar * content); 280 281/* 282 * DTD 283 */ 284 XMLPUBFUN int XMLCALL 285 xmlTextWriterStartDTD(xmlTextWriterPtr writer, 286 const xmlChar * name, 287 const xmlChar * pubid, 288 const xmlChar * sysid); 289 XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer); 290 291/* 292 * DTD conveniency functions 293 */ 294 XMLPUBFUN int XMLCALL 295 xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer, 296 const xmlChar * name, 297 const xmlChar * pubid, 298 const xmlChar * sysid, 299 const char *format, ...); 300 XMLPUBFUN int XMLCALL 301 xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer, 302 const xmlChar * name, 303 const xmlChar * pubid, 304 const xmlChar * sysid, 305 const char *format, va_list argptr); 306 XMLPUBFUN int XMLCALL 307 xmlTextWriterWriteDTD(xmlTextWriterPtr writer, 308 const xmlChar * name, 309 const xmlChar * pubid, 310 const xmlChar * sysid, 311 const xmlChar * subset); 312 313/** 314 * xmlTextWriterWriteDocType: 315 * 316 * this macro maps to xmlTextWriterWriteDTD 317 */ 318#define xmlTextWriterWriteDocType xmlTextWriterWriteDTD 319 320/* 321 * DTD element definition 322 */ 323 XMLPUBFUN int XMLCALL 324 xmlTextWriterStartDTDElement(xmlTextWriterPtr writer, 325 const xmlChar * name); 326 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr 327 writer); 328 329/* 330 * DTD element definition conveniency functions 331 */ 332 XMLPUBFUN int XMLCALL 333 xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer, 334 const xmlChar * name, 335 const char *format, ...); 336 XMLPUBFUN int XMLCALL 337 xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer, 338 const xmlChar * name, 339 const char *format, 340 va_list argptr); 341 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr 342 writer, 343 const xmlChar * 344 name, 345 const xmlChar * 346 content); 347 348/* 349 * DTD attribute list definition 350 */ 351 XMLPUBFUN int XMLCALL 352 xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer, 353 const xmlChar * name); 354 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr 355 writer); 356 357/* 358 * DTD attribute list definition conveniency functions 359 */ 360 XMLPUBFUN int XMLCALL 361 xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer, 362 const xmlChar * name, 363 const char *format, ...); 364 XMLPUBFUN int XMLCALL 365 xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer, 366 const xmlChar * name, 367 const char *format, 368 va_list argptr); 369 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr 370 writer, 371 const xmlChar * 372 name, 373 const xmlChar * 374 content); 375 376/* 377 * DTD entity definition 378 */ 379 XMLPUBFUN int XMLCALL 380 xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer, 381 int pe, const xmlChar * name); 382 XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr 383 writer); 384 385/* 386 * DTD entity definition conveniency functions 387 */ 388 XMLPUBFUN int XMLCALL 389 xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer, 390 int pe, 391 const xmlChar * name, 392 const char *format, ...); 393 XMLPUBFUN int XMLCALL 394 xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer, 395 int pe, 396 const xmlChar * name, 397 const char *format, 398 va_list argptr); 399 XMLPUBFUN int XMLCALL 400 xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer, 401 int pe, 402 const xmlChar * name, 403 const xmlChar * content); 404 XMLPUBFUN int XMLCALL 405 xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer, 406 int pe, 407 const xmlChar * name, 408 const xmlChar * pubid, 409 const xmlChar * sysid, 410 const xmlChar * ndataid); 411 XMLPUBFUN int XMLCALL 412 xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr 413 writer, 414 const xmlChar * pubid, 415 const xmlChar * sysid, 416 const xmlChar * 417 ndataid); 418 XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr 419 writer, int pe, 420 const xmlChar * name, 421 const xmlChar * 422 pubid, 423 const xmlChar * 424 sysid, 425 const xmlChar * 426 ndataid, 427 const xmlChar * 428 content); 429 430/* 431 * DTD notation definition 432 */ 433 XMLPUBFUN int XMLCALL 434 xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer, 435 const xmlChar * name, 436 const xmlChar * pubid, 437 const xmlChar * sysid); 438 439/* 440 * Indentation 441 */ 442 XMLPUBFUN int XMLCALL 443 xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent); 444 XMLPUBFUN int XMLCALL 445 xmlTextWriterSetIndentString(xmlTextWriterPtr writer, 446 const xmlChar * str); 447 448/* 449 * misc 450 */ 451 XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer); 452 453#ifdef __cplusplus 454} 455#endif 456 457#endif /* LIBXML_WRITER_ENABLED */ 458 459#endif /* __XML_XMLWRITER_H__ */ 460