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