blob: fb329b22dbc2a8d113f34329ca9e44b410c5c7eb [file] [log] [blame]
Daniel Veillard1a8741c2004-03-04 13:40:59 +00001/*
2 * Summary: the XML document serializer
3 * Description: API to save document or subtree of document
4 *
5 * Copy: See Copyright for the status of this software.
6 *
7 * Author: Daniel Veillard
8 */
9
10#ifndef __XML_XMLSAVE_H__
11#define __XML_XMLSAVE_H__
12
13#include <libxml/xmlversion.h>
14#include <libxml/tree.h>
Daniel Veillard3995bc32004-05-15 18:57:31 +000015#include <libxml/encoding.h>
Daniel Veillard1a8741c2004-03-04 13:40:59 +000016#include <libxml/xmlIO.h>
17
Daniel Veillard2156d432004-03-04 15:59:36 +000018#ifdef LIBXML_OUTPUT_ENABLED
Daniel Veillard1a8741c2004-03-04 13:40:59 +000019#ifdef __cplusplus
20extern "C" {
21#endif
22
Daniel Veillard6fc5db02005-01-16 00:05:58 +000023/**
24 * xmlSaveOption:
25 *
26 * This is the set of XML save options that can be passed down
27 * to the xmlSaveToFd() and similar calls.
28 */
29typedef enum {
Daniel Veillard100e1802005-08-08 14:44:11 +000030 XML_SAVE_FORMAT = 1<<0, /* format save output */
Rob Richards2ce51c02005-09-12 12:16:35 +000031 XML_SAVE_NO_DECL = 1<<1, /* drop the xml declaration */
Daniel Veillard33b20b72005-09-12 21:43:20 +000032 XML_SAVE_NO_EMPTY = 1<<2, /* no empty tags */
Daniel Veillard856d9282008-09-25 14:31:40 +000033 XML_SAVE_NO_XHTML = 1<<3, /* disable XHTML1 specific rules */
34 XML_SAVE_XHTML = 1<<4, /* force XHTML1 specific rules */
35 XML_SAVE_AS_XML = 1<<5, /* force XML serialization on HTML doc */
Adam Spraggd2e62312010-11-03 15:33:40 +010036 XML_SAVE_AS_HTML = 1<<6, /* force HTML serialization on XML doc */
37 XML_SAVE_WSNONSIG = 1<<7 /* format with non-significant whitespace */
Daniel Veillard6fc5db02005-01-16 00:05:58 +000038} xmlSaveOption;
39
40
Daniel Veillard1a8741c2004-03-04 13:40:59 +000041typedef struct _xmlSaveCtxt xmlSaveCtxt;
42typedef xmlSaveCtxt *xmlSaveCtxtPtr;
43
44XMLPUBFUN xmlSaveCtxtPtr XMLCALL
45 xmlSaveToFd (int fd,
46 const char *encoding,
47 int options);
48XMLPUBFUN xmlSaveCtxtPtr XMLCALL
49 xmlSaveToFilename (const char *filename,
50 const char *encoding,
51 int options);
Daniel Veillarda2351322004-06-27 12:08:10 +000052
Daniel Veillard1a8741c2004-03-04 13:40:59 +000053XMLPUBFUN xmlSaveCtxtPtr XMLCALL
54 xmlSaveToBuffer (xmlBufferPtr buffer,
55 const char *encoding,
56 int options);
Daniel Veillard9a00fd22005-11-09 08:56:26 +000057
Daniel Veillard1a8741c2004-03-04 13:40:59 +000058XMLPUBFUN xmlSaveCtxtPtr XMLCALL
59 xmlSaveToIO (xmlOutputWriteCallback iowrite,
60 xmlOutputCloseCallback ioclose,
61 void *ioctx,
62 const char *encoding,
63 int options);
64
65XMLPUBFUN long XMLCALL
66 xmlSaveDoc (xmlSaveCtxtPtr ctxt,
67 xmlDocPtr doc);
68XMLPUBFUN long XMLCALL
69 xmlSaveTree (xmlSaveCtxtPtr ctxt,
70 xmlNodePtr node);
71
72XMLPUBFUN int XMLCALL
73 xmlSaveFlush (xmlSaveCtxtPtr ctxt);
74XMLPUBFUN int XMLCALL
75 xmlSaveClose (xmlSaveCtxtPtr ctxt);
Daniel Veillard3995bc32004-05-15 18:57:31 +000076XMLPUBFUN int XMLCALL
77 xmlSaveSetEscape (xmlSaveCtxtPtr ctxt,
78 xmlCharEncodingOutputFunc escape);
79XMLPUBFUN int XMLCALL
80 xmlSaveSetAttrEscape (xmlSaveCtxtPtr ctxt,
81 xmlCharEncodingOutputFunc escape);
Daniel Veillard1a8741c2004-03-04 13:40:59 +000082#ifdef __cplusplus
83}
84#endif
Daniel Veillard2156d432004-03-04 15:59:36 +000085#endif /* LIBXML_OUTPUT_ENABLED */
Daniel Veillard1a8741c2004-03-04 13:40:59 +000086#endif /* __XML_XMLSAVE_H__ */
87
88