1/*
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>
15#include <libxml/encoding.h>
16#include <libxml/xmlIO.h>
17
18#ifdef LIBXML_OUTPUT_ENABLED
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23/**
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 {
30    XML_SAVE_FORMAT     = 1<<0,	/* format save output */
31    XML_SAVE_NO_DECL    = 1<<1,	/* drop the xml declaration */
32    XML_SAVE_NO_EMPTY	= 1<<2, /* no empty tags */
33    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 */
36    XML_SAVE_AS_HTML    = 1<<6  /* force HTML serialization on XML doc */
37} xmlSaveOption;
38
39
40typedef struct _xmlSaveCtxt xmlSaveCtxt;
41typedef xmlSaveCtxt *xmlSaveCtxtPtr;
42
43XMLPUBFUN xmlSaveCtxtPtr XMLCALL
44		xmlSaveToFd		(int fd,
45					 const char *encoding,
46					 int options);
47XMLPUBFUN xmlSaveCtxtPtr XMLCALL
48		xmlSaveToFilename	(const char *filename,
49					 const char *encoding,
50					 int options);
51
52XMLPUBFUN xmlSaveCtxtPtr XMLCALL
53		xmlSaveToBuffer		(xmlBufferPtr buffer,
54					 const char *encoding,
55					 int options);
56
57XMLPUBFUN xmlSaveCtxtPtr XMLCALL
58		xmlSaveToIO		(xmlOutputWriteCallback iowrite,
59					 xmlOutputCloseCallback ioclose,
60					 void *ioctx,
61					 const char *encoding,
62					 int options);
63
64XMLPUBFUN long XMLCALL
65		xmlSaveDoc		(xmlSaveCtxtPtr ctxt,
66					 xmlDocPtr doc);
67XMLPUBFUN long XMLCALL
68		xmlSaveTree		(xmlSaveCtxtPtr ctxt,
69					 xmlNodePtr node);
70
71XMLPUBFUN int XMLCALL
72		xmlSaveFlush		(xmlSaveCtxtPtr ctxt);
73XMLPUBFUN int XMLCALL
74		xmlSaveClose		(xmlSaveCtxtPtr ctxt);
75XMLPUBFUN int XMLCALL
76		xmlSaveSetEscape	(xmlSaveCtxtPtr ctxt,
77					 xmlCharEncodingOutputFunc escape);
78XMLPUBFUN int XMLCALL
79		xmlSaveSetAttrEscape	(xmlSaveCtxtPtr ctxt,
80					 xmlCharEncodingOutputFunc escape);
81#ifdef __cplusplus
82}
83#endif
84#endif /* LIBXML_OUTPUT_ENABLED */
85#endif /* __XML_XMLSAVE_H__ */
86
87
88