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    XML_SAVE_WSNONSIG   = 1<<7  /* format with non-significant whitespace */
38} xmlSaveOption;
39
40
41typedef 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);
52
53XMLPUBFUN xmlSaveCtxtPtr XMLCALL
54		xmlSaveToBuffer		(xmlBufferPtr buffer,
55					 const char *encoding,
56					 int options);
57
58XMLPUBFUN 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);
76XMLPUBFUN int XMLCALL
77		xmlSaveSetEscape	(xmlSaveCtxtPtr ctxt,
78					 xmlCharEncodingOutputFunc escape);
79XMLPUBFUN int XMLCALL
80		xmlSaveSetAttrEscape	(xmlSaveCtxtPtr ctxt,
81					 xmlCharEncodingOutputFunc escape);
82#ifdef __cplusplus
83}
84#endif
85#endif /* LIBXML_OUTPUT_ENABLED */
86#endif /* __XML_XMLSAVE_H__ */
87
88
89