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
20 extern "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  */
29 typedef 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 
41 typedef struct _xmlSaveCtxt xmlSaveCtxt;
42 typedef xmlSaveCtxt *xmlSaveCtxtPtr;
43 
44 XMLPUBFUN xmlSaveCtxtPtr XMLCALL
45 		xmlSaveToFd		(int fd,
46 					 const char *encoding,
47 					 int options);
48 XMLPUBFUN xmlSaveCtxtPtr XMLCALL
49 		xmlSaveToFilename	(const char *filename,
50 					 const char *encoding,
51 					 int options);
52 
53 XMLPUBFUN xmlSaveCtxtPtr XMLCALL
54 		xmlSaveToBuffer		(xmlBufferPtr buffer,
55 					 const char *encoding,
56 					 int options);
57 
58 XMLPUBFUN xmlSaveCtxtPtr XMLCALL
59 		xmlSaveToIO		(xmlOutputWriteCallback iowrite,
60 					 xmlOutputCloseCallback ioclose,
61 					 void *ioctx,
62 					 const char *encoding,
63 					 int options);
64 
65 XMLPUBFUN long XMLCALL
66 		xmlSaveDoc		(xmlSaveCtxtPtr ctxt,
67 					 xmlDocPtr doc);
68 XMLPUBFUN long XMLCALL
69 		xmlSaveTree		(xmlSaveCtxtPtr ctxt,
70 					 xmlNodePtr node);
71 
72 XMLPUBFUN int XMLCALL
73 		xmlSaveFlush		(xmlSaveCtxtPtr ctxt);
74 XMLPUBFUN int XMLCALL
75 		xmlSaveClose		(xmlSaveCtxtPtr ctxt);
76 XMLPUBFUN int XMLCALL
77 		xmlSaveSetEscape	(xmlSaveCtxtPtr ctxt,
78 					 xmlCharEncodingOutputFunc escape);
79 XMLPUBFUN 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