| |
| /* |
| * Summary: text writing API for XML |
| * Description: text writing API for XML |
| * |
| * Copy: See Copyright for the status of this software. |
| * |
| * Author: Alfred Mickautsch <alfred@mickautsch.de> |
| */ |
| |
| #ifndef __XML_XMLWRITER_H__ |
| #define __XML_XMLWRITER_H__ |
| |
| #include <libxml/xmlversion.h> |
| |
| #ifdef LIBXML_WRITER_ENABLED |
| |
| #include <stdarg.h> |
| #include <libxml/xmlIO.h> |
| #include <libxml/list.h> |
| #include <libxml/xmlstring.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef struct _xmlTextWriter xmlTextWriter; |
| typedef xmlTextWriter *xmlTextWriterPtr; |
| |
| /* |
| * Constructors & Destructor |
| */ |
| XMLPUBFUN xmlTextWriterPtr XMLCALL |
| xmlNewTextWriter(xmlOutputBufferPtr out); |
| XMLPUBFUN xmlTextWriterPtr XMLCALL |
| xmlNewTextWriterFilename(const char *uri, int compression); |
| XMLPUBFUN xmlTextWriterPtr XMLCALL |
| xmlNewTextWriterMemory(xmlBufferPtr buf, int compression); |
| XMLPUBFUN xmlTextWriterPtr XMLCALL |
| xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression); |
| XMLPUBFUN xmlTextWriterPtr XMLCALL |
| xmlNewTextWriterDoc(xmlDocPtr * doc, int compression); |
| XMLPUBFUN xmlTextWriterPtr XMLCALL |
| xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node, |
| int compression); |
| XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer); |
| |
| /* |
| * Functions |
| */ |
| |
| |
| /* |
| * Document |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterStartDocument(xmlTextWriterPtr writer, |
| const char *version, |
| const char *encoding, |
| const char *standalone); |
| XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr |
| writer); |
| |
| /* |
| * Comments |
| */ |
| XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr |
| writer); |
| XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(2,3); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer, |
| const char *format, |
| va_list argptr) |
| LIBXML_ATTR_FORMAT(2,0); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr |
| writer, |
| const xmlChar * |
| content); |
| |
| /* |
| * Elements |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterStartElement(xmlTextWriterPtr writer, |
| const xmlChar * name); |
| XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr |
| writer, |
| const xmlChar * |
| prefix, |
| const xmlChar * name, |
| const xmlChar * |
| namespaceURI); |
| XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer); |
| XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr |
| writer); |
| |
| /* |
| * Elements conveniency functions |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(3,4); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const char *format, |
| va_list argptr) |
| LIBXML_ATTR_FORMAT(3,0); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr |
| writer, |
| const xmlChar * name, |
| const xmlChar * |
| content); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer, |
| const xmlChar * prefix, |
| const xmlChar * name, |
| const xmlChar * namespaceURI, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(5,6); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer, |
| const xmlChar * prefix, |
| const xmlChar * name, |
| const xmlChar * namespaceURI, |
| const char *format, |
| va_list argptr) |
| LIBXML_ATTR_FORMAT(5,0); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr |
| writer, |
| const xmlChar * |
| prefix, |
| const xmlChar * name, |
| const xmlChar * |
| namespaceURI, |
| const xmlChar * |
| content); |
| |
| /* |
| * Text |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(2,3); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer, |
| const char *format, va_list argptr) |
| LIBXML_ATTR_FORMAT(2,0); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteRawLen(xmlTextWriterPtr writer, |
| const xmlChar * content, int len); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteRaw(xmlTextWriterPtr writer, |
| const xmlChar * content); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr |
| writer, |
| const char |
| *format, ...) |
| LIBXML_ATTR_FORMAT(2,3); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr |
| writer, |
| const char |
| *format, |
| va_list argptr) |
| LIBXML_ATTR_FORMAT(2,0); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer, |
| const xmlChar * |
| content); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer, |
| const char *data, |
| int start, int len); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer, |
| const char *data, |
| int start, int len); |
| |
| /* |
| * Attributes |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterStartAttribute(xmlTextWriterPtr writer, |
| const xmlChar * name); |
| XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr |
| writer, |
| const xmlChar * |
| prefix, |
| const xmlChar * |
| name, |
| const xmlChar * |
| namespaceURI); |
| XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr |
| writer); |
| |
| /* |
| * Attributes conveniency functions |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(3,4); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const char *format, |
| va_list argptr) |
| LIBXML_ATTR_FORMAT(3,0); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr |
| writer, |
| const xmlChar * name, |
| const xmlChar * |
| content); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer, |
| const xmlChar * prefix, |
| const xmlChar * name, |
| const xmlChar * namespaceURI, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(5,6); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer, |
| const xmlChar * prefix, |
| const xmlChar * name, |
| const xmlChar * namespaceURI, |
| const char *format, |
| va_list argptr) |
| LIBXML_ATTR_FORMAT(5,0); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr |
| writer, |
| const xmlChar * |
| prefix, |
| const xmlChar * |
| name, |
| const xmlChar * |
| namespaceURI, |
| const xmlChar * |
| content); |
| |
| /* |
| * PI's |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterStartPI(xmlTextWriterPtr writer, |
| const xmlChar * target); |
| XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer); |
| |
| /* |
| * PI conveniency functions |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer, |
| const xmlChar * target, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(3,4); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer, |
| const xmlChar * target, |
| const char *format, va_list argptr) |
| LIBXML_ATTR_FORMAT(3,0); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWritePI(xmlTextWriterPtr writer, |
| const xmlChar * target, |
| const xmlChar * content); |
| |
| /** |
| * xmlTextWriterWriteProcessingInstruction: |
| * |
| * This macro maps to xmlTextWriterWritePI |
| */ |
| #define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI |
| |
| /* |
| * CDATA |
| */ |
| XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer); |
| XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer); |
| |
| /* |
| * CDATA conveniency functions |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(2,3); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer, |
| const char *format, va_list argptr) |
| LIBXML_ATTR_FORMAT(2,0); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteCDATA(xmlTextWriterPtr writer, |
| const xmlChar * content); |
| |
| /* |
| * DTD |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterStartDTD(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const xmlChar * pubid, |
| const xmlChar * sysid); |
| XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer); |
| |
| /* |
| * DTD conveniency functions |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const xmlChar * pubid, |
| const xmlChar * sysid, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(5,6); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const xmlChar * pubid, |
| const xmlChar * sysid, |
| const char *format, va_list argptr) |
| LIBXML_ATTR_FORMAT(5,0); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteDTD(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const xmlChar * pubid, |
| const xmlChar * sysid, |
| const xmlChar * subset); |
| |
| /** |
| * xmlTextWriterWriteDocType: |
| * |
| * this macro maps to xmlTextWriterWriteDTD |
| */ |
| #define xmlTextWriterWriteDocType xmlTextWriterWriteDTD |
| |
| /* |
| * DTD element definition |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterStartDTDElement(xmlTextWriterPtr writer, |
| const xmlChar * name); |
| XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr |
| writer); |
| |
| /* |
| * DTD element definition conveniency functions |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(3,4); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const char *format, |
| va_list argptr) |
| LIBXML_ATTR_FORMAT(3,0); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr |
| writer, |
| const xmlChar * |
| name, |
| const xmlChar * |
| content); |
| |
| /* |
| * DTD attribute list definition |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer, |
| const xmlChar * name); |
| XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr |
| writer); |
| |
| /* |
| * DTD attribute list definition conveniency functions |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(3,4); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const char *format, |
| va_list argptr) |
| LIBXML_ATTR_FORMAT(3,0); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr |
| writer, |
| const xmlChar * |
| name, |
| const xmlChar * |
| content); |
| |
| /* |
| * DTD entity definition |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer, |
| int pe, const xmlChar * name); |
| XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr |
| writer); |
| |
| /* |
| * DTD entity definition conveniency functions |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer, |
| int pe, |
| const xmlChar * name, |
| const char *format, ...) |
| LIBXML_ATTR_FORMAT(4,5); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer, |
| int pe, |
| const xmlChar * name, |
| const char *format, |
| va_list argptr) |
| LIBXML_ATTR_FORMAT(4,0); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer, |
| int pe, |
| const xmlChar * name, |
| const xmlChar * content); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer, |
| int pe, |
| const xmlChar * name, |
| const xmlChar * pubid, |
| const xmlChar * sysid, |
| const xmlChar * ndataid); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr |
| writer, |
| const xmlChar * pubid, |
| const xmlChar * sysid, |
| const xmlChar * |
| ndataid); |
| XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr |
| writer, int pe, |
| const xmlChar * name, |
| const xmlChar * |
| pubid, |
| const xmlChar * |
| sysid, |
| const xmlChar * |
| ndataid, |
| const xmlChar * |
| content); |
| |
| /* |
| * DTD notation definition |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer, |
| const xmlChar * name, |
| const xmlChar * pubid, |
| const xmlChar * sysid); |
| |
| /* |
| * Indentation |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent); |
| XMLPUBFUN int XMLCALL |
| xmlTextWriterSetIndentString(xmlTextWriterPtr writer, |
| const xmlChar * str); |
| |
| /* |
| * misc |
| */ |
| XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* LIBXML_WRITER_ENABLED */ |
| |
| #endif /* __XML_XMLWRITER_H__ */ |