williamr@4: /* williamr@4: * Summary: text writing API for XML williamr@4: * Description: text writing API for XML williamr@4: * williamr@4: * Copy: See Copyright for the status of this software. williamr@4: * williamr@4: * Author: Alfred Mickautsch williamr@4: * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. williamr@4: */ williamr@4: williamr@4: /** @file williamr@4: @publishedAll williamr@4: @released williamr@4: */ williamr@4: williamr@4: #ifndef XML_XMLWRITER_H williamr@4: #define XML_XMLWRITER_H williamr@4: williamr@4: #include williamr@4: #include williamr@4: #include williamr@4: #include williamr@4: williamr@4: #ifdef LIBXML_WRITER_ENABLED williamr@4: williamr@4: #ifdef __cplusplus williamr@4: extern "C" { williamr@4: #endif williamr@4: williamr@4: typedef struct _xmlTextWriter xmlTextWriter; williamr@4: typedef xmlTextWriter *xmlTextWriterPtr; williamr@4: // Moved from Libxml2_xmlwriter.cpp williamr@4: struct _xmlTextWriter { williamr@4: xmlOutputBufferPtr out; /* output buffer */ williamr@4: xmlListPtr nodes; /* element name stack */ williamr@4: xmlListPtr nsstack; /* name spaces stack */ williamr@4: int level; williamr@4: int indent; /* enable indent */ williamr@4: int doindent; /* internal indent flag */ williamr@4: xmlChar *ichar; /* indent character */ williamr@4: char qchar; /* character used for quoting attribute values */ williamr@4: xmlParserCtxtPtr ctxt; williamr@4: }; williamr@4: williamr@4: /* williamr@4: * Constructors & Destructor williamr@4: */ williamr@4: XMLPUBFUN xmlTextWriterPtr XMLCALL williamr@4: xmlNewTextWriter(xmlOutputBufferPtr out); williamr@4: XMLPUBFUN xmlTextWriterPtr XMLCALL williamr@4: xmlNewTextWriterFilename(const char *uri, int compression); williamr@4: XMLPUBFUN xmlTextWriterPtr XMLCALL williamr@4: xmlNewTextWriterMemory(xmlBufferPtr buf, int compression); williamr@4: XMLPUBFUN xmlTextWriterPtr XMLCALL williamr@4: xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression); williamr@4: XMLPUBFUN xmlTextWriterPtr XMLCALL williamr@4: xmlNewTextWriterDoc(xmlDocPtr * doc, int compression); williamr@4: XMLPUBFUN xmlTextWriterPtr XMLCALL williamr@4: xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node, williamr@4: int compression); williamr@4: XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer); williamr@4: williamr@4: /* williamr@4: * Functions williamr@4: */ williamr@4: williamr@4: williamr@4: /* williamr@4: * Document williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterStartDocument(xmlTextWriterPtr writer, williamr@4: const char *version, williamr@4: const char *encoding, williamr@4: const char *standalone); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr williamr@4: writer); williamr@4: williamr@4: /* williamr@4: * Comments williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr williamr@4: writer); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer, williamr@4: const char *format, williamr@4: va_list argptr); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr williamr@4: writer, williamr@4: const xmlChar * williamr@4: content); williamr@4: williamr@4: /* williamr@4: * Elements williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterStartElement(xmlTextWriterPtr writer, williamr@4: const xmlChar * name); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr williamr@4: writer, williamr@4: const xmlChar * williamr@4: prefix, williamr@4: const xmlChar * name, williamr@4: const xmlChar * williamr@4: namespaceURI); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr williamr@4: writer); williamr@4: williamr@4: /* williamr@4: * Elements conveniency functions williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const char *format, williamr@4: va_list argptr); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr williamr@4: writer, williamr@4: const xmlChar * name, williamr@4: const xmlChar * williamr@4: content); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer, williamr@4: const xmlChar * prefix, williamr@4: const xmlChar * name, williamr@4: const xmlChar * namespaceURI, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer, williamr@4: const xmlChar * prefix, williamr@4: const xmlChar * name, williamr@4: const xmlChar * namespaceURI, williamr@4: const char *format, williamr@4: va_list argptr); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr williamr@4: writer, williamr@4: const xmlChar * williamr@4: prefix, williamr@4: const xmlChar * name, williamr@4: const xmlChar * williamr@4: namespaceURI, williamr@4: const xmlChar * williamr@4: content); williamr@4: williamr@4: /* williamr@4: * Text williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer, williamr@4: const char *format, va_list argptr); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteRawLen(xmlTextWriterPtr writer, williamr@4: const xmlChar * content, int len); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteRaw(xmlTextWriterPtr writer, williamr@4: const xmlChar * content); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr williamr@4: writer, williamr@4: const char williamr@4: *format, ...); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr williamr@4: writer, williamr@4: const char williamr@4: *format, williamr@4: va_list argptr); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer, williamr@4: const xmlChar * williamr@4: content); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer, williamr@4: const char *data, williamr@4: int start, int len); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer, williamr@4: const char *data, williamr@4: int start, int len); williamr@4: williamr@4: /* williamr@4: * Attributes williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterStartAttribute(xmlTextWriterPtr writer, williamr@4: const xmlChar * name); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr williamr@4: writer, williamr@4: const xmlChar * williamr@4: prefix, williamr@4: const xmlChar * williamr@4: name, williamr@4: const xmlChar * williamr@4: namespaceURI); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr williamr@4: writer); williamr@4: williamr@4: /* williamr@4: * Attributes conveniency functions williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const char *format, williamr@4: va_list argptr); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr williamr@4: writer, williamr@4: const xmlChar * name, williamr@4: const xmlChar * williamr@4: content); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer, williamr@4: const xmlChar * prefix, williamr@4: const xmlChar * name, williamr@4: const xmlChar * namespaceURI, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer, williamr@4: const xmlChar * prefix, williamr@4: const xmlChar * name, williamr@4: const xmlChar * namespaceURI, williamr@4: const char *format, williamr@4: va_list argptr); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr williamr@4: writer, williamr@4: const xmlChar * williamr@4: prefix, williamr@4: const xmlChar * williamr@4: name, williamr@4: const xmlChar * williamr@4: namespaceURI, williamr@4: const xmlChar * williamr@4: content); williamr@4: williamr@4: /* williamr@4: * PI's williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterStartPI(xmlTextWriterPtr writer, williamr@4: const xmlChar * target); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer); williamr@4: williamr@4: /* williamr@4: * PI conveniency functions williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer, williamr@4: const xmlChar * target, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer, williamr@4: const xmlChar * target, williamr@4: const char *format, va_list argptr); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWritePI(xmlTextWriterPtr writer, williamr@4: const xmlChar * target, williamr@4: const xmlChar * content); williamr@4: williamr@4: /** williamr@4: * xmlTextWriterWriteProcessingInstruction: williamr@4: * williamr@4: * This macro maps to xmlTextWriterWritePI williamr@4: */ williamr@4: #define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI williamr@4: williamr@4: /* williamr@4: * CDATA williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer); williamr@4: williamr@4: /* williamr@4: * CDATA conveniency functions williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer, williamr@4: const char *format, va_list argptr); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteCDATA(xmlTextWriterPtr writer, williamr@4: const xmlChar * content); williamr@4: williamr@4: /* williamr@4: * DTD williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterStartDTD(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const xmlChar * pubid, williamr@4: const xmlChar * sysid); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer); williamr@4: williamr@4: /* williamr@4: * DTD conveniency functions williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const xmlChar * pubid, williamr@4: const xmlChar * sysid, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const xmlChar * pubid, williamr@4: const xmlChar * sysid, williamr@4: const char *format, va_list argptr); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteDTD(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const xmlChar * pubid, williamr@4: const xmlChar * sysid, williamr@4: const xmlChar * subset); williamr@4: williamr@4: /** williamr@4: * xmlTextWriterWriteDocType: williamr@4: * williamr@4: * this macro maps to xmlTextWriterWriteDTD williamr@4: */ williamr@4: #define xmlTextWriterWriteDocType xmlTextWriterWriteDTD williamr@4: williamr@4: /* williamr@4: * DTD element definition williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterStartDTDElement(xmlTextWriterPtr writer, williamr@4: const xmlChar * name); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr williamr@4: writer); williamr@4: williamr@4: /* williamr@4: * DTD element definition conveniency functions williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const char *format, williamr@4: va_list argptr); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr williamr@4: writer, williamr@4: const xmlChar * williamr@4: name, williamr@4: const xmlChar * williamr@4: content); williamr@4: williamr@4: /* williamr@4: * DTD attribute list definition williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer, williamr@4: const xmlChar * name); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr williamr@4: writer); williamr@4: williamr@4: /* williamr@4: * DTD attribute list definition conveniency functions williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const char *format, williamr@4: va_list argptr); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr williamr@4: writer, williamr@4: const xmlChar * williamr@4: name, williamr@4: const xmlChar * williamr@4: content); williamr@4: williamr@4: /* williamr@4: * DTD entity definition williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer, williamr@4: int pe, const xmlChar * name); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr williamr@4: writer); williamr@4: williamr@4: /* williamr@4: * DTD entity definition conveniency functions williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer, williamr@4: int pe, williamr@4: const xmlChar * name, williamr@4: const char *format, ...); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer, williamr@4: int pe, williamr@4: const xmlChar * name, williamr@4: const char *format, williamr@4: va_list argptr); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer, williamr@4: int pe, williamr@4: const xmlChar * name, williamr@4: const xmlChar * content); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer, williamr@4: int pe, williamr@4: const xmlChar * name, williamr@4: const xmlChar * pubid, williamr@4: const xmlChar * sysid, williamr@4: const xmlChar * ndataid); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr williamr@4: writer, williamr@4: const xmlChar * pubid, williamr@4: const xmlChar * sysid, williamr@4: const xmlChar * williamr@4: ndataid); williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr williamr@4: writer, int pe, williamr@4: const xmlChar * name, williamr@4: const xmlChar * williamr@4: pubid, williamr@4: const xmlChar * williamr@4: sysid, williamr@4: const xmlChar * williamr@4: ndataid, williamr@4: const xmlChar * williamr@4: content); williamr@4: williamr@4: /* williamr@4: * DTD notation definition williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer, williamr@4: const xmlChar * name, williamr@4: const xmlChar * pubid, williamr@4: const xmlChar * sysid); williamr@4: williamr@4: /* williamr@4: * Indentation williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextWriterSetIndentString(xmlTextWriterPtr writer, williamr@4: const xmlChar * str); williamr@4: williamr@4: /* williamr@4: * misc williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer); williamr@4: williamr@4: #ifdef __cplusplus williamr@4: } williamr@4: #endif williamr@4: williamr@4: #endif /* LIBXML_WRITER_ENABLED */ williamr@4: williamr@4: #endif /* XML_XMLWRITER_H */ williamr@4: