codekingpro/portable-devtools
116k
1/*2 * Summary: text writing API for XML3 * Description: text writing API for XML4 *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_ENABLED16 17#include <stdarg.h>18#include <libxml/xmlIO.h>19#include <libxml/list.h>20#include <libxml/xmlstring.h>21 22#ifdef __cplusplus23extern "C" {24#endif25 26 typedef struct _xmlTextWriter xmlTextWriter;27 typedef xmlTextWriter *xmlTextWriterPtr;28 29/*30 * Constructors & Destructor31 */32 XMLPUBFUN xmlTextWriterPtr33 xmlNewTextWriter(xmlOutputBufferPtr out);34 XMLPUBFUN xmlTextWriterPtr35 xmlNewTextWriterFilename(const char *uri, int compression);36 XMLPUBFUN xmlTextWriterPtr37 xmlNewTextWriterMemory(xmlBufferPtr buf, int compression);38 XMLPUBFUN xmlTextWriterPtr39 xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression);40 XMLPUBFUN xmlTextWriterPtr41 xmlNewTextWriterDoc(xmlDocPtr * doc, int compression);42 XMLPUBFUN xmlTextWriterPtr43 xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node,44 int compression);45 XMLPUBFUN void xmlFreeTextWriter(xmlTextWriterPtr writer);46 47/*48 * Functions49 */50 51 52/*53 * Document54 */55 XMLPUBFUN int56 xmlTextWriterStartDocument(xmlTextWriterPtr writer,57 const char *version,58 const char *encoding,59 const char *standalone);60 XMLPUBFUN int xmlTextWriterEndDocument(xmlTextWriterPtr61 writer);62 63/*64 * Comments65 */66 XMLPUBFUN int xmlTextWriterStartComment(xmlTextWriterPtr67 writer);68 XMLPUBFUN int xmlTextWriterEndComment(xmlTextWriterPtr writer);69 XMLPUBFUN int70 xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,71 const char *format, ...)72 LIBXML_ATTR_FORMAT(2,3);73 XMLPUBFUN int74 xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,75 const char *format,76 va_list argptr)77 LIBXML_ATTR_FORMAT(2,0);78 XMLPUBFUN int xmlTextWriterWriteComment(xmlTextWriterPtr79 writer,80 const xmlChar *81 content);82 83/*84 * Elements85 */86 XMLPUBFUN int87 xmlTextWriterStartElement(xmlTextWriterPtr writer,88 const xmlChar * name);89 XMLPUBFUN int xmlTextWriterStartElementNS(xmlTextWriterPtr90 writer,91 const xmlChar *92 prefix,93 const xmlChar * name,94 const xmlChar *95 namespaceURI);96 XMLPUBFUN int xmlTextWriterEndElement(xmlTextWriterPtr writer);97 XMLPUBFUN int xmlTextWriterFullEndElement(xmlTextWriterPtr98 writer);99 100/*101 * Elements conveniency functions102 */103 XMLPUBFUN int104 xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,105 const xmlChar * name,106 const char *format, ...)107 LIBXML_ATTR_FORMAT(3,4);108 XMLPUBFUN int109 xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,110 const xmlChar * name,111 const char *format,112 va_list argptr)113 LIBXML_ATTR_FORMAT(3,0);114 XMLPUBFUN int xmlTextWriterWriteElement(xmlTextWriterPtr115 writer,116 const xmlChar * name,117 const xmlChar *118 content);119 XMLPUBFUN int120 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 int127 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 xmlTextWriterWriteElementNS(xmlTextWriterPtr135 writer,136 const xmlChar *137 prefix,138 const xmlChar * name,139 const xmlChar *140 namespaceURI,141 const xmlChar *142 content);143 144/*145 * Text146 */147 XMLPUBFUN int148 xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer,149 const char *format, ...)150 LIBXML_ATTR_FORMAT(2,3);151 XMLPUBFUN int152 xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer,153 const char *format, va_list argptr)154 LIBXML_ATTR_FORMAT(2,0);155 XMLPUBFUN int156 xmlTextWriterWriteRawLen(xmlTextWriterPtr writer,157 const xmlChar * content, int len);158 XMLPUBFUN int159 xmlTextWriterWriteRaw(xmlTextWriterPtr writer,160 const xmlChar * content);161 XMLPUBFUN int xmlTextWriterWriteFormatString(xmlTextWriterPtr162 writer,163 const char164 *format, ...)165 LIBXML_ATTR_FORMAT(2,3);166 XMLPUBFUN int xmlTextWriterWriteVFormatString(xmlTextWriterPtr167 writer,168 const char169 *format,170 va_list argptr)171 LIBXML_ATTR_FORMAT(2,0);172 XMLPUBFUN int xmlTextWriterWriteString(xmlTextWriterPtr writer,173 const xmlChar *174 content);175 XMLPUBFUN int xmlTextWriterWriteBase64(xmlTextWriterPtr writer,176 const char *data,177 int start, int len);178 XMLPUBFUN int xmlTextWriterWriteBinHex(xmlTextWriterPtr writer,179 const char *data,180 int start, int len);181 182/*183 * Attributes184 */185 XMLPUBFUN int186 xmlTextWriterStartAttribute(xmlTextWriterPtr writer,187 const xmlChar * name);188 XMLPUBFUN int xmlTextWriterStartAttributeNS(xmlTextWriterPtr189 writer,190 const xmlChar *191 prefix,192 const xmlChar *193 name,194 const xmlChar *195 namespaceURI);196 XMLPUBFUN int xmlTextWriterEndAttribute(xmlTextWriterPtr197 writer);198 199/*200 * Attributes conveniency functions201 */202 XMLPUBFUN int203 xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,204 const xmlChar * name,205 const char *format, ...)206 LIBXML_ATTR_FORMAT(3,4);207 XMLPUBFUN int208 xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,209 const xmlChar * name,210 const char *format,211 va_list argptr)212 LIBXML_ATTR_FORMAT(3,0);213 XMLPUBFUN int xmlTextWriterWriteAttribute(xmlTextWriterPtr214 writer,215 const xmlChar * name,216 const xmlChar *217 content);218 XMLPUBFUN int219 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 int226 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 xmlTextWriterWriteAttributeNS(xmlTextWriterPtr234 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's246 */247 XMLPUBFUN int248 xmlTextWriterStartPI(xmlTextWriterPtr writer,249 const xmlChar * target);250 XMLPUBFUN int xmlTextWriterEndPI(xmlTextWriterPtr writer);251 252/*253 * PI conveniency functions254 */255 XMLPUBFUN int256 xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer,257 const xmlChar * target,258 const char *format, ...)259 LIBXML_ATTR_FORMAT(3,4);260 XMLPUBFUN int261 xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer,262 const xmlChar * target,263 const char *format, va_list argptr)264 LIBXML_ATTR_FORMAT(3,0);265 XMLPUBFUN int266 xmlTextWriterWritePI(xmlTextWriterPtr writer,267 const xmlChar * target,268 const xmlChar * content);269 270/**271 * xmlTextWriterWriteProcessingInstruction:272 *273 * This macro maps to xmlTextWriterWritePI274 */275#define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI276 277/*278 * CDATA279 */280 XMLPUBFUN int xmlTextWriterStartCDATA(xmlTextWriterPtr writer);281 XMLPUBFUN int xmlTextWriterEndCDATA(xmlTextWriterPtr writer);282 283/*284 * CDATA conveniency functions285 */286 XMLPUBFUN int287 xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer,288 const char *format, ...)289 LIBXML_ATTR_FORMAT(2,3);290 XMLPUBFUN int291 xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer,292 const char *format, va_list argptr)293 LIBXML_ATTR_FORMAT(2,0);294 XMLPUBFUN int295 xmlTextWriterWriteCDATA(xmlTextWriterPtr writer,296 const xmlChar * content);297 298/*299 * DTD300 */301 XMLPUBFUN int302 xmlTextWriterStartDTD(xmlTextWriterPtr writer,303 const xmlChar * name,304 const xmlChar * pubid,305 const xmlChar * sysid);306 XMLPUBFUN int xmlTextWriterEndDTD(xmlTextWriterPtr writer);307 308/*309 * DTD conveniency functions310 */311 XMLPUBFUN int312 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 int319 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 int326 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 xmlTextWriterWriteDTD336 */337#define xmlTextWriterWriteDocType xmlTextWriterWriteDTD338 339/*340 * DTD element definition341 */342 XMLPUBFUN int343 xmlTextWriterStartDTDElement(xmlTextWriterPtr writer,344 const xmlChar * name);345 XMLPUBFUN int xmlTextWriterEndDTDElement(xmlTextWriterPtr346 writer);347 348/*349 * DTD element definition conveniency functions350 */351 XMLPUBFUN int352 xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,353 const xmlChar * name,354 const char *format, ...)355 LIBXML_ATTR_FORMAT(3,4);356 XMLPUBFUN int357 xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,358 const xmlChar * name,359 const char *format,360 va_list argptr)361 LIBXML_ATTR_FORMAT(3,0);362 XMLPUBFUN int xmlTextWriterWriteDTDElement(xmlTextWriterPtr363 writer,364 const xmlChar *365 name,366 const xmlChar *367 content);368 369/*370 * DTD attribute list definition371 */372 XMLPUBFUN int373 xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer,374 const xmlChar * name);375 XMLPUBFUN int xmlTextWriterEndDTDAttlist(xmlTextWriterPtr376 writer);377 378/*379 * DTD attribute list definition conveniency functions380 */381 XMLPUBFUN int382 xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,383 const xmlChar * name,384 const char *format, ...)385 LIBXML_ATTR_FORMAT(3,4);386 XMLPUBFUN int387 xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,388 const xmlChar * name,389 const char *format,390 va_list argptr)391 LIBXML_ATTR_FORMAT(3,0);392 XMLPUBFUN int xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr393 writer,394 const xmlChar *395 name,396 const xmlChar *397 content);398 399/*400 * DTD entity definition401 */402 XMLPUBFUN int403 xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer,404 int pe, const xmlChar * name);405 XMLPUBFUN int xmlTextWriterEndDTDEntity(xmlTextWriterPtr406 writer);407 408/*409 * DTD entity definition conveniency functions410 */411 XMLPUBFUN int412 xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,413 int pe,414 const xmlChar * name,415 const char *format, ...)416 LIBXML_ATTR_FORMAT(4,5);417 XMLPUBFUN int418 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 int425 xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer,426 int pe,427 const xmlChar * name,428 const xmlChar * content);429 XMLPUBFUN int430 xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer,431 int pe,432 const xmlChar * name,433 const xmlChar * pubid,434 const xmlChar * sysid,435 const xmlChar * ndataid);436 XMLPUBFUN int437 xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr438 writer,439 const xmlChar * pubid,440 const xmlChar * sysid,441 const xmlChar *442 ndataid);443 XMLPUBFUN int xmlTextWriterWriteDTDEntity(xmlTextWriterPtr444 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 definition457 */458 XMLPUBFUN int459 xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer,460 const xmlChar * name,461 const xmlChar * pubid,462 const xmlChar * sysid);463 464/*465 * Indentation466 */467 XMLPUBFUN int468 xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent);469 XMLPUBFUN int470 xmlTextWriterSetIndentString(xmlTextWriterPtr writer,471 const xmlChar * str);472 473 XMLPUBFUN int474 xmlTextWriterSetQuoteChar(xmlTextWriterPtr writer, xmlChar quotechar);475 476 477/*478 * misc479 */480 XMLPUBFUN int xmlTextWriterFlush(xmlTextWriterPtr writer);481 482#ifdef __cplusplus483}484#endif485 486#endif /* LIBXML_WRITER_ENABLED */487 488#endif /* __XML_XMLWRITER_H__ */489 