tree.h revision 9d06d300a5c4146907b3af8fcbf67d8e7d868567
13473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
23473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * tree.h : describes the structures found in an tree resulting
33473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *          from an XML parsing.
43473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
53473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * See Copyright for the status of this software.
63473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
7c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard * daniel@veillard.com
83473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
93473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * 14 Nov 2000 ht - added redefinition of xmlBufferWriteChar for VMS
103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifndef __XML_TREE_H__
143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define __XML_TREE_H__
153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include <stdio.h>
17c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard#if defined(WIN32) && defined(_MSC_VER)
18c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard#include <libxml/xmlwin32version.h>
19c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard#else
203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include <libxml/xmlversion.h>
21c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard#endif
2267a21303b8407cd70ccf9ff1dd29a7f17e4cfc4eDaniel Veillard#include <libxml/xmlmemory.h>
233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifdef __cplusplus
253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern "C" {
263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
288bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard/*
298bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard * Some of the basic types pointer to structures:
308bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard */
318bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard/* xmlIO.h */
328bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef struct _xmlParserInputBuffer xmlParserInputBuffer;
338bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef xmlParserInputBuffer *xmlParserInputBufferPtr;
348bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard
355a37bde34b693bc0296a2f03b775773e265b4c0eCETtypedef struct _xmlOutputBuffer xmlOutputBuffer;
365a37bde34b693bc0296a2f03b775773e265b4c0eCETtypedef xmlOutputBuffer *xmlOutputBufferPtr;
375a37bde34b693bc0296a2f03b775773e265b4c0eCET
388bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard/* parser.h */
398bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef struct _xmlParserInput xmlParserInput;
408bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef xmlParserInput *xmlParserInputPtr;
418bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard
428bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef struct _xmlParserCtxt xmlParserCtxt;
438bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef xmlParserCtxt *xmlParserCtxtPtr;
448bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard
459d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
469d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * BASE_BUFFER_SIZE:
479d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
489d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * default buffer size 4000
499d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
50d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#define BASE_BUFFER_SIZE 4000
51d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard
525e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
535e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_XML_NAMESPACE:
545e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
555e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * This is the namespace for the special xml: prefix predefined in the
565e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML Namespace specification
575e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define XML_XML_NAMESPACE \
593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    (const xmlChar *) "http://www.w3.org/XML/1998/namespace"
603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * The different element types carried by an XML tree
633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * NOTE: This is synchronized with DOM Level1 values
653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *       See http://www.w3.org/TR/REC-DOM-Level-1/
663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * be deprecated to use an XML_DTD_NODE.
693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_NODE=		1,
723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NODE=		2,
733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_TEXT_NODE=		3,
743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_CDATA_SECTION_NODE=	4,
753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ENTITY_REF_NODE=	5,
763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ENTITY_NODE=		6,
773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_PI_NODE=		7,
783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_COMMENT_NODE=		8,
793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DOCUMENT_NODE=		9,
803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DOCUMENT_TYPE_NODE=	10,
813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DOCUMENT_FRAG_NODE=	11,
823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_NOTATION_NODE=		12,
833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_HTML_DOCUMENT_NODE=	13,
843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DTD_NODE=		14,
853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_DECL=		15,
863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_DECL=		16,
873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ENTITY_DECL=		17,
883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_NAMESPACE_DECL=		18,
893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_XINCLUDE_START=		19,
903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_XINCLUDE_END=		20
91eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard#ifdef LIBXML_DOCB_ENABLED
92eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard   ,XML_DOCB_DOCUMENT_NODE=	21
933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementType;
953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
96bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
97bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlChar:
983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
99bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * This is a basic byte in an UTF-8 encoded string.
100bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * It's unsigned allowing to pinpoint case where char * are assigned
101bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * to xmlChar * (possibly making serialization back impossible).
1023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef unsigned char xmlChar;
1053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
106bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
107bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * BAD_CAST:
108bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
109bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * Macro to cast a string to an xmlChar * when one know its safe.
110bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
1113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define BAD_CAST (xmlChar *)
1123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
113bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
114bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlNotation:
115bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
1163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * a DTD Notation definition
1173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlNotation xmlNotation;
1203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlNotation *xmlNotationPtr;
1213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlNotation {
1229e7160d45a18bfa26d708e22ba991f7670d0128bDaniel Veillard    const xmlChar               *name;	        /* Notation name */
1233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar               *PublicID;	/* Public identifier, if any */
1243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar               *SystemID;	/* System identifier, if any */
1253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
1263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
127bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
128bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttributeType:
129bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
130bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * a DTD Attribute type definition
1313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
1343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_CDATA = 1,
1353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ID,
1363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_IDREF	,
1373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_IDREFS,
1383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ENTITY,
1393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ENTITIES,
1403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NMTOKEN,
1413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NMTOKENS,
1423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ENUMERATION,
1433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NOTATION
1443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlAttributeType;
1453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
146bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
147bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttributeDefault:
148bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
149bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * a DTD Attribute default definition
150bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
151bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
1523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
1533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NONE = 1,
1543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_REQUIRED,
1553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_IMPLIED,
1563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_FIXED
1573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlAttributeDefault;
1583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
159bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
160bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlEnumeration:
161bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
162bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * list structure used when there is an enumeration in DTDs
163bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
164bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
1653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlEnumeration xmlEnumeration;
1663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlEnumeration *xmlEnumerationPtr;
1673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlEnumeration {
1683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlEnumeration    *next;	/* next one */
1693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar            *name;	/* Enumeration name */
1703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
1713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
172bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
173bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttribute:
174bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
175bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * an Attribute declaration in a DTD
176bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
177bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
1783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlAttribute xmlAttribute;
1793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlAttribute *xmlAttributePtr;
1803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlAttribute {
1810ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	        /* application data */
1823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType          type;       /* XML_ATTRIBUTE_DECL, must be second ! */
1833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar          *name;	/* Attribute name */
1843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode    *children;	/* NULL */
1853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *last;	/* NULL */
1863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd       *parent;	/* -> DTD */
1873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *next;	/* next sibling link  */
1883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *prev;	/* previous sibling link  */
1893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc          *doc;       /* the containing document */
1903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttribute  *nexth;	/* next in hash table */
1923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributeType       atype;	/* The attribute type */
1933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributeDefault      def;	/* the default */
1943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *defaultValue;	/* or the default value */
1953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlEnumerationPtr       tree;       /* or the enumeration tree if any */
1963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar        *prefix;	/* the namespace prefix if any */
1973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar          *elem;	/* Element holding the attribute */
1983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
1993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
200bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
201bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementContentType:
202bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
203bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * Possible definitions of element content types
2043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
2053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
2063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_PCDATA = 1,
2073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_ELEMENT,
2083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_SEQ,
2093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_OR
2103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementContentType;
2113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
212bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
213bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementContentOccur:
214bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
215d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard * Possible definitions of element content occurrences
216bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
2173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
2183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_ONCE = 1,
2193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_OPT,
2203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_MULT,
2213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_PLUS
2223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementContentOccur;
2233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
224bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
225bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementContent:
226bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
227bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * an XML Element content as stored after parsing an element definition
228bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * in a DTD.
229bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
230bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlElementContent xmlElementContent;
2323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlElementContent *xmlElementContentPtr;
2333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlElementContent {
2343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementContentType     type;	/* PCDATA, ELEMENT, SEQ or OR */
2353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementContentOccur    ocur;	/* ONCE, OPT, MULT or PLUS */
236be480fbbe3e061a28f8719175a124ddc8575e0a8Daniel Veillard    const xmlChar             *name;	/* Element name */
2373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlElementContent *c1;	/* first child */
2383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlElementContent *c2;	/* second child */
239dab4cb37d8fceb7457c40effc1ae43559221610bDaniel Veillard    struct _xmlElementContent *parent;	/* parent */
240be480fbbe3e061a28f8719175a124ddc8575e0a8Daniel Veillard    const xmlChar             *prefix;	/* Element name */
2413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
2423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
243bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
244bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementTypeVal:
245bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
246d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard * the different possibilities for an element content type
247bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
248bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
250a10efa8aa6e8a89ad1f5fa05bd591fed02c88dbaDaniel Veillard    XML_ELEMENT_TYPE_UNDEFINED = 0,
2513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_EMPTY = 1,
2523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_ANY,
2533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_MIXED,
2543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_ELEMENT
2553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementTypeVal;
2563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
257bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
258bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElement:
259bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
260bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * an XML Element declaration from a DTD
261bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
262bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlElement xmlElement;
2643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlElement *xmlElementPtr;
2653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlElement {
2660ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	        /* application data */
2673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType          type;       /* XML_ELEMENT_DECL, must be second ! */
2683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar          *name;	/* Element name */
2693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode    *children;	/* NULL */
2703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *last;	/* NULL */
2713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd       *parent;	/* -> DTD */
2723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *next;	/* next sibling link  */
2733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *prev;	/* previous sibling link  */
2743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc          *doc;       /* the containing document */
2753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementTypeVal      etype;	/* The type */
2773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementContentPtr content;	/* the allowed element content */
2783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributePtr   attributes;	/* List of the declared attributes */
2793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar        *prefix;	/* the namespace prefix if any */
2803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
2813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
282bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2835e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
2845e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_LOCAL_NAMESPACE:
2855e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
2865e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * A namespace declaration node
2875e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
288bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard#define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
289bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillardtypedef xmlElementType xmlNsType;
290bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
291bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
292bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlNs:
293bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
2943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML namespace.
2953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Note that prefix == NULL is valid, it defines the default namespace
296d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard * within the subtree (until overridden).
2973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
2983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * xmlNsType is unified with xmlElementType
2993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlNs xmlNs;
3023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlNs *xmlNsPtr;
3033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlNs {
3043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNs  *next;	/* next Ns link for this node  */
3053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNsType      type;	/* global or local */
3063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *href;	/* URL for the namespace */
3073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *prefix;	/* prefix for the namespace */
3083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
310bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
311bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlDtd:
312bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
313d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
314bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * the internal subset and for the external subset
3153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlDtd xmlDtd;
3173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlDtd *xmlDtdPtr;
3183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlDtd {
3190ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
3203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType  type;       /* XML_DTD_NODE, must be second ! */
3213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *name;	/* Name of the DTD */
3223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* the value of the property link */
3233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* last child link */
3243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *parent;	/* child->parent link */
3253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *next;	/* next sibling link  */
3263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *prev;	/* previous sibling link  */
3273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* the containing document */
3283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    /* End of common part */
3303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *notations;   /* Hash table for notations if any */
3313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *elements;    /* Hash table for elements if any */
3323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *attributes;  /* Hash table for attributes if any */
3333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *entities;    /* Hash table for entities if any */
3343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *ExternalID;	/* External identifier for PUBLIC DTD */
3353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *SystemID;	/* URI for a SYSTEM or PUBLIC DTD */
3363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *pentities;   /* Hash table for param entities if any */
3373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
339bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
340bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttr:
341bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
342bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * A attribute on an XML node.
3433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlAttr xmlAttr;
3453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlAttr *xmlAttrPtr;
3463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlAttr {
3470ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
3483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType   type;      /* XML_ATTRIBUTE_NODE, must be second ! */
3493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar   *name;      /* the name of the property */
3503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* the value of the property */
3513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* NULL */
3523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *parent;	/* child->parent link */
3533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttr *next;	/* next sibling link  */
3543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttr *prev;	/* previous sibling link  */
3553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* the containing document */
3563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNs           *ns;        /* pointer to the associated namespace */
3573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributeType atype;     /* the attribute type if validating */
3583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
360bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
361bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlID:
362bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
3633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML ID instance.
3643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlID xmlID;
3673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlID *xmlIDPtr;
3683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlID {
3693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlID    *next;	/* next ID */
3703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar    *value;	/* The ID name */
371d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard    xmlAttrPtr        attr;	/* The attribute holding it */
3723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
374bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
375bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlRef:
376bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
3773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML IDREF instance.
3783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlRef xmlRef;
3813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlRef *xmlRefPtr;
3823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlRef {
3833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlRef    *next;	/* next Ref */
3843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar     *value;	/* The Ref name */
385d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard    xmlAttrPtr        attr;	/* The attribute holding it */
3863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
388bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
389bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlBufferAllocationScheme:
390bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
391bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * A buffer allocation scheme can be defined to either match exactly the
392bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * need or double it's allocated size each time it is found too small
3933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
3963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_BUFFER_ALLOC_DOUBLEIT,
3973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_BUFFER_ALLOC_EXACT
3983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlBufferAllocationScheme;
3993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
400bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
401bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlBuffer:
402bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
403bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * A buffer structure
404bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
4053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlBuffer xmlBuffer;
4063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlBuffer *xmlBufferPtr;
4073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlBuffer {
4083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlChar *content;		/* The buffer content UTF8 */
4093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    unsigned int use;		/* The buffer size used */
4103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    unsigned int size;		/* The buffer size */
4113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlBufferAllocationScheme alloc; /* The realloc method */
4123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
4133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
414f69bb4b5bf3df1982f63a331b02cd7187456492fDaniel Veillard/**
415f69bb4b5bf3df1982f63a331b02cd7187456492fDaniel Veillard * xmlNode:
416f69bb4b5bf3df1982f63a331b02cd7187456492fDaniel Veillard *
4173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * A node in an XML tree.
4183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlNode xmlNode;
4203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlNode *xmlNodePtr;
4213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlNode {
4220ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
4233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType   type;	/* type number, must be second ! */
4243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar   *name;      /* the name of the node, or the entity */
4253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* parent->childs link */
4263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* last child link */
4273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *parent;	/* child->parent link */
4283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *next;	/* next sibling link  */
4293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *prev;	/* previous sibling link  */
4303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* the containing document */
431cbaf399537a1fb69ef97b079e4cb553869aaa4d9Daniel Veillard
432cbaf399537a1fb69ef97b079e4cb553869aaa4d9Daniel Veillard    /* End of common part */
4333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNs           *ns;        /* pointer to the associated namespace */
4343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifndef XML_USE_BUFFER_CONTENT
4353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlChar         *content;   /* the content */
4363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#else
4373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlBufferPtr     content;   /* the content in a buffer */
4383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
4393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttr *properties;/* properties list */
4403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNs           *nsDef;     /* namespace definitions on this node */
4413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
4423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4435e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
4445e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_GET_CONTENT:
4455e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
4465e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * macro to extract the content pointer of a node
4475e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
4485e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard#define XML_GET_CONTENT(n)					\
449566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard    ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)
4505e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard
4515e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
4525e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_GET_LINE:
4535e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
454566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard * macro to extract the line number of an element node.
455566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard * This will work only if line numbering is activated by
456566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard * calling xmlLineNumbersDefault(1) before parsing
4575e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
4585e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard#define XML_GET_LINE(n)						\
459566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard    ((n)->type == XML_ELEMENT_NODE ? (int) (n)->content : 0)
4607db3773a5cdafd122df5b69ba90be82535d46069Daniel Veillard
461bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
462bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlDoc:
463bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
4643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML document.
4653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlDoc xmlDoc;
4673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlDoc *xmlDocPtr;
4683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlDoc {
4690ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
4703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType  type;       /* XML_DOCUMENT_NODE, must be second ! */
4713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    char           *name;	/* name/filename/URI of the document */
4723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* the document tree */
4733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* last child link */
4743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *parent;	/* child->parent link */
4753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *next;	/* next sibling link  */
4763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *prev;	/* previous sibling link  */
4773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* autoreference to itself */
4783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    /* End of common part */
4803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    int             compression;/* level of zlib compression */
4813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    int             standalone; /* standalone document (no external refs) */
4823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd  *intSubset;	/* the document internal subset */
4833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd  *extSubset;	/* the document external subset */
4843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNs   *oldNs;	/* Global namespace, the old way */
4853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *version;	/* the XML version string */
4863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *encoding;   /* external initial encoding, if any */
4873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void           *ids;        /* Hash table for ID attributes if any */
4883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void           *refs;       /* Hash table for IDREFs attributes if any */
4893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *URL;	/* The URI for that document */
4903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    int             charset;    /* encoding of the in-memory content
4913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor				   actually an xmlCharEncoding */
4923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
4933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
494bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
495bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlChildrenNode:
496bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
497bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * Macro for compatibility naming layer with libxml1
4983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifndef xmlChildrenNode
5003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define xmlChildrenNode children
501bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard#endif
502bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
503bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
504bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlRootNode:
505bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
506bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * Macro for compatibility naming layer with libxml1
507bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
508bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard#ifndef xmlRootNode
5093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define xmlRootNode children
5103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
5113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
5133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Variables.
5143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
5153473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorLIBXML_DLL_IMPORT extern xmlNsPtr baseDTD;
5163473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorLIBXML_DLL_IMPORT extern int oldXMLWDcompatibility;/* maintain compatibility with old WD */
5173473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorLIBXML_DLL_IMPORT extern int xmlIndentTreeOutput;  /* try to indent the tree dumps */
5183473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorLIBXML_DLL_IMPORT extern xmlBufferAllocationScheme xmlBufferAllocScheme; /* alloc scheme to use */
519e356c280069914f0052891861a55fdfaff6dcf65Daniel VeillardLIBXML_DLL_IMPORT extern int xmlSaveNoEmptyTags; /* save empty tags as <empty></empty> */
520e356c280069914f0052891861a55fdfaff6dcf65Daniel VeillardLIBXML_DLL_IMPORT extern int xmlDefaultBufferSize; /* default buffer size */
5213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
5233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Handling Buffers.
5243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
5253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
52656a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillardvoid		xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
52756a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel VeillardxmlBufferAllocationScheme	 xmlGetBufferAllocationScheme(void);
52856a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard
5293473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlBufferPtr	xmlBufferCreate		(void);
5303473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlBufferPtr	xmlBufferCreateSize	(size_t size);
53156a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillardint		xmlBufferResize		(xmlBufferPtr buf,
53256a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard					 unsigned int size);
5333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferFree		(xmlBufferPtr buf);
5343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlBufferDump		(FILE *file,
5353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlBufferPtr buf);
5363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferAdd		(xmlBufferPtr buf,
5373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *str,
5383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
5393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferAddHead	(xmlBufferPtr buf,
5403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *str,
5413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
5423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferCat		(xmlBufferPtr buf,
5433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *str);
5443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferCCat		(xmlBufferPtr buf,
5453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *str);
5463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlBufferShrink		(xmlBufferPtr buf,
5473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 unsigned int len);
5483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlBufferGrow		(xmlBufferPtr buf,
5493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 unsigned int len);
5503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferEmpty		(xmlBufferPtr buf);
5513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorconst xmlChar*	xmlBufferContent	(const xmlBufferPtr buf);
5523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferSetAllocationScheme(xmlBufferPtr buf,
5533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlBufferAllocationScheme scheme);
5543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlBufferLength		(const xmlBufferPtr buf);
5553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
5573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Creating/freeing new structures
5583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
5593473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDtdPtr	xmlCreateIntSubset	(xmlDocPtr doc,
5603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
5613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *ExternalID,
5623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *SystemID);
5633473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDtdPtr	xmlNewDtd		(xmlDocPtr doc,
5643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
5653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *ExternalID,
5663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *SystemID);
5673473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDtdPtr	xmlGetIntSubset		(xmlDocPtr doc);
5683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeDtd		(xmlDtdPtr cur);
5693473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlNewGlobalNs		(xmlDocPtr doc,
5703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *href,
5713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *prefix);
5723473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlNewNs		(xmlNodePtr node,
5733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *href,
5743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *prefix);
5753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeNs		(xmlNsPtr cur);
57656a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillardvoid		xmlFreeNsList		(xmlNsPtr cur);
5773473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDocPtr 	xmlNewDoc		(const xmlChar *version);
5783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeDoc		(xmlDocPtr cur);
5793473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlNewDocProp		(xmlDocPtr doc,
5803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
5813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
5823473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlNewProp		(xmlNodePtr node,
5833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
5843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
5853473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlNewNsProp		(xmlNodePtr node,
5863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
5873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
5883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
5893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreePropList		(xmlAttrPtr cur);
5903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeProp		(xmlAttrPtr cur);
5913473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlCopyProp		(xmlNodePtr target,
5923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlAttrPtr cur);
5933473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlCopyPropList		(xmlNodePtr target,
5943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlAttrPtr cur);
5953473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDtdPtr	xmlCopyDtd		(xmlDtdPtr dtd);
5963473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDocPtr	xmlCopyDoc		(xmlDocPtr doc,
5973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int recursive);
5983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
6003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Creating new nodes
6013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
6023473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocNode		(xmlDocPtr doc,
6033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
6043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
6053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6063473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocRawNode	(xmlDocPtr doc,
6073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
6083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
6093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6103473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewNode		(xmlNsPtr ns,
6113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
6123473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewChild		(xmlNodePtr parent,
6133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
6143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
6153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6163473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewTextChild		(xmlNodePtr parent,
6173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
6183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
6193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6203473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocText		(xmlDocPtr doc,
6213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6223473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewText		(const xmlChar *content);
6233473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewPI		(const xmlChar *name,
6243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6253473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocTextLen	(xmlDocPtr doc,
6263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
6273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
6283473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewTextLen		(const xmlChar *content,
6293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
6303473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocComment	(xmlDocPtr doc,
6313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6323473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewComment		(const xmlChar *content);
6333473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewCDataBlock	(xmlDocPtr doc,
6343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
6353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
6363473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewCharRef		(xmlDocPtr doc,
6373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
6383473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewReference		(xmlDocPtr doc,
6393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
6402ebd7a7a0280ae8abc5d4e4e6abc511f8c3f01c4Daniel VeillardxmlNodePtr	xmlCopyNode		(const xmlNodePtr node,
6413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int recursive);
64282daa81a8bf6877bafc69716ce5e9ae6897108c7Daniel VeillardxmlNodePtr	xmlDocCopyNode		(xmlNodePtr node,
64382daa81a8bf6877bafc69716ce5e9ae6897108c7Daniel Veillard					 xmlDocPtr doc,
64482daa81a8bf6877bafc69716ce5e9ae6897108c7Daniel Veillard					 int recursive);
6453473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlCopyNodeList		(xmlNodePtr node);
6463473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocFragment	(xmlDocPtr doc);
6473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
6483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
6493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Navigating
6503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
6518faa783639e6a27aa01658f02c77a788c48ac01fDaniel Veillardlong		xmlGetLineNo		(xmlNodePtr node);
6528faa783639e6a27aa01658f02c77a788c48ac01fDaniel VeillardxmlChar *	xmlGetNodePath		(xmlNodePtr node);
6533473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlDocGetRootElement	(xmlDocPtr doc);
6543473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlGetLastChild		(xmlNodePtr parent);
6553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlNodeIsText		(xmlNodePtr node);
6563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlIsBlankNode		(xmlNodePtr node);
6573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
6583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
6593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Changing the structure
6603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
6613473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlDocSetRootElement	(xmlDocPtr doc,
6623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr root);
6633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetName		(xmlNodePtr cur,
6643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
6653473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlAddChild		(xmlNodePtr parent,
6663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
6673473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlAddChildList		(xmlNodePtr parent,
6683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
6693473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlReplaceNode		(xmlNodePtr old,
6703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
6713473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlAddSibling		(xmlNodePtr cur,
6723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr elem);
6733473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlAddPrevSibling	(xmlNodePtr cur,
6743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr elem);
6753473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlAddNextSibling	(xmlNodePtr cur,
6763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr elem);
6773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlUnlinkNode		(xmlNodePtr cur);
6783473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlTextMerge		(xmlNodePtr first,
6793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr second);
6803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlTextConcat		(xmlNodePtr node,
6813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
6823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
6833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeNodeList		(xmlNodePtr cur);
6843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeNode		(xmlNodePtr cur);
6853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlSetTreeDoc		(xmlNodePtr tree,
6863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc);
6873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlSetListDoc		(xmlNodePtr list,
6883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc);
6893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
6903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
6913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Namespaces
6923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
6933473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlSearchNs		(xmlDocPtr doc,
6943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr node,
6953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *nameSpace);
6963473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlSearchNsByHref	(xmlDocPtr doc,
6973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr node,
6983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *href);
6993473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr *	xmlGetNsList		(xmlDocPtr doc,
7003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr node);
7013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlSetNs		(xmlNodePtr node,
7023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns);
7033473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlCopyNamespace	(xmlNsPtr cur);
7043473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlCopyNamespaceList	(xmlNsPtr cur);
7053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
7063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
7073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Changing the content.
7083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
7093473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlSetProp		(xmlNodePtr node,
7103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
7123473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlGetProp		(xmlNodePtr node,
7133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
7143473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlHasProp		(xmlNodePtr node,
7153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
716e95e2396f34e7e7c5f472ad018d7207974074225Daniel VeillardxmlAttrPtr	xmlHasNsProp		(xmlNodePtr node,
717e95e2396f34e7e7c5f472ad018d7207974074225Daniel Veillard					 const xmlChar *name,
718ca2366aafd4c9ff3bf7c166bde18ce9af50e6995Daniel Veillard					 const xmlChar *nameSpace);
7193473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlSetNsProp		(xmlNodePtr node,
7203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
7213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
7233473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlGetNsProp		(xmlNodePtr node,
7243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *nameSpace);
7263473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlStringGetNodeList	(xmlDocPtr doc,
7273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
7283473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlStringLenGetNodeList	(xmlDocPtr doc,
7293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value,
7303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
7313473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlNodeListGetString	(xmlDocPtr doc,
7323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr list,
7333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int inLine);
7343473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlNodeListGetRawString	(xmlDocPtr doc,
7353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr list,
7363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int inLine);
7373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetContent	(xmlNodePtr cur,
7383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
7393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetContentLen	(xmlNodePtr cur,
7403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
7413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
7423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeAddContent	(xmlNodePtr cur,
7433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
7443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeAddContentLen	(xmlNodePtr cur,
7453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
7463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
7473473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlNodeGetContent	(xmlNodePtr cur);
7483473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlNodeGetLang		(xmlNodePtr cur);
7493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetLang		(xmlNodePtr cur,
7503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *lang);
7513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlNodeGetSpacePreserve	(xmlNodePtr cur);
752d16409207aa547c9249caf0f424250657a0065ddDaniel Veillardvoid		xmlNodeSetSpacePreserve (xmlNodePtr cur,
753d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard					 int val);
7543473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlNodeGetBase		(xmlDocPtr doc,
7553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
7563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetBase		(xmlNodePtr cur,
7573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlChar *uri);
7583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
7593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
7603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Removing content.
7613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
762d16409207aa547c9249caf0f424250657a0065ddDaniel Veillardint		xmlRemoveProp		(xmlAttrPtr cur);
7639403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillardint		xmlUnsetProp		(xmlNodePtr node,
7649403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillard					 const xmlChar *name);
7659403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillardint		xmlUnsetNsProp		(xmlNodePtr node,
7669403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillard					 xmlNsPtr ns,
7679403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillard					 const xmlChar *name);
7683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
7693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
7703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Internal, don't use
7713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
7723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifdef VMS
7733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferWriteXmlCHAR	(xmlBufferPtr buf,
7743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *string);
7753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define 	xmlBufferWriteCHAR 	xmlBufferWriteXmlCHAR
7763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#else
7773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferWriteCHAR	(xmlBufferPtr buf,
7783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *string);
7793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
7803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferWriteChar	(xmlBufferPtr buf,
7813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *string);
7823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferWriteQuotedString(xmlBufferPtr buf,
7833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *string);
7843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
7853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
7863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Namespace handling
7873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
7883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlReconciliateNs	(xmlDocPtr doc,
7893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr tree);
7903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
7913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
7923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Saving
7933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
7943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlDocDumpFormatMemory	(xmlDocPtr cur,
795963d2ae41574066f9b44bcae610dd280c1e57dd8Daniel Veillard					 xmlChar **mem,
7963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int *size,
7973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int format);
7983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlDocDumpMemory	(xmlDocPtr cur,
799963d2ae41574066f9b44bcae610dd280c1e57dd8Daniel Veillard					 xmlChar **mem,
8003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int *size);
8013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlDocDumpMemoryEnc	(xmlDocPtr out_doc,
8023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlChar **doc_txt_ptr,
8033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int * doc_txt_len,
8043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *txt_encoding);
8053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
8063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlChar **doc_txt_ptr,
8073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int * doc_txt_len,
8083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *txt_encoding,
8093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int format);
8103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlDocDump		(FILE *f,
8113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur);
8123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlElemDump		(FILE *f,
8133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc,
8143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
8153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlSaveFile		(const char *filename,
8163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur);
81767fee94e53838c397f53c1ea4d098a5b9d728896Daniel Veillardint		xmlSaveFormatFile	(const char *filename,
81867fee94e53838c397f53c1ea4d098a5b9d728896Daniel Veillard					 xmlDocPtr cur,
81967fee94e53838c397f53c1ea4d098a5b9d728896Daniel Veillard					 int format);
8203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeDump		(xmlBufferPtr buf,
8213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc,
8223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur,
8233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int level,
8243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int format);
8253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
8265a37bde34b693bc0296a2f03b775773e265b4c0eCETint		xmlSaveFileTo		(xmlOutputBufferPtr buf,
8275a37bde34b693bc0296a2f03b775773e265b4c0eCET					 xmlDocPtr cur,
8285a37bde34b693bc0296a2f03b775773e265b4c0eCET					 const char *encoding);
8295a37bde34b693bc0296a2f03b775773e265b4c0eCETint             xmlSaveFormatFileTo     (xmlOutputBufferPtr buf,
8303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur,
8315a37bde34b693bc0296a2f03b775773e265b4c0eCET				         const char *encoding,
8325a37bde34b693bc0296a2f03b775773e265b4c0eCET				         int format);
8335a37bde34b693bc0296a2f03b775773e265b4c0eCETvoid		xmlNodeDumpOutput	(xmlOutputBufferPtr buf,
8345a37bde34b693bc0296a2f03b775773e265b4c0eCET					 xmlDocPtr doc,
8355a37bde34b693bc0296a2f03b775773e265b4c0eCET					 xmlNodePtr cur,
8365a37bde34b693bc0296a2f03b775773e265b4c0eCET					 int level,
8375a37bde34b693bc0296a2f03b775773e265b4c0eCET					 int format,
8383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *encoding);
8393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
840d16409207aa547c9249caf0f424250657a0065ddDaniel Veillardint		xmlSaveFormatFileEnc    (const char *filename,
841d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard					 xmlDocPtr cur,
842d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard					 const char *encoding,
843d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard					 int format);
844f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
8453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlSaveFileEnc		(const char *filename,
8463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur,
8473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *encoding);
8483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
8493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
8503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Compression
8513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
8523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlGetDocCompressMode	(xmlDocPtr doc);
8533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlSetDocCompressMode	(xmlDocPtr doc,
8543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int mode);
8553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlGetCompressMode	(void);
8563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlSetCompressMode	(int mode);
8573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
8583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifdef __cplusplus
8593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor}
8603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
8613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
8623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif /* __XML_TREE_H__ */
8633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
864