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