mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-10-21 14:53:44 +03:00
Unfortunately, Doxygen's TYPDEF_HIDES_STRUCT option is too broken. Document struct typedefs to make autolinks work.
490 lines
20 KiB
C
490 lines
20 KiB
C
/**
|
|
* @file
|
|
*
|
|
* @brief text writing API for XML
|
|
*
|
|
* text writing API for XML
|
|
*
|
|
* @copyright See Copyright for the status of this software.
|
|
*
|
|
* @author Alfred Mickautsch
|
|
*/
|
|
|
|
#ifndef __XML_XMLWRITER_H__
|
|
#define __XML_XMLWRITER_H__
|
|
|
|
#include <libxml/xmlversion.h>
|
|
|
|
#ifdef LIBXML_WRITER_ENABLED
|
|
|
|
#include <stdarg.h>
|
|
#include <libxml/xmlIO.h>
|
|
#include <libxml/list.h>
|
|
#include <libxml/xmlstring.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** Writer object */
|
|
typedef struct _xmlTextWriter xmlTextWriter;
|
|
typedef xmlTextWriter *xmlTextWriterPtr;
|
|
|
|
/*
|
|
* Constructors & Destructor
|
|
*/
|
|
XMLPUBFUN xmlTextWriter *
|
|
xmlNewTextWriter(xmlOutputBuffer *out);
|
|
XMLPUBFUN xmlTextWriter *
|
|
xmlNewTextWriterFilename(const char *uri, int compression);
|
|
XMLPUBFUN xmlTextWriter *
|
|
xmlNewTextWriterMemory(xmlBuffer *buf, int compression);
|
|
XMLPUBFUN xmlTextWriter *
|
|
xmlNewTextWriterPushParser(xmlParserCtxt *ctxt, int compression);
|
|
XMLPUBFUN xmlTextWriter *
|
|
xmlNewTextWriterDoc(xmlDoc ** doc, int compression);
|
|
XMLPUBFUN xmlTextWriter *
|
|
xmlNewTextWriterTree(xmlDoc *doc, xmlNode *node,
|
|
int compression);
|
|
XMLPUBFUN void xmlFreeTextWriter(xmlTextWriter *writer);
|
|
|
|
/*
|
|
* Functions
|
|
*/
|
|
|
|
|
|
/*
|
|
* Document
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterStartDocument(xmlTextWriter *writer,
|
|
const char *version,
|
|
const char *encoding,
|
|
const char *standalone);
|
|
XMLPUBFUN int xmlTextWriterEndDocument(xmlTextWriter *
|
|
writer);
|
|
|
|
/*
|
|
* Comments
|
|
*/
|
|
XMLPUBFUN int xmlTextWriterStartComment(xmlTextWriter *
|
|
writer);
|
|
XMLPUBFUN int xmlTextWriterEndComment(xmlTextWriter *writer);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatComment(xmlTextWriter *writer,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(2,3);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatComment(xmlTextWriter *writer,
|
|
const char *format,
|
|
va_list argptr)
|
|
LIBXML_ATTR_FORMAT(2,0);
|
|
XMLPUBFUN int xmlTextWriterWriteComment(xmlTextWriter *
|
|
writer,
|
|
const xmlChar *
|
|
content);
|
|
|
|
/*
|
|
* Elements
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterStartElement(xmlTextWriter *writer,
|
|
const xmlChar * name);
|
|
XMLPUBFUN int xmlTextWriterStartElementNS(xmlTextWriter *
|
|
writer,
|
|
const xmlChar *
|
|
prefix,
|
|
const xmlChar * name,
|
|
const xmlChar *
|
|
namespaceURI);
|
|
XMLPUBFUN int xmlTextWriterEndElement(xmlTextWriter *writer);
|
|
XMLPUBFUN int xmlTextWriterFullEndElement(xmlTextWriter *
|
|
writer);
|
|
|
|
/*
|
|
* Elements conveniency functions
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatElement(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(3,4);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatElement(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const char *format,
|
|
va_list argptr)
|
|
LIBXML_ATTR_FORMAT(3,0);
|
|
XMLPUBFUN int xmlTextWriterWriteElement(xmlTextWriter *
|
|
writer,
|
|
const xmlChar * name,
|
|
const xmlChar *
|
|
content);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatElementNS(xmlTextWriter *writer,
|
|
const xmlChar * prefix,
|
|
const xmlChar * name,
|
|
const xmlChar * namespaceURI,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(5,6);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatElementNS(xmlTextWriter *writer,
|
|
const xmlChar * prefix,
|
|
const xmlChar * name,
|
|
const xmlChar * namespaceURI,
|
|
const char *format,
|
|
va_list argptr)
|
|
LIBXML_ATTR_FORMAT(5,0);
|
|
XMLPUBFUN int xmlTextWriterWriteElementNS(xmlTextWriter *
|
|
writer,
|
|
const xmlChar *
|
|
prefix,
|
|
const xmlChar * name,
|
|
const xmlChar *
|
|
namespaceURI,
|
|
const xmlChar *
|
|
content);
|
|
|
|
/*
|
|
* Text
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatRaw(xmlTextWriter *writer,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(2,3);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatRaw(xmlTextWriter *writer,
|
|
const char *format, va_list argptr)
|
|
LIBXML_ATTR_FORMAT(2,0);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteRawLen(xmlTextWriter *writer,
|
|
const xmlChar * content, int len);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteRaw(xmlTextWriter *writer,
|
|
const xmlChar * content);
|
|
XMLPUBFUN int xmlTextWriterWriteFormatString(xmlTextWriter *
|
|
writer,
|
|
const char
|
|
*format, ...)
|
|
LIBXML_ATTR_FORMAT(2,3);
|
|
XMLPUBFUN int xmlTextWriterWriteVFormatString(xmlTextWriter *
|
|
writer,
|
|
const char
|
|
*format,
|
|
va_list argptr)
|
|
LIBXML_ATTR_FORMAT(2,0);
|
|
XMLPUBFUN int xmlTextWriterWriteString(xmlTextWriter *writer,
|
|
const xmlChar *
|
|
content);
|
|
XMLPUBFUN int xmlTextWriterWriteBase64(xmlTextWriter *writer,
|
|
const char *data,
|
|
int start, int len);
|
|
XMLPUBFUN int xmlTextWriterWriteBinHex(xmlTextWriter *writer,
|
|
const char *data,
|
|
int start, int len);
|
|
|
|
/*
|
|
* Attributes
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterStartAttribute(xmlTextWriter *writer,
|
|
const xmlChar * name);
|
|
XMLPUBFUN int xmlTextWriterStartAttributeNS(xmlTextWriter *
|
|
writer,
|
|
const xmlChar *
|
|
prefix,
|
|
const xmlChar *
|
|
name,
|
|
const xmlChar *
|
|
namespaceURI);
|
|
XMLPUBFUN int xmlTextWriterEndAttribute(xmlTextWriter *
|
|
writer);
|
|
|
|
/*
|
|
* Attributes conveniency functions
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatAttribute(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(3,4);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatAttribute(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const char *format,
|
|
va_list argptr)
|
|
LIBXML_ATTR_FORMAT(3,0);
|
|
XMLPUBFUN int xmlTextWriterWriteAttribute(xmlTextWriter *
|
|
writer,
|
|
const xmlChar * name,
|
|
const xmlChar *
|
|
content);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatAttributeNS(xmlTextWriter *writer,
|
|
const xmlChar * prefix,
|
|
const xmlChar * name,
|
|
const xmlChar * namespaceURI,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(5,6);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatAttributeNS(xmlTextWriter *writer,
|
|
const xmlChar * prefix,
|
|
const xmlChar * name,
|
|
const xmlChar * namespaceURI,
|
|
const char *format,
|
|
va_list argptr)
|
|
LIBXML_ATTR_FORMAT(5,0);
|
|
XMLPUBFUN int xmlTextWriterWriteAttributeNS(xmlTextWriter *
|
|
writer,
|
|
const xmlChar *
|
|
prefix,
|
|
const xmlChar *
|
|
name,
|
|
const xmlChar *
|
|
namespaceURI,
|
|
const xmlChar *
|
|
content);
|
|
|
|
/*
|
|
* PI's
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterStartPI(xmlTextWriter *writer,
|
|
const xmlChar * target);
|
|
XMLPUBFUN int xmlTextWriterEndPI(xmlTextWriter *writer);
|
|
|
|
/*
|
|
* PI conveniency functions
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatPI(xmlTextWriter *writer,
|
|
const xmlChar * target,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(3,4);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatPI(xmlTextWriter *writer,
|
|
const xmlChar * target,
|
|
const char *format, va_list argptr)
|
|
LIBXML_ATTR_FORMAT(3,0);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWritePI(xmlTextWriter *writer,
|
|
const xmlChar * target,
|
|
const xmlChar * content);
|
|
|
|
/**
|
|
* This macro maps to #xmlTextWriterWritePI
|
|
*/
|
|
#define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI
|
|
|
|
/*
|
|
* CDATA
|
|
*/
|
|
XMLPUBFUN int xmlTextWriterStartCDATA(xmlTextWriter *writer);
|
|
XMLPUBFUN int xmlTextWriterEndCDATA(xmlTextWriter *writer);
|
|
|
|
/*
|
|
* CDATA conveniency functions
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatCDATA(xmlTextWriter *writer,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(2,3);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatCDATA(xmlTextWriter *writer,
|
|
const char *format, va_list argptr)
|
|
LIBXML_ATTR_FORMAT(2,0);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteCDATA(xmlTextWriter *writer,
|
|
const xmlChar * content);
|
|
|
|
/*
|
|
* DTD
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterStartDTD(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const xmlChar * pubid,
|
|
const xmlChar * sysid);
|
|
XMLPUBFUN int xmlTextWriterEndDTD(xmlTextWriter *writer);
|
|
|
|
/*
|
|
* DTD conveniency functions
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatDTD(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const xmlChar * pubid,
|
|
const xmlChar * sysid,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(5,6);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatDTD(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const xmlChar * pubid,
|
|
const xmlChar * sysid,
|
|
const char *format, va_list argptr)
|
|
LIBXML_ATTR_FORMAT(5,0);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteDTD(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const xmlChar * pubid,
|
|
const xmlChar * sysid,
|
|
const xmlChar * subset);
|
|
|
|
/**
|
|
* this macro maps to #xmlTextWriterWriteDTD
|
|
*/
|
|
#define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
|
|
|
|
/*
|
|
* DTD element definition
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterStartDTDElement(xmlTextWriter *writer,
|
|
const xmlChar * name);
|
|
XMLPUBFUN int xmlTextWriterEndDTDElement(xmlTextWriter *
|
|
writer);
|
|
|
|
/*
|
|
* DTD element definition conveniency functions
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatDTDElement(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(3,4);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatDTDElement(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const char *format,
|
|
va_list argptr)
|
|
LIBXML_ATTR_FORMAT(3,0);
|
|
XMLPUBFUN int xmlTextWriterWriteDTDElement(xmlTextWriter *
|
|
writer,
|
|
const xmlChar *
|
|
name,
|
|
const xmlChar *
|
|
content);
|
|
|
|
/*
|
|
* DTD attribute list definition
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterStartDTDAttlist(xmlTextWriter *writer,
|
|
const xmlChar * name);
|
|
XMLPUBFUN int xmlTextWriterEndDTDAttlist(xmlTextWriter *
|
|
writer);
|
|
|
|
/*
|
|
* DTD attribute list definition conveniency functions
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatDTDAttlist(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(3,4);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const char *format,
|
|
va_list argptr)
|
|
LIBXML_ATTR_FORMAT(3,0);
|
|
XMLPUBFUN int xmlTextWriterWriteDTDAttlist(xmlTextWriter *
|
|
writer,
|
|
const xmlChar *
|
|
name,
|
|
const xmlChar *
|
|
content);
|
|
|
|
/*
|
|
* DTD entity definition
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterStartDTDEntity(xmlTextWriter *writer,
|
|
int pe, const xmlChar * name);
|
|
XMLPUBFUN int xmlTextWriterEndDTDEntity(xmlTextWriter *
|
|
writer);
|
|
|
|
/*
|
|
* DTD entity definition conveniency functions
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriter *writer,
|
|
int pe,
|
|
const xmlChar * name,
|
|
const char *format, ...)
|
|
LIBXML_ATTR_FORMAT(4,5);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriter *writer,
|
|
int pe,
|
|
const xmlChar * name,
|
|
const char *format,
|
|
va_list argptr)
|
|
LIBXML_ATTR_FORMAT(4,0);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteDTDInternalEntity(xmlTextWriter *writer,
|
|
int pe,
|
|
const xmlChar * name,
|
|
const xmlChar * content);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteDTDExternalEntity(xmlTextWriter *writer,
|
|
int pe,
|
|
const xmlChar * name,
|
|
const xmlChar * pubid,
|
|
const xmlChar * sysid,
|
|
const xmlChar * ndataid);
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriter *
|
|
writer,
|
|
const xmlChar * pubid,
|
|
const xmlChar * sysid,
|
|
const xmlChar *
|
|
ndataid);
|
|
XMLPUBFUN int xmlTextWriterWriteDTDEntity(xmlTextWriter *
|
|
writer, int pe,
|
|
const xmlChar * name,
|
|
const xmlChar *
|
|
pubid,
|
|
const xmlChar *
|
|
sysid,
|
|
const xmlChar *
|
|
ndataid,
|
|
const xmlChar *
|
|
content);
|
|
|
|
/*
|
|
* DTD notation definition
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterWriteDTDNotation(xmlTextWriter *writer,
|
|
const xmlChar * name,
|
|
const xmlChar * pubid,
|
|
const xmlChar * sysid);
|
|
|
|
/*
|
|
* Indentation
|
|
*/
|
|
XMLPUBFUN int
|
|
xmlTextWriterSetIndent(xmlTextWriter *writer, int indent);
|
|
XMLPUBFUN int
|
|
xmlTextWriterSetIndentString(xmlTextWriter *writer,
|
|
const xmlChar * str);
|
|
|
|
XMLPUBFUN int
|
|
xmlTextWriterSetQuoteChar(xmlTextWriter *writer, xmlChar quotechar);
|
|
|
|
|
|
/*
|
|
* misc
|
|
*/
|
|
XMLPUBFUN int xmlTextWriterFlush(xmlTextWriter *writer);
|
|
XMLPUBFUN int xmlTextWriterClose(xmlTextWriter *writer);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* LIBXML_WRITER_ENABLED */
|
|
|
|
#endif /* __XML_XMLWRITER_H__ */
|