1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-10-21 14:53:44 +03:00
Files
libxml2/include/libxml/xmlsave.h
Nick Wellnhofer c7a9ef1d66 doc: Document struct typedefs
Unfortunately, Doxygen's TYPDEF_HIDES_STRUCT option is too broken.
Document struct typedefs to make autolinks work.
2025-07-04 16:47:42 +02:00

157 lines
3.4 KiB
C

/**
* @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__ */