tree.h revision 566d4dfac3ff5f7b235738f6f63bd369533874bf
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
45d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard#define BASE_BUFFER_SIZE 4000
46d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard
475e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
485e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_XML_NAMESPACE:
495e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
505e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * This is the namespace for the special xml: prefix predefined in the
515e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML Namespace specification
525e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define XML_XML_NAMESPACE \
543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    (const xmlChar *) "http://www.w3.org/XML/1998/namespace"
553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * The different element types carried by an XML tree
583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * NOTE: This is synchronized with DOM Level1 values
603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *       See http://www.w3.org/TR/REC-DOM-Level-1/
613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * be deprecated to use an XML_DTD_NODE.
643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_NODE=		1,
673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NODE=		2,
683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_TEXT_NODE=		3,
693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_CDATA_SECTION_NODE=	4,
703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ENTITY_REF_NODE=	5,
713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ENTITY_NODE=		6,
723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_PI_NODE=		7,
733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_COMMENT_NODE=		8,
743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DOCUMENT_NODE=		9,
753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DOCUMENT_TYPE_NODE=	10,
763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DOCUMENT_FRAG_NODE=	11,
773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_NOTATION_NODE=		12,
783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_HTML_DOCUMENT_NODE=	13,
793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DTD_NODE=		14,
803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_DECL=		15,
813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_DECL=		16,
823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ENTITY_DECL=		17,
833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_NAMESPACE_DECL=		18,
843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_XINCLUDE_START=		19,
853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_XINCLUDE_END=		20
86eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard#ifdef LIBXML_DOCB_ENABLED
87eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard   ,XML_DOCB_DOCUMENT_NODE=	21
883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementType;
903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
91bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
92bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlChar:
933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
94bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * This is a basic byte in an UTF-8 encoded string.
95bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * It's unsigned allowing to pinpoint case where char * are assigned
96bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * to xmlChar * (possibly making serialization back impossible).
973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef unsigned char xmlChar;
1003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
101bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
102bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * BAD_CAST:
103bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
104bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * Macro to cast a string to an xmlChar * when one know its safe.
105bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
1063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define BAD_CAST (xmlChar *)
1073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
108bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
109bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlNotation:
110bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
1113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * a DTD Notation definition
1123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlNotation xmlNotation;
1153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlNotation *xmlNotationPtr;
1163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlNotation {
1179e7160d45a18bfa26d708e22ba991f7670d0128bDaniel Veillard    const xmlChar               *name;	        /* Notation name */
1183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar               *PublicID;	/* Public identifier, if any */
1193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar               *SystemID;	/* System identifier, if any */
1203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
1213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
122bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
123bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttributeType:
124bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
125bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * a DTD Attribute type definition
1263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
1293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_CDATA = 1,
1303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ID,
1313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_IDREF	,
1323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_IDREFS,
1333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ENTITY,
1343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ENTITIES,
1353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NMTOKEN,
1363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NMTOKENS,
1373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ENUMERATION,
1383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NOTATION
1393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlAttributeType;
1403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
141bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
142bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttributeDefault:
143bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
144bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * a DTD Attribute default definition
145bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
146bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
1473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
1483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NONE = 1,
1493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_REQUIRED,
1503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_IMPLIED,
1513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_FIXED
1523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlAttributeDefault;
1533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
154bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
155bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlEnumeration:
156bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
157bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * list structure used when there is an enumeration in DTDs
158bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
159bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
1603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlEnumeration xmlEnumeration;
1613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlEnumeration *xmlEnumerationPtr;
1623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlEnumeration {
1633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlEnumeration    *next;	/* next one */
1643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar            *name;	/* Enumeration name */
1653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
1663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
167bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
168bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttribute:
169bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
170bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * an Attribute declaration in a DTD
171bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
172bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
1733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlAttribute xmlAttribute;
1743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlAttribute *xmlAttributePtr;
1753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlAttribute {
1760ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	        /* application data */
1773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType          type;       /* XML_ATTRIBUTE_DECL, must be second ! */
1783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar          *name;	/* Attribute name */
1793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode    *children;	/* NULL */
1803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *last;	/* NULL */
1813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd       *parent;	/* -> DTD */
1823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *next;	/* next sibling link  */
1833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *prev;	/* previous sibling link  */
1843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc          *doc;       /* the containing document */
1853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttribute  *nexth;	/* next in hash table */
1873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributeType       atype;	/* The attribute type */
1883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributeDefault      def;	/* the default */
1893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *defaultValue;	/* or the default value */
1903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlEnumerationPtr       tree;       /* or the enumeration tree if any */
1913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar        *prefix;	/* the namespace prefix if any */
1923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar          *elem;	/* Element holding the attribute */
1933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
1943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
195bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
196bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementContentType:
197bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
198bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * Possible definitions of element content types
1993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
2003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
2013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_PCDATA = 1,
2023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_ELEMENT,
2033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_SEQ,
2043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_OR
2053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementContentType;
2063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
207bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
208bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementContentOccur:
209bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
210bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * Possible definitions of element content occurences
211bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
2123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
2133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_ONCE = 1,
2143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_OPT,
2153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_MULT,
2163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_PLUS
2173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementContentOccur;
2183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
219bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
220bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementContent:
221bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
222bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * an XML Element content as stored after parsing an element definition
223bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * in a DTD.
224bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
225bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlElementContent xmlElementContent;
2273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlElementContent *xmlElementContentPtr;
2283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlElementContent {
2293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementContentType     type;	/* PCDATA, ELEMENT, SEQ or OR */
2303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementContentOccur    ocur;	/* ONCE, OPT, MULT or PLUS */
231be480fbbe3e061a28f8719175a124ddc8575e0a8Daniel Veillard    const xmlChar             *name;	/* Element name */
2323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlElementContent *c1;	/* first child */
2333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlElementContent *c2;	/* second child */
234dab4cb37d8fceb7457c40effc1ae43559221610bDaniel Veillard    struct _xmlElementContent *parent;	/* parent */
235be480fbbe3e061a28f8719175a124ddc8575e0a8Daniel Veillard    const xmlChar             *prefix;	/* Element name */
2363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
2373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
238bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
239bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementTypeVal:
240bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
241bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * the differnt possibility for an element content type
242bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
243bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
245a10efa8aa6e8a89ad1f5fa05bd591fed02c88dbaDaniel Veillard    XML_ELEMENT_TYPE_UNDEFINED = 0,
2463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_EMPTY = 1,
2473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_ANY,
2483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_MIXED,
2493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_ELEMENT
2503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementTypeVal;
2513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
252bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
253bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElement:
254bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
255bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * an XML Element declaration from a DTD
256bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
257bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlElement xmlElement;
2593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlElement *xmlElementPtr;
2603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlElement {
2610ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	        /* application data */
2623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType          type;       /* XML_ELEMENT_DECL, must be second ! */
2633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar          *name;	/* Element name */
2643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode    *children;	/* NULL */
2653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *last;	/* NULL */
2663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd       *parent;	/* -> DTD */
2673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *next;	/* next sibling link  */
2683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *prev;	/* previous sibling link  */
2693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc          *doc;       /* the containing document */
2703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementTypeVal      etype;	/* The type */
2723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementContentPtr content;	/* the allowed element content */
2733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributePtr   attributes;	/* List of the declared attributes */
2743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar        *prefix;	/* the namespace prefix if any */
2753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
2763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
277bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2785e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
2795e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_LOCAL_NAMESPACE:
2805e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
2815e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * A namespace declaration node
2825e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
283bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard#define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
284bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillardtypedef xmlElementType xmlNsType;
285bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
286bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
287bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlNs:
288bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
2893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML namespace.
2903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Note that prefix == NULL is valid, it defines the default namespace
2913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * within the subtree (until overriden).
2923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
2933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * xmlNsType is unified with xmlElementType
2943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
2953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlNs xmlNs;
2973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlNs *xmlNsPtr;
2983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlNs {
2993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNs  *next;	/* next Ns link for this node  */
3003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNsType      type;	/* global or local */
3013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *href;	/* URL for the namespace */
3023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *prefix;	/* prefix for the namespace */
3033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
305bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
306bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlDtd:
307bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
308bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * An XML DtD, as defined by <!DOCTYPE ... There is actually one for
309bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * the internal subset and for the external subset
3103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlDtd xmlDtd;
3123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlDtd *xmlDtdPtr;
3133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlDtd {
3140ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
3153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType  type;       /* XML_DTD_NODE, must be second ! */
3163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *name;	/* Name of the DTD */
3173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* the value of the property link */
3183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* last child link */
3193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *parent;	/* child->parent link */
3203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *next;	/* next sibling link  */
3213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *prev;	/* previous sibling link  */
3223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* the containing document */
3233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    /* End of common part */
3253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *notations;   /* Hash table for notations if any */
3263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *elements;    /* Hash table for elements if any */
3273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *attributes;  /* Hash table for attributes if any */
3283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *entities;    /* Hash table for entities if any */
3293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *ExternalID;	/* External identifier for PUBLIC DTD */
3303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *SystemID;	/* URI for a SYSTEM or PUBLIC DTD */
3313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *pentities;   /* Hash table for param entities if any */
3323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
334bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
335bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttr:
336bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
337bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * A attribute on an XML node.
3383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlAttr xmlAttr;
3403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlAttr *xmlAttrPtr;
3413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlAttr {
3420ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
3433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType   type;      /* XML_ATTRIBUTE_NODE, must be second ! */
3443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar   *name;      /* the name of the property */
3453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* the value of the property */
3463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* NULL */
3473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *parent;	/* child->parent link */
3483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttr *next;	/* next sibling link  */
3493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttr *prev;	/* previous sibling link  */
3503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* the containing document */
3513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNs           *ns;        /* pointer to the associated namespace */
3523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributeType atype;     /* the attribute type if validating */
3533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
355bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
356bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlID:
357bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
3583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML ID instance.
3593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlID xmlID;
3623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlID *xmlIDPtr;
3633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlID {
3643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlID    *next;	/* next ID */
3653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar    *value;	/* The ID name */
3663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttrPtr        attr;	/* The attribut holding it */
3673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
369bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
370bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlRef:
371bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
3723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML IDREF instance.
3733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlRef xmlRef;
3763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlRef *xmlRefPtr;
3773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlRef {
3783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlRef    *next;	/* next Ref */
3793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar     *value;	/* The Ref name */
3803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttrPtr        attr;	/* The attribut holding it */
3813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
383bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
384bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlBufferAllocationScheme:
385bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
386bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * A buffer allocation scheme can be defined to either match exactly the
387bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * need or double it's allocated size each time it is found too small
3883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
3913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_BUFFER_ALLOC_DOUBLEIT,
3923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_BUFFER_ALLOC_EXACT
3933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlBufferAllocationScheme;
3943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
395bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
396bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlBuffer:
397bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
398bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * A buffer structure
399bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
4003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlBuffer xmlBuffer;
4013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlBuffer *xmlBufferPtr;
4023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlBuffer {
4033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlChar *content;		/* The buffer content UTF8 */
4043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    unsigned int use;		/* The buffer size used */
4053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    unsigned int size;		/* The buffer size */
4063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlBufferAllocationScheme alloc; /* The realloc method */
4073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
4083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
409f69bb4b5bf3df1982f63a331b02cd7187456492fDaniel Veillard/**
410f69bb4b5bf3df1982f63a331b02cd7187456492fDaniel Veillard * xmlNode:
411f69bb4b5bf3df1982f63a331b02cd7187456492fDaniel Veillard *
4123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * A node in an XML tree.
4133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlNode xmlNode;
4153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlNode *xmlNodePtr;
4163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlNode {
4170ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
4183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType   type;	/* type number, must be second ! */
4193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar   *name;      /* the name of the node, or the entity */
4203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* parent->childs link */
4213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* last child link */
4223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *parent;	/* child->parent link */
4233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *next;	/* next sibling link  */
4243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *prev;	/* previous sibling link  */
4253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* the containing document */
4263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNs           *ns;        /* pointer to the associated namespace */
4273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifndef XML_USE_BUFFER_CONTENT
4283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlChar         *content;   /* the content */
4293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#else
4303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlBufferPtr     content;   /* the content in a buffer */
4313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
4323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    /* End of common part */
4343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttr *properties;/* properties list */
4353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNs           *nsDef;     /* namespace definitions on this node */
4363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
4373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4385e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
4395e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_GET_CONTENT:
4405e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
4415e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * macro to extract the content pointer of a node
4425e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
4435e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard#define XML_GET_CONTENT(n)					\
444566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard    ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)
4455e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard
4465e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
4475e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_GET_LINE:
4485e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
449566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard * macro to extract the line number of an element node.
450566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard * This will work only if line numbering is activated by
451566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard * calling xmlLineNumbersDefault(1) before parsing
4525e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
4535e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard#define XML_GET_LINE(n)						\
454566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard    ((n)->type == XML_ELEMENT_NODE ? (int) (n)->content : 0)
4557db3773a5cdafd122df5b69ba90be82535d46069Daniel Veillard
456bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
457bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlDoc:
458bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
4593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML document.
4603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlDoc xmlDoc;
4623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlDoc *xmlDocPtr;
4633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlDoc {
4640ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
4653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType  type;       /* XML_DOCUMENT_NODE, must be second ! */
4663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    char           *name;	/* name/filename/URI of the document */
4673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* the document tree */
4683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* last child link */
4693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *parent;	/* child->parent link */
4703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *next;	/* next sibling link  */
4713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *prev;	/* previous sibling link  */
4723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* autoreference to itself */
4733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    /* End of common part */
4753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    int             compression;/* level of zlib compression */
4763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    int             standalone; /* standalone document (no external refs) */
4773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd  *intSubset;	/* the document internal subset */
4783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd  *extSubset;	/* the document external subset */
4793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNs   *oldNs;	/* Global namespace, the old way */
4803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *version;	/* the XML version string */
4813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *encoding;   /* external initial encoding, if any */
4823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void           *ids;        /* Hash table for ID attributes if any */
4833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void           *refs;       /* Hash table for IDREFs attributes if any */
4843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *URL;	/* The URI for that document */
4853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    int             charset;    /* encoding of the in-memory content
4863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor				   actually an xmlCharEncoding */
4873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
4883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
489bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
490bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlChildrenNode:
491bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
492bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * Macro for compatibility naming layer with libxml1
4933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifndef xmlChildrenNode
4953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define xmlChildrenNode children
496bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard#endif
497bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
498bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
499bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlRootNode:
500bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
501bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * Macro for compatibility naming layer with libxml1
502bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
503bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard#ifndef xmlRootNode
5043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define xmlRootNode children
5053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
5063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
5083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Variables.
5093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
5103473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorLIBXML_DLL_IMPORT extern xmlNsPtr baseDTD;
5113473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorLIBXML_DLL_IMPORT extern int oldXMLWDcompatibility;/* maintain compatibility with old WD */
5123473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorLIBXML_DLL_IMPORT extern int xmlIndentTreeOutput;  /* try to indent the tree dumps */
5133473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorLIBXML_DLL_IMPORT extern xmlBufferAllocationScheme xmlBufferAllocScheme; /* alloc scheme to use */
514e356c280069914f0052891861a55fdfaff6dcf65Daniel VeillardLIBXML_DLL_IMPORT extern int xmlSaveNoEmptyTags; /* save empty tags as <empty></empty> */
515e356c280069914f0052891861a55fdfaff6dcf65Daniel VeillardLIBXML_DLL_IMPORT extern int xmlDefaultBufferSize; /* default buffer size */
5163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
5183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Handling Buffers.
5193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
5203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
52156a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillardvoid		xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
52256a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel VeillardxmlBufferAllocationScheme	 xmlGetBufferAllocationScheme(void);
52356a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard
5243473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlBufferPtr	xmlBufferCreate		(void);
5253473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlBufferPtr	xmlBufferCreateSize	(size_t size);
52656a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillardint		xmlBufferResize		(xmlBufferPtr buf,
52756a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard					 unsigned int size);
5283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferFree		(xmlBufferPtr buf);
5293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlBufferDump		(FILE *file,
5303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlBufferPtr buf);
5313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferAdd		(xmlBufferPtr buf,
5323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *str,
5333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
5343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferAddHead	(xmlBufferPtr buf,
5353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *str,
5363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
5373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferCat		(xmlBufferPtr buf,
5383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *str);
5393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferCCat		(xmlBufferPtr buf,
5403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *str);
5413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlBufferShrink		(xmlBufferPtr buf,
5423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 unsigned int len);
5433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlBufferGrow		(xmlBufferPtr buf,
5443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 unsigned int len);
5453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferEmpty		(xmlBufferPtr buf);
5463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorconst xmlChar*	xmlBufferContent	(const xmlBufferPtr buf);
5473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferSetAllocationScheme(xmlBufferPtr buf,
5483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlBufferAllocationScheme scheme);
5493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlBufferLength		(const xmlBufferPtr buf);
5503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
5523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Creating/freeing new structures
5533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
5543473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDtdPtr	xmlCreateIntSubset	(xmlDocPtr doc,
5553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
5563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *ExternalID,
5573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *SystemID);
5583473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDtdPtr	xmlNewDtd		(xmlDocPtr doc,
5593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
5603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *ExternalID,
5613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *SystemID);
5623473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDtdPtr	xmlGetIntSubset		(xmlDocPtr doc);
5633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeDtd		(xmlDtdPtr cur);
5643473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlNewGlobalNs		(xmlDocPtr doc,
5653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *href,
5663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *prefix);
5673473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlNewNs		(xmlNodePtr node,
5683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *href,
5693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *prefix);
5703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeNs		(xmlNsPtr cur);
57156a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillardvoid		xmlFreeNsList		(xmlNsPtr cur);
5723473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDocPtr 	xmlNewDoc		(const xmlChar *version);
5733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeDoc		(xmlDocPtr cur);
5743473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlNewDocProp		(xmlDocPtr doc,
5753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
5763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
5773473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlNewProp		(xmlNodePtr node,
5783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
5793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
5803473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlNewNsProp		(xmlNodePtr node,
5813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
5823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
5833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
5843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreePropList		(xmlAttrPtr cur);
5853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeProp		(xmlAttrPtr cur);
5863473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlCopyProp		(xmlNodePtr target,
5873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlAttrPtr cur);
5883473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlCopyPropList		(xmlNodePtr target,
5893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlAttrPtr cur);
5903473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDtdPtr	xmlCopyDtd		(xmlDtdPtr dtd);
5913473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlDocPtr	xmlCopyDoc		(xmlDocPtr doc,
5923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int recursive);
5933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
5953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Creating new nodes
5963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
5973473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocNode		(xmlDocPtr doc,
5983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
5993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
6003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6013473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocRawNode	(xmlDocPtr doc,
6023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
6033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
6043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6053473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewNode		(xmlNsPtr ns,
6063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
6073473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewChild		(xmlNodePtr parent,
6083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
6093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
6103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6113473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewTextChild		(xmlNodePtr parent,
6123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
6133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
6143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6153473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocText		(xmlDocPtr doc,
6163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6173473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewText		(const xmlChar *content);
6183473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewPI		(const xmlChar *name,
6193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6203473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocTextLen	(xmlDocPtr doc,
6213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
6223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
6233473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewTextLen		(const xmlChar *content,
6243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
6253473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocComment	(xmlDocPtr doc,
6263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
6273473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewComment		(const xmlChar *content);
6283473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewCDataBlock	(xmlDocPtr doc,
6293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
6303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
6313473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewCharRef		(xmlDocPtr doc,
6323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
6333473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewReference		(xmlDocPtr doc,
6343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
6352ebd7a7a0280ae8abc5d4e4e6abc511f8c3f01c4Daniel VeillardxmlNodePtr	xmlCopyNode		(const xmlNodePtr node,
6363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int recursive);
63782daa81a8bf6877bafc69716ce5e9ae6897108c7Daniel VeillardxmlNodePtr	xmlDocCopyNode		(xmlNodePtr node,
63882daa81a8bf6877bafc69716ce5e9ae6897108c7Daniel Veillard					 xmlDocPtr doc,
63982daa81a8bf6877bafc69716ce5e9ae6897108c7Daniel Veillard					 int recursive);
6403473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlCopyNodeList		(xmlNodePtr node);
6413473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlNewDocFragment	(xmlDocPtr doc);
6423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
6433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
6443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Navigating
6453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
6463473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlDocGetRootElement	(xmlDocPtr doc);
6473473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlGetLastChild		(xmlNodePtr parent);
6483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlNodeIsText		(xmlNodePtr node);
6493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlIsBlankNode		(xmlNodePtr node);
6503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
6513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
6523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Changing the structure
6533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
6543473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlDocSetRootElement	(xmlDocPtr doc,
6553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr root);
6563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetName		(xmlNodePtr cur,
6573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
6583473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlAddChild		(xmlNodePtr parent,
6593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
6603473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlAddChildList		(xmlNodePtr parent,
6613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
6623473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlReplaceNode		(xmlNodePtr old,
6633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
6643473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlAddSibling		(xmlNodePtr cur,
6653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr elem);
6663473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlAddPrevSibling	(xmlNodePtr cur,
6673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr elem);
6683473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlAddNextSibling	(xmlNodePtr cur,
6693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr elem);
6703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlUnlinkNode		(xmlNodePtr cur);
6713473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlTextMerge		(xmlNodePtr first,
6723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr second);
6733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlTextConcat		(xmlNodePtr node,
6743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
6753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
6763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeNodeList		(xmlNodePtr cur);
6773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlFreeNode		(xmlNodePtr cur);
6783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlSetTreeDoc		(xmlNodePtr tree,
6793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc);
6803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlSetListDoc		(xmlNodePtr list,
6813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc);
6823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
6833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
6843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Namespaces
6853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
6863473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlSearchNs		(xmlDocPtr doc,
6873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr node,
6883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *nameSpace);
6893473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlSearchNsByHref	(xmlDocPtr doc,
6903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr node,
6913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *href);
6923473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr *	xmlGetNsList		(xmlDocPtr doc,
6933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr node);
6943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlSetNs		(xmlNodePtr node,
6953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns);
6963473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlCopyNamespace	(xmlNsPtr cur);
6973473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNsPtr	xmlCopyNamespaceList	(xmlNsPtr cur);
6983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
6993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
7003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Changing the content.
7013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
7023473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlSetProp		(xmlNodePtr node,
7033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
7053473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlGetProp		(xmlNodePtr node,
7063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
7073473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlHasProp		(xmlNodePtr node,
7083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
709e95e2396f34e7e7c5f472ad018d7207974074225Daniel VeillardxmlAttrPtr	xmlHasNsProp		(xmlNodePtr node,
710e95e2396f34e7e7c5f472ad018d7207974074225Daniel Veillard					 const xmlChar *name,
711ca2366aafd4c9ff3bf7c166bde18ce9af50e6995Daniel Veillard					 const xmlChar *nameSpace);
7123473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlAttrPtr	xmlSetNsProp		(xmlNodePtr node,
7133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
7143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
7163473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlGetNsProp		(xmlNodePtr node,
7173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *nameSpace);
7193473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlStringGetNodeList	(xmlDocPtr doc,
7203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
7213473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlNodePtr	xmlStringLenGetNodeList	(xmlDocPtr doc,
7223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value,
7233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
7243473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlNodeListGetString	(xmlDocPtr doc,
7253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr list,
7263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int inLine);
7273473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlNodeListGetRawString	(xmlDocPtr doc,
7283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr list,
7293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int inLine);
7303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetContent	(xmlNodePtr cur,
7313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
7323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetContentLen	(xmlNodePtr cur,
7333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
7343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
7353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeAddContent	(xmlNodePtr cur,
7363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
7373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeAddContentLen	(xmlNodePtr cur,
7383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
7393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
7403473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlNodeGetContent	(xmlNodePtr cur);
7413473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlNodeGetLang		(xmlNodePtr cur);
7423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetLang		(xmlNodePtr cur,
7433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *lang);
7443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlNodeGetSpacePreserve	(xmlNodePtr cur);
7453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetSpacePreserve (xmlNodePtr cur, int
7463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 val);
7473473f88a7abdf4e585e267288fb77e898c580d2bOwen TaylorxmlChar *	xmlNodeGetBase		(xmlDocPtr doc,
7483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
7493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeSetBase		(xmlNodePtr cur,
7503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlChar *uri);
7513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
7523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
7533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Removing content.
7543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
7553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlRemoveProp		(xmlAttrPtr attr);
7569403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillardint		xmlUnsetProp		(xmlNodePtr node,
7579403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillard					 const xmlChar *name);
7589403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillardint		xmlUnsetNsProp		(xmlNodePtr node,
7599403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillard					 xmlNsPtr ns,
7609403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillard					 const xmlChar *name);
7613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
7623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
7633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Internal, don't use
7643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
7653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifdef VMS
7663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferWriteXmlCHAR	(xmlBufferPtr buf,
7673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *string);
7683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define 	xmlBufferWriteCHAR 	xmlBufferWriteXmlCHAR
7693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#else
7703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferWriteCHAR	(xmlBufferPtr buf,
7713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *string);
7723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
7733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferWriteChar	(xmlBufferPtr buf,
7743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *string);
7753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlBufferWriteQuotedString(xmlBufferPtr buf,
7763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *string);
7773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
7783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
7793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Namespace handling
7803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
7813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlReconciliateNs	(xmlDocPtr doc,
7823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr tree);
7833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
7843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
7853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Saving
7863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
7873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlDocDumpFormatMemory	(xmlDocPtr cur,
7883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlChar**mem,
7893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int *size,
7903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int format);
7913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlDocDumpMemory	(xmlDocPtr cur,
7923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlChar**mem,
7933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int *size);
7943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlDocDumpMemoryEnc	(xmlDocPtr out_doc,
7953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlChar **doc_txt_ptr,
7963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int * doc_txt_len,
7973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *txt_encoding);
7983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
7993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlChar **doc_txt_ptr,
8003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int * doc_txt_len,
8013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *txt_encoding,
8023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int format);
8033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlDocDump		(FILE *f,
8043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur);
8053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlElemDump		(FILE *f,
8063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc,
8073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
8083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlSaveFile		(const char *filename,
8093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur);
81067fee94e53838c397f53c1ea4d098a5b9d728896Daniel Veillardint		xmlSaveFormatFile	(const char *filename,
81167fee94e53838c397f53c1ea4d098a5b9d728896Daniel Veillard					 xmlDocPtr cur,
81267fee94e53838c397f53c1ea4d098a5b9d728896Daniel Veillard					 int format);
8133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlNodeDump		(xmlBufferPtr buf,
8143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc,
8153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur,
8163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int level,
8173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int format);
8183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
8195a37bde34b693bc0296a2f03b775773e265b4c0eCETint		xmlSaveFileTo		(xmlOutputBufferPtr buf,
8205a37bde34b693bc0296a2f03b775773e265b4c0eCET					 xmlDocPtr cur,
8215a37bde34b693bc0296a2f03b775773e265b4c0eCET					 const char *encoding);
8225a37bde34b693bc0296a2f03b775773e265b4c0eCETint             xmlSaveFormatFileTo     (xmlOutputBufferPtr buf,
8233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur,
8245a37bde34b693bc0296a2f03b775773e265b4c0eCET				         const char *encoding,
8255a37bde34b693bc0296a2f03b775773e265b4c0eCET				         int format);
8265a37bde34b693bc0296a2f03b775773e265b4c0eCETvoid		xmlNodeDumpOutput	(xmlOutputBufferPtr buf,
8275a37bde34b693bc0296a2f03b775773e265b4c0eCET					 xmlDocPtr doc,
8285a37bde34b693bc0296a2f03b775773e265b4c0eCET					 xmlNodePtr cur,
8295a37bde34b693bc0296a2f03b775773e265b4c0eCET					 int level,
8305a37bde34b693bc0296a2f03b775773e265b4c0eCET					 int format,
8313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *encoding);
8323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
833f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillardint		xmlSaveFormatFileEnc    ( const char * filename,
834f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard					  xmlDocPtr cur,
835f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard					  const char * encoding,
836f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard					  int format );
837f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
8383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlSaveFileEnc		(const char *filename,
8393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur,
8403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *encoding);
8413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
8423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
8433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Compression
8443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
8453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlGetDocCompressMode	(xmlDocPtr doc);
8463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlSetDocCompressMode	(xmlDocPtr doc,
8473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int mode);
8483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorint		xmlGetCompressMode	(void);
8493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorvoid		xmlSetCompressMode	(int mode);
8503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
8513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifdef __cplusplus
8523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor}
8533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
8543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
8553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif /* __XML_TREE_H__ */
8563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
857