| /** |
| * @file |
| * |
| * @brief XML/HTML serializer |
| * |
| * API to save documents or subtrees of documents. |
| * |
| * @copyright See Copyright for the status of this software. |
| * |
| * @author Daniel Veillard |
| */ |
| |
| #ifndef __XML_XMLSAVE_H__ |
| #define __XML_XMLSAVE_H__ |
| |
| #include <libxml/xmlversion.h> |
| #include <libxml/tree.h> |
| #include <libxml/encoding.h> |
| #include <libxml/xmlIO.h> |
| |
| #ifdef LIBXML_OUTPUT_ENABLED |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| * This is the set of XML save options that can be passed down |
| * to the #xmlSaveToFd and similar calls. |
| */ |
| typedef enum { |
| /** |
| * Format output. This adds newlines and enables indenting |
| * by default. |
| */ |
| XML_SAVE_FORMAT = 1<<0, |
| /** |
| * Don't emit an XML declaration. |
| */ |
| XML_SAVE_NO_DECL = 1<<1, |
| /** |
| * Don't emit empty tags. |
| */ |
| XML_SAVE_NO_EMPTY = 1<<2, |
| /** |
| * Don't serialize as XHTML. |
| */ |
| XML_SAVE_NO_XHTML = 1<<3, |
| /** |
| * Always serialize as XHTML. |
| */ |
| XML_SAVE_XHTML = 1<<4, |
| /** |
| * Serialize HTML documents as XML. |
| */ |
| XML_SAVE_AS_XML = 1<<5, |
| /** |
| * Serialize XML documents as HTML. |
| */ |
| XML_SAVE_AS_HTML = 1<<6, |
| /** |
| * Format with non-significant whitespace. |
| * TODO: What does this mean? |
| */ |
| XML_SAVE_WSNONSIG = 1<<7, |
| /** |
| * Always emit empty tags. This is the default unless the |
| * deprecated thread-local setting xmlSaveNoEmptyTags is |
| * set to 1. |
| * |
| * @since 2.14 |
| */ |
| XML_SAVE_EMPTY = 1<<8, |
| /** |
| * Don't indent output when formatting. |
| * |
| * @since 2.14 |
| */ |
| XML_SAVE_NO_INDENT = 1<<9, |
| /** |
| * Always indent output when formatting. This is the default |
| * unless the deprecated thread-local setting |
| * xmlIndentTreeOutput is set to 0. |
| * |
| * @since 2.14 |
| */ |
| XML_SAVE_INDENT = 1<<10 |
| } xmlSaveOption; |
| |
| /** XML and HTML serializer */ |
| typedef struct _xmlSaveCtxt xmlSaveCtxt; |
| typedef xmlSaveCtxt *xmlSaveCtxtPtr; |
| |
| XMLPUBFUN xmlSaveCtxt * |
| xmlSaveToFd (int fd, |
| const char *encoding, |
| int options); |
| XMLPUBFUN xmlSaveCtxt * |
| xmlSaveToFilename (const char *filename, |
| const char *encoding, |
| int options); |
| |
| XMLPUBFUN xmlSaveCtxt * |
| xmlSaveToBuffer (xmlBuffer *buffer, |
| const char *encoding, |
| int options); |
| |
| XMLPUBFUN xmlSaveCtxt * |
| xmlSaveToIO (xmlOutputWriteCallback iowrite, |
| xmlOutputCloseCallback ioclose, |
| void *ioctx, |
| const char *encoding, |
| int options); |
| |
| XMLPUBFUN long |
| xmlSaveDoc (xmlSaveCtxt *ctxt, |
| xmlDoc *doc); |
| XMLPUBFUN long |
| xmlSaveTree (xmlSaveCtxt *ctxt, |
| xmlNode *node); |
| |
| XMLPUBFUN int |
| xmlSaveFlush (xmlSaveCtxt *ctxt); |
| XMLPUBFUN int |
| xmlSaveClose (xmlSaveCtxt *ctxt); |
| XMLPUBFUN xmlParserErrors |
| xmlSaveFinish (xmlSaveCtxt *ctxt); |
| XMLPUBFUN int |
| xmlSaveSetIndentString (xmlSaveCtxt *ctxt, |
| const char *indent); |
| XML_DEPRECATED |
| XMLPUBFUN int |
| xmlSaveSetEscape (xmlSaveCtxt *ctxt, |
| xmlCharEncodingOutputFunc escape); |
| XML_DEPRECATED |
| XMLPUBFUN int |
| xmlSaveSetAttrEscape (xmlSaveCtxt *ctxt, |
| xmlCharEncodingOutputFunc escape); |
| |
| XML_DEPRECATED |
| XMLPUBFUN int |
| xmlThrDefIndentTreeOutput(int v); |
| XML_DEPRECATED |
| XMLPUBFUN const char * |
| xmlThrDefTreeIndentString(const char * v); |
| XML_DEPRECATED |
| XMLPUBFUN int |
| xmlThrDefSaveNoEmptyTags(int v); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* LIBXML_OUTPUT_ENABLED */ |
| #endif /* __XML_XMLSAVE_H__ */ |
| |
| |