File: xmlsave.h

package info (click to toggle)
libxml2 2.15.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental, forky, sid
  • size: 9,964 kB
  • sloc: ansic: 138,103; python: 6,692; sh: 4,736; xml: 1,476; makefile: 715
file content (156 lines) | stat: -rw-r--r-- 3,476 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/**
 * @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__ */