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