13473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
2be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Summary: interfaces for tree manipulation
3be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Description: this module describes the structures found in an tree resulting
4be5869729a416032a4abb5a65430d25831828f75Daniel Veillard *              from an XML or HTML parsing, as well as the API provided for
5be5869729a416032a4abb5a65430d25831828f75Daniel Veillard *              various processing on that tree
63473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
7be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Copy: See Copyright for the status of this software.
83473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
9be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Author: Daniel Veillard
103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifndef __XML_TREE_H__
133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define __XML_TREE_H__
143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include <stdio.h>
16bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard#include <limits.h>
173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include <libxml/xmlversion.h>
18a2e844a3b3503367a4418187e77ccc977f186909William M. Brack#include <libxml/xmlstring.h>
197ae91bcd9e94946a7be41290cb67ffc9c2cf0a9fIgor Zlatkovic
203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifdef __cplusplus
213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern "C" {
223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
248bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard/*
258bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard * Some of the basic types pointer to structures:
268bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard */
278bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard/* xmlIO.h */
288bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef struct _xmlParserInputBuffer xmlParserInputBuffer;
298bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef xmlParserInputBuffer *xmlParserInputBufferPtr;
308bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard
315a37bde34b693bc0296a2f03b775773e265b4c0eCETtypedef struct _xmlOutputBuffer xmlOutputBuffer;
325a37bde34b693bc0296a2f03b775773e265b4c0eCETtypedef xmlOutputBuffer *xmlOutputBufferPtr;
335a37bde34b693bc0296a2f03b775773e265b4c0eCET
348bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard/* parser.h */
358bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef struct _xmlParserInput xmlParserInput;
368bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef xmlParserInput *xmlParserInputPtr;
378bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard
388bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef struct _xmlParserCtxt xmlParserCtxt;
398bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillardtypedef xmlParserCtxt *xmlParserCtxtPtr;
408bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard
416c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillardtypedef struct _xmlSAXLocator xmlSAXLocator;
426c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillardtypedef xmlSAXLocator *xmlSAXLocatorPtr;
436c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillard
446c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillardtypedef struct _xmlSAXHandler xmlSAXHandler;
456c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillardtypedef xmlSAXHandler *xmlSAXHandlerPtr;
466c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillard
476c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillard/* entities.h */
486c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillardtypedef struct _xmlEntity xmlEntity;
496c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillardtypedef xmlEntity *xmlEntityPtr;
506c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillard
519d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/**
529d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * BASE_BUFFER_SIZE:
539d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard *
5461f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * default buffer size 4000.
559d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */
566155d8aafa3cc60b5fdaaf75b423e489ea8280c4Daniel Veillard#define BASE_BUFFER_SIZE 4096
57d0463560300f1d8b3e41d70c3728ed84fdc8dd30Daniel Veillard
585e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
59978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * LIBXML_NAMESPACE_DICT:
60978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik *
61978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * Defines experimental behaviour:
62978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * 1) xmlNs gets an additional field @context (a xmlDoc)
63978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc.
64978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik */
65978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik/* #define LIBXML_NAMESPACE_DICT */
66978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik
67978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik/**
68465a000b1080427bd62d89a925409b7db78616acDaniel Veillard * xmlBufferAllocationScheme:
69465a000b1080427bd62d89a925409b7db78616acDaniel Veillard *
70465a000b1080427bd62d89a925409b7db78616acDaniel Veillard * A buffer allocation scheme can be defined to either match exactly the
71465a000b1080427bd62d89a925409b7db78616acDaniel Veillard * need or double it's allocated size each time it is found too small.
72465a000b1080427bd62d89a925409b7db78616acDaniel Veillard */
73465a000b1080427bd62d89a925409b7db78616acDaniel Veillard
74465a000b1080427bd62d89a925409b7db78616acDaniel Veillardtypedef enum {
75e83e93e715709bb0d117c5386d89f0e5b08d1484Daniel Veillard    XML_BUFFER_ALLOC_DOUBLEIT,	/* double each time one need to grow */
76e83e93e715709bb0d117c5386d89f0e5b08d1484Daniel Veillard    XML_BUFFER_ALLOC_EXACT,	/* grow only to the minimal size */
77e83e93e715709bb0d117c5386d89f0e5b08d1484Daniel Veillard    XML_BUFFER_ALLOC_IMMUTABLE, /* immutable buffer */
787d0d2a50ac94850d5c5a6360fa1c931a89e75dddConrad Irwin    XML_BUFFER_ALLOC_IO,	/* special allocation scheme used for I/O */
79213f1fe0d76d30eaed6e5853057defc43e6df2c9Daniel Veillard    XML_BUFFER_ALLOC_HYBRID,	/* exact up to a threshold, and doubleit thereafter */
80213f1fe0d76d30eaed6e5853057defc43e6df2c9Daniel Veillard    XML_BUFFER_ALLOC_BOUNDED	/* limit the upper size of the buffer */
81465a000b1080427bd62d89a925409b7db78616acDaniel Veillard} xmlBufferAllocationScheme;
82465a000b1080427bd62d89a925409b7db78616acDaniel Veillard
83465a000b1080427bd62d89a925409b7db78616acDaniel Veillard/**
84465a000b1080427bd62d89a925409b7db78616acDaniel Veillard * xmlBuffer:
85465a000b1080427bd62d89a925409b7db78616acDaniel Veillard *
86bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard * A buffer structure, this old construct is limited to 2GB and
87bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard * is being deprecated, use API with xmlBuf instead
88465a000b1080427bd62d89a925409b7db78616acDaniel Veillard */
89465a000b1080427bd62d89a925409b7db78616acDaniel Veillardtypedef struct _xmlBuffer xmlBuffer;
90465a000b1080427bd62d89a925409b7db78616acDaniel Veillardtypedef xmlBuffer *xmlBufferPtr;
91465a000b1080427bd62d89a925409b7db78616acDaniel Veillardstruct _xmlBuffer {
92465a000b1080427bd62d89a925409b7db78616acDaniel Veillard    xmlChar *content;		/* The buffer content UTF8 */
93465a000b1080427bd62d89a925409b7db78616acDaniel Veillard    unsigned int use;		/* The buffer size used */
94465a000b1080427bd62d89a925409b7db78616acDaniel Veillard    unsigned int size;		/* The buffer size */
95465a000b1080427bd62d89a925409b7db78616acDaniel Veillard    xmlBufferAllocationScheme alloc; /* The realloc method */
96e83e93e715709bb0d117c5386d89f0e5b08d1484Daniel Veillard    xmlChar *contentIO;		/* in IO mode we may have a different base */
97465a000b1080427bd62d89a925409b7db78616acDaniel Veillard};
98465a000b1080427bd62d89a925409b7db78616acDaniel Veillard
99465a000b1080427bd62d89a925409b7db78616acDaniel Veillard/**
100bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard * xmlBuf:
101bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard *
102bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard * A buffer structure, new one, the actual structure internals are not public
103bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard */
104bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard
105bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillardtypedef struct _xmlBuf xmlBuf;
106bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard
107bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard/**
108bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard * xmlBufPtr:
109bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard *
110bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard * A pointer to a buffer structure, the actual structure internals are not
111bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard * public
112bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard */
113bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard
114bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillardtypedef xmlBuf *xmlBufPtr;
115bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard
11618e1f1f1180c4d48ed52bf995b3c700c2cefb492Daniel Veillard/*
11718e1f1f1180c4d48ed52bf995b3c700c2cefb492Daniel Veillard * A few public routines for xmlBuf. As those are expected to be used
11818e1f1f1180c4d48ed52bf995b3c700c2cefb492Daniel Veillard * mostly internally the bulk of the routines are internal in buf.h
11918e1f1f1180c4d48ed52bf995b3c700c2cefb492Daniel Veillard */
12095ebe53b50dfcff1fc5378309bc4f3c58173298eKurt RoeckxXMLPUBFUN xmlChar* XMLCALL       xmlBufContent	(const xmlBuf* buf);
12195ebe53b50dfcff1fc5378309bc4f3c58173298eKurt RoeckxXMLPUBFUN xmlChar* XMLCALL       xmlBufEnd      (xmlBufPtr buf);
122bbe194518fbe67bb8d629c59bcd74f18fee3fd1cDaniel RichardXMLPUBFUN size_t XMLCALL         xmlBufUse      (const xmlBufPtr buf);
12382cdfc4eb338f039024e1619aca8ff14b5c3dc71Daniel VeillardXMLPUBFUN size_t XMLCALL         xmlBufShrink	(xmlBufPtr buf, size_t len);
12418e1f1f1180c4d48ed52bf995b3c700c2cefb492Daniel Veillard
12528cc42d06867f46f921ec137b725a124e43936fdDaniel Veillard/*
12628cc42d06867f46f921ec137b725a124e43936fdDaniel Veillard * LIBXML2_NEW_BUFFER:
12728cc42d06867f46f921ec137b725a124e43936fdDaniel Veillard *
12828cc42d06867f46f921ec137b725a124e43936fdDaniel Veillard * Macro used to express that the API use the new buffers for
12928cc42d06867f46f921ec137b725a124e43936fdDaniel Veillard * xmlParserInputBuffer and xmlOutputBuffer. The change was
13028cc42d06867f46f921ec137b725a124e43936fdDaniel Veillard * introduced in 2.9.0.
13128cc42d06867f46f921ec137b725a124e43936fdDaniel Veillard */
13218e1f1f1180c4d48ed52bf995b3c700c2cefb492Daniel Veillard#define LIBXML2_NEW_BUFFER
13318e1f1f1180c4d48ed52bf995b3c700c2cefb492Daniel Veillard
134bca22f40c3b2b34169d8d2919dce4894d8eac1a4Daniel Veillard/**
1355e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_XML_NAMESPACE:
1365e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
1375e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * This is the namespace for the special xml: prefix predefined in the
13861f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * XML Namespace specification.
1395e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
1403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define XML_XML_NAMESPACE \
1413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    (const xmlChar *) "http://www.w3.org/XML/1998/namespace"
1423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
14367f8b1cd960d809819342ada338444ed24739a55Daniel Veillard/**
14467f8b1cd960d809819342ada338444ed24739a55Daniel Veillard * XML_XML_ID:
14567f8b1cd960d809819342ada338444ed24739a55Daniel Veillard *
14667f8b1cd960d809819342ada338444ed24739a55Daniel Veillard * This is the name for the special xml:id attribute
14767f8b1cd960d809819342ada338444ed24739a55Daniel Veillard */
14867f8b1cd960d809819342ada338444ed24739a55Daniel Veillard#define XML_XML_ID (const xmlChar *) "xml:id"
14967f8b1cd960d809819342ada338444ed24739a55Daniel Veillard
1503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
15161f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * The different element types carried by an XML tree.
1523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
1533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * NOTE: This is synchronized with DOM Level1 values
1543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *       See http://www.w3.org/TR/REC-DOM-Level-1/
1553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
1563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
1573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * be deprecated to use an XML_DTD_NODE.
1583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
1603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_NODE=		1,
1613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NODE=		2,
1623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_TEXT_NODE=		3,
1633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_CDATA_SECTION_NODE=	4,
1643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ENTITY_REF_NODE=	5,
1653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ENTITY_NODE=		6,
1663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_PI_NODE=		7,
1673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_COMMENT_NODE=		8,
1683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DOCUMENT_NODE=		9,
1693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DOCUMENT_TYPE_NODE=	10,
1703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DOCUMENT_FRAG_NODE=	11,
1713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_NOTATION_NODE=		12,
1723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_HTML_DOCUMENT_NODE=	13,
1733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_DTD_NODE=		14,
1743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_DECL=		15,
1753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_DECL=		16,
1763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ENTITY_DECL=		17,
1773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_NAMESPACE_DECL=		18,
1783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_XINCLUDE_START=		19,
1793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_XINCLUDE_END=		20
180eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard#ifdef LIBXML_DOCB_ENABLED
181eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard   ,XML_DOCB_DOCUMENT_NODE=	21
1823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
1833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementType;
1843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
186bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
187bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlNotation:
188bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
18961f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * A DTD Notation definition.
1903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlNotation xmlNotation;
1933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlNotation *xmlNotationPtr;
1943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlNotation {
1959e7160d45a18bfa26d708e22ba991f7670d0128bDaniel Veillard    const xmlChar               *name;	        /* Notation name */
1963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar               *PublicID;	/* Public identifier, if any */
1973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar               *SystemID;	/* System identifier, if any */
1983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
1993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
200bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
201bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttributeType:
202bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
20361f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * A DTD Attribute type definition.
2043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
2053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
2073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_CDATA = 1,
2083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ID,
2093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_IDREF	,
2103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_IDREFS,
2113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ENTITY,
2123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ENTITIES,
2133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NMTOKEN,
2143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NMTOKENS,
2153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_ENUMERATION,
2163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NOTATION
2173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlAttributeType;
2183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
219bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
220bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttributeDefault:
221bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
22261f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * A DTD Attribute default definition.
223bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
224bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
2263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_NONE = 1,
2273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_REQUIRED,
2283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_IMPLIED,
2293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ATTRIBUTE_FIXED
2303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlAttributeDefault;
2313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
232bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
233bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlEnumeration:
234bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
23561f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * List structure used when there is an enumeration in DTDs.
236bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
237bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlEnumeration xmlEnumeration;
2393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlEnumeration *xmlEnumerationPtr;
2403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlEnumeration {
2413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlEnumeration    *next;	/* next one */
2423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar            *name;	/* Enumeration name */
2433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
2443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
245bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
246bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttribute:
247bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
24861f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * An Attribute declaration in a DTD.
249bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
250bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
2513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlAttribute xmlAttribute;
2523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlAttribute *xmlAttributePtr;
2533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlAttribute {
2540ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	        /* application data */
2553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType          type;       /* XML_ATTRIBUTE_DECL, must be second ! */
2563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar          *name;	/* Attribute name */
2573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode    *children;	/* NULL */
2583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *last;	/* NULL */
2593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd       *parent;	/* -> DTD */
2603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *next;	/* next sibling link  */
2613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *prev;	/* previous sibling link  */
2623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc          *doc;       /* the containing document */
2633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
2643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttribute  *nexth;	/* next in hash table */
2653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributeType       atype;	/* The attribute type */
2663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributeDefault      def;	/* the default */
2673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *defaultValue;	/* or the default value */
2683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlEnumerationPtr       tree;       /* or the enumeration tree if any */
2693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar        *prefix;	/* the namespace prefix if any */
2703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar          *elem;	/* Element holding the attribute */
2713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
2723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
273bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
274bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementContentType:
275bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
27661f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Possible definitions of element content types.
2773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
2783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
2793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_PCDATA = 1,
2803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_ELEMENT,
2813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_SEQ,
2823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_OR
2833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementContentType;
2843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
285bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
286bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementContentOccur:
287bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
28861f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Possible definitions of element content occurrences.
289bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
2903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
2913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_ONCE = 1,
2923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_OPT,
2933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_MULT,
2943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_CONTENT_PLUS
2953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementContentOccur;
2963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
297bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
298bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementContent:
299bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
30061f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * An XML Element content as stored after parsing an element definition
301bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * in a DTD.
302bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
303bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
3043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlElementContent xmlElementContent;
3053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlElementContent *xmlElementContentPtr;
3063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlElementContent {
3073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementContentType     type;	/* PCDATA, ELEMENT, SEQ or OR */
3083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementContentOccur    ocur;	/* ONCE, OPT, MULT or PLUS */
309be480fbbe3e061a28f8719175a124ddc8575e0a8Daniel Veillard    const xmlChar             *name;	/* Element name */
3103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlElementContent *c1;	/* first child */
3113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlElementContent *c2;	/* second child */
312dab4cb37d8fceb7457c40effc1ae43559221610bDaniel Veillard    struct _xmlElementContent *parent;	/* parent */
313a9b66d00b5fbae2381f59c0be4d8c7b8e3c16cf7Daniel Veillard    const xmlChar             *prefix;	/* Namespace prefix */
3143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
316bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
317bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElementTypeVal:
318bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
31961f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * The different possibilities for an element content type.
320bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
321bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
3223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef enum {
323a10efa8aa6e8a89ad1f5fa05bd591fed02c88dbaDaniel Veillard    XML_ELEMENT_TYPE_UNDEFINED = 0,
3243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_EMPTY = 1,
3253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_ANY,
3263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_MIXED,
3273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    XML_ELEMENT_TYPE_ELEMENT
3283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} xmlElementTypeVal;
3293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
330aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard#ifdef __cplusplus
331aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard}
332aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard#endif
333aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard#include <libxml/xmlregexp.h>
334aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard#ifdef __cplusplus
335aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillardextern "C" {
336aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard#endif
337aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard
338bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
339bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlElement:
340bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
34161f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * An XML Element declaration from a DTD.
342bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
343bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
3443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlElement xmlElement;
3453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlElement *xmlElementPtr;
3463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlElement {
3470ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	        /* application data */
3483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType          type;       /* XML_ELEMENT_DECL, must be second ! */
3493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar          *name;	/* Element name */
3503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode    *children;	/* NULL */
3513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *last;	/* NULL */
3523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd       *parent;	/* -> DTD */
3533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *next;	/* next sibling link  */
3543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode        *prev;	/* previous sibling link  */
3553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc          *doc;       /* the containing document */
3563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementTypeVal      etype;	/* The type */
3583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementContentPtr content;	/* the allowed element content */
3593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributePtr   attributes;	/* List of the declared attributes */
3603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar        *prefix;	/* the namespace prefix if any */
361aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard#ifdef LIBXML_REGEXP_ENABLED
362aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard    xmlRegexpPtr       contModel;	/* the validating regexp */
363aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard#else
364aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard    void	      *contModel;
365aeb258a9ca9206070e912d8a3ce201777333748eDaniel Veillard#endif
3663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
368bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
3695e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
3705e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_LOCAL_NAMESPACE:
3715e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
37261f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * A namespace declaration node.
3735e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
374bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard#define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
375bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillardtypedef xmlElementType xmlNsType;
376bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
377bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
378bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlNs:
379bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
3803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML namespace.
3813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Note that prefix == NULL is valid, it defines the default namespace
382d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard * within the subtree (until overridden).
3833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor *
38461f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * xmlNsType is unified with xmlElementType.
3853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
3863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
3873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlNs xmlNs;
3883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlNs *xmlNsPtr;
3893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlNs {
3903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNs  *next;	/* next Ns link for this node  */
3913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNsType      type;	/* global or local */
3923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *href;	/* URL for the namespace */
3933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *prefix;	/* prefix for the namespace */
3948e8a703c767abfd43fdc89794f009a443096236ePDT    void           *_private;   /* application data */
395978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    struct _xmlDoc *context;		/* normally an xmlDoc */
3963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
3973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
398bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
399bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlDtd:
400bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
401d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
40261f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * the internal subset and for the external subset.
4033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlDtd xmlDtd;
4053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlDtd *xmlDtdPtr;
4063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlDtd {
4070ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
4083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType  type;       /* XML_DTD_NODE, must be second ! */
4093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *name;	/* Name of the DTD */
4103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* the value of the property link */
4113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* last child link */
4123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *parent;	/* child->parent link */
4133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *next;	/* next sibling link  */
4143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *prev;	/* previous sibling link  */
4153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* the containing document */
4163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    /* End of common part */
4183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *notations;   /* Hash table for notations if any */
4193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *elements;    /* Hash table for elements if any */
4203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *attributes;  /* Hash table for attributes if any */
4213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *entities;    /* Hash table for entities if any */
4223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *ExternalID;	/* External identifier for PUBLIC DTD */
4233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar *SystemID;	/* URI for a SYSTEM or PUBLIC DTD */
4243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void          *pentities;   /* Hash table for param entities if any */
4253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
4263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
427bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
428bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlAttr:
429bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
43061f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * An attribute on an XML node.
4313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlAttr xmlAttr;
4333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlAttr *xmlAttrPtr;
4343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlAttr {
4350ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
4363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType   type;      /* XML_ATTRIBUTE_NODE, must be second ! */
4373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar   *name;      /* the name of the property */
4383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* the value of the property */
4393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* NULL */
4403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *parent;	/* child->parent link */
4413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttr *next;	/* next sibling link  */
4423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttr *prev;	/* previous sibling link  */
4433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* the containing document */
4443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNs           *ns;        /* pointer to the associated namespace */
4453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlAttributeType atype;     /* the attribute type if validating */
446d8850403bcacef78deb02ea41adbc0618ce3372cDaniel Veillard    void            *psvi;	/* for type/PSVI informations */
4473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
4483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
449bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
450bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlID:
451bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
4523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML ID instance.
4533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlID xmlID;
4563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlID *xmlIDPtr;
4573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlID {
4583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlID    *next;	/* next ID */
4593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar    *value;	/* The ID name */
460d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard    xmlAttrPtr        attr;	/* The attribute holding it */
461ea7751d53bf497e873dca39b2c305e300e2574f9Daniel Veillard    const xmlChar    *name;	/* The attribute if attr is not available */
462ea7751d53bf497e873dca39b2c305e300e2574f9Daniel Veillard    int               lineno;	/* The line number if attr is not available */
4638d7b5c7ecdebc775257495bcdaa855916f2dfbb0Daniel Veillard    struct _xmlDoc   *doc;	/* The document holding the ID */
4643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
4653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
466bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
467bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlRef:
468bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
4693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML IDREF instance.
4703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
4723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlRef xmlRef;
4733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlRef *xmlRefPtr;
4743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlRef {
4753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlRef    *next;	/* next Ref */
4763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar     *value;	/* The Ref name */
477d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard    xmlAttrPtr        attr;	/* The attribute holding it */
478ea7751d53bf497e873dca39b2c305e300e2574f9Daniel Veillard    const xmlChar    *name;	/* The attribute if attr is not available */
479ea7751d53bf497e873dca39b2c305e300e2574f9Daniel Veillard    int               lineno;	/* The line number if attr is not available */
4803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
4813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
482bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
483f69bb4b5bf3df1982f63a331b02cd7187456492fDaniel Veillard * xmlNode:
484f69bb4b5bf3df1982f63a331b02cd7187456492fDaniel Veillard *
4853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * A node in an XML tree.
4863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
4873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlNode xmlNode;
4883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlNode *xmlNodePtr;
4893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlNode {
4900ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
4913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType   type;	/* type number, must be second ! */
4923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar   *name;      /* the name of the node, or the entity */
4933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* parent->childs link */
4943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* last child link */
4953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *parent;	/* child->parent link */
4963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *next;	/* next sibling link  */
4973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *prev;	/* previous sibling link  */
4983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* the containing document */
499cbaf399537a1fb69ef97b079e4cb553869aaa4d9Daniel Veillard
500cbaf399537a1fb69ef97b079e4cb553869aaa4d9Daniel Veillard    /* End of common part */
5013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNs           *ns;        /* pointer to the associated namespace */
5023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlChar         *content;   /* the content */
5033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlAttr *properties;/* properties list */
5043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlNs           *nsDef;     /* namespace definitions on this node */
505d8850403bcacef78deb02ea41adbc0618ce3372cDaniel Veillard    void            *psvi;	/* for type/PSVI informations */
5061d211e227372e5ed75a69fbad5f50d185d0af936Daniel Veillard    unsigned short   line;	/* line number */
5071d211e227372e5ed75a69fbad5f50d185d0af936Daniel Veillard    unsigned short   extra;	/* extra data for XPath/XSLT */
5083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
5093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5105e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
5115e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_GET_CONTENT:
5125e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
51361f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Macro to extract the content pointer of a node.
5145e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
5155e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard#define XML_GET_CONTENT(n)					\
516566d4dfac3ff5f7b235738f6f63bd369533874bfDaniel Veillard    ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)
5175e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard
5185e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard/**
5195e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard * XML_GET_LINE:
5205e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard *
521f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard * Macro to extract the line number of an element node.
5225e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard */
5235e2dace1ca6fbb023d1ce848d4e98deefbbfec31Daniel Veillard#define XML_GET_LINE(n)						\
524c76440fcf8ccc826df1792a093cf66b099881418Daniel Veillard    (xmlGetLineNo(n))
5257db3773a5cdafd122df5b69ba90be82535d46069Daniel Veillard
526ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard/**
527ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard * xmlDocProperty
528ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard *
529ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard * Set of properties of the document as found by the parser
530ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard * Some of them are linked to similary named xmlParserOption
531ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard */
532ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillardtypedef enum {
533ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard    XML_DOC_WELLFORMED		= 1<<0, /* document is XML well formed */
534ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard    XML_DOC_NSVALID		= 1<<1, /* document is Namespace valid */
535ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard    XML_DOC_OLD10		= 1<<2, /* parsed with old XML-1.0 parser */
536ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard    XML_DOC_DTDVALID		= 1<<3, /* DTD validation was successful */
537ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard    XML_DOC_XINCLUDE		= 1<<4, /* XInclude substitution was done */
538ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard    XML_DOC_USERBUILT		= 1<<5, /* Document was built using the API
539ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard                                           and not by parsing an instance */
540ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard    XML_DOC_INTERNAL		= 1<<6, /* built for internal processing */
541ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard    XML_DOC_HTML		= 1<<7  /* parsed or built HTML document */
542ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard} xmlDocProperties;
54340412cda44b2689b509a8665fb9d76e1a260e28fDaniel Veillard
544bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
545bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlDoc:
546bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
5473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * An XML document.
5483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
5493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef struct _xmlDoc xmlDoc;
5503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef xmlDoc *xmlDocPtr;
5513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlDoc {
5520ec986359adc04677529d5e704ff30bf8e5d3a05Daniel Veillard    void           *_private;	/* application data */
5533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    xmlElementType  type;       /* XML_DOCUMENT_NODE, must be second ! */
5543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    char           *name;	/* name/filename/URI of the document */
5553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *children;	/* the document tree */
5563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *last;	/* last child link */
5573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *parent;	/* child->parent link */
5583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *next;	/* next sibling link  */
5593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNode *prev;	/* previous sibling link  */
5603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDoc  *doc;	/* autoreference to itself */
5613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
5623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    /* End of common part */
5633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    int             compression;/* level of zlib compression */
564f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard    int             standalone; /* standalone document (no external refs)
565602f2bd01a50e20eabf4e2e7700e4bda1c627457Daniel Veillard				     1 if standalone="yes"
566602f2bd01a50e20eabf4e2e7700e4bda1c627457Daniel Veillard				     0 if standalone="no"
567602f2bd01a50e20eabf4e2e7700e4bda1c627457Daniel Veillard				    -1 if there is no XML declaration
568602f2bd01a50e20eabf4e2e7700e4bda1c627457Daniel Veillard				    -2 if there is an XML declaration, but no
569602f2bd01a50e20eabf4e2e7700e4bda1c627457Daniel Veillard					standalone attribute was specified */
5703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd  *intSubset;	/* the document internal subset */
5713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlDtd  *extSubset;	/* the document external subset */
5723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    struct _xmlNs   *oldNs;	/* Global namespace, the old way */
5733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *version;	/* the XML version string */
5743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *encoding;   /* external initial encoding, if any */
5753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void           *ids;        /* Hash table for ID attributes if any */
5763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    void           *refs;       /* Hash table for IDREFs attributes if any */
5773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    const xmlChar  *URL;	/* The URI for that document */
5783473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor    int             charset;    /* encoding of the in-memory content
5793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor				   actually an xmlCharEncoding */
58040412cda44b2689b509a8665fb9d76e1a260e28fDaniel Veillard    struct _xmlDict *dict;      /* dict used to allocate names or NULL */
581d8850403bcacef78deb02ea41adbc0618ce3372cDaniel Veillard    void           *psvi;	/* for type/PSVI informations */
582ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard    int             parseFlags;	/* set of xmlParserOption used to parse the
583ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard				   document */
584ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard    int             properties;	/* set of xmlDocProperties for this document
585ae0765b6819c77aae2638b40735f354b05b9c150Daniel Veillard				   set at the end of parsing */
5863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor};
5873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
588978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik
589bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchciktypedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
590bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchciktypedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
591978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik
592978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik/**
593978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * xmlDOMWrapAcquireNsFunction:
594978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * @ctxt:  a DOM wrapper context
595f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard * @node:  the context node (element or attribute)
596978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * @nsName:  the requested namespace name
597f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard * @nsPrefix:  the requested namespace prefix
598978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik *
599978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * A function called to acquire namespaces (xmlNs) from the wrapper.
600978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik *
601978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * Returns an xmlNsPtr or NULL in case of an error.
602978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik */
603978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchciktypedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt,
604978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik						 xmlNodePtr node,
605978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik						 const xmlChar *nsName,
606978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik						 const xmlChar *nsPrefix);
607978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik
608978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik/**
609978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * xmlDOMWrapCtxt:
610978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik *
611978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik * Context for DOM wrapper-operations.
612978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik */
613bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcikstruct _xmlDOMWrapCtxt {
614bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik    void * _private;
615978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    /*
616978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    * The type of this context, just in case we need specialized
617978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    * contexts in the future.
618978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    */
619978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    int type;
620978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    /*
621978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    * Internal namespace map used for various operations.
622978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    */
623978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    void * namespaceMap;
624978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    /*
625978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    * Use this one to acquire an xmlNsPtr intended for node->ns.
626978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    * (Note that this is not intended for elem->nsDef).
627978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    */
628978039bbd89fa2daada209e270524d20c9e3ca7eKasimier T. Buchcik    xmlDOMWrapAcquireNsFunction getNsForNodeFunc;
629bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik};
630bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik
631bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
632bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlChildrenNode:
633bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
634a0e7e9346492edd1b67d57efa305ddfec1768b3aMST * Macro for compatibility naming layer with libxml1. Maps
635a0e7e9346492edd1b67d57efa305ddfec1768b3aMST * to "children."
6363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
6373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifndef xmlChildrenNode
6383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define xmlChildrenNode children
639bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard#endif
640bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard
641bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard/**
642bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard * xmlRootNode:
643bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard *
644f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard * Macro for compatibility naming layer with libxml1. Maps
645a0e7e9346492edd1b67d57efa305ddfec1768b3aMST * to "children".
646bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard */
647bed7b052a318695f5e0856f12fc0c86f66472cb3Daniel Veillard#ifndef xmlRootNode
6483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define xmlRootNode children
6493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
6503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
6513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
6523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Variables.
6533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
6543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
655c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard/*
656c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard * Some helper functions
657c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard */
65844313c0a7e1bd9021b70822a3711f5d0687ebf54Patrick Monnerat#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \
65944313c0a7e1bd9021b70822a3711f5d0687ebf54Patrick Monnerat    defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || \
66044313c0a7e1bd9021b70822a3711f5d0687ebf54Patrick Monnerat    defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || \
66144313c0a7e1bd9021b70822a3711f5d0687ebf54Patrick Monnerat    defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || \
6627a72f4afd5b3f57e3fd1097461cc3416061cf6ffDaniel Veillard    defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
66376874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN int XMLCALL
66476874e4516a1d7b467d400604f8aef77be015727Igor Zlatkovic		xmlValidateNCName	(const xmlChar *value,
665c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard					 int space);
66621e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif
66721e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack
66821e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
669f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
670aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlValidateQName	(const xmlChar *value,
671c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard					 int space);
672f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
673aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlValidateName		(const xmlChar *value,
674c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard					 int space);
675f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
676aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlValidateNMToken	(const xmlChar *value,
677c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard					 int space);
67821e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif
679c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard
680f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
681aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBuildQName		(const xmlChar *ncname,
682c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard					 const xmlChar *prefix,
683c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard					 xmlChar *memory,
684c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard					 int len);
685f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
686aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSplitQName2		(const xmlChar *name,
687c00cda8c065beba24706c9e8719f08e9de420274Daniel Veillard					 xmlChar **prefix);
688f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN const xmlChar * XMLCALL
689aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSplitQName3		(const xmlChar *name,
6908d73bcb50f91dacb48c2ad61169cb2adc18c1eaeDaniel Veillard					 int *len);
6918d73bcb50f91dacb48c2ad61169cb2adc18c1eaeDaniel Veillard
6923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
69318e1f1f1180c4d48ed52bf995b3c700c2cefb492Daniel Veillard * Handling Buffers, the old ones see @xmlBuf for the new ones.
6943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
6953473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
696f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
697aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
698f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlBufferAllocationScheme XMLCALL
699aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlGetBufferAllocationScheme(void);
700aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic
701f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlBufferPtr XMLCALL
702aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferCreate		(void);
703f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlBufferPtr XMLCALL
704aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferCreateSize	(size_t size);
705f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlBufferPtr XMLCALL
7065335055ef698595d4a4b7e4613fd057a45166849Daniel Veillard		xmlBufferCreateStatic	(void *mem,
7075335055ef698595d4a4b7e4613fd057a45166849Daniel Veillard					 size_t size);
708f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
709aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferResize		(xmlBufferPtr buf,
71056a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard					 unsigned int size);
711f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
712aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferFree		(xmlBufferPtr buf);
713f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
714aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferDump		(FILE *file,
7153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlBufferPtr buf);
716f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
717aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferAdd		(xmlBufferPtr buf,
7183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *str,
7193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
720f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
721aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferAddHead	(xmlBufferPtr buf,
7223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *str,
7233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
724f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
725aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferCat		(xmlBufferPtr buf,
7263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *str);
727f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
728aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferCCat		(xmlBufferPtr buf,
7293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *str);
730f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
731aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferShrink		(xmlBufferPtr buf,
7323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 unsigned int len);
733f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
734aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferGrow		(xmlBufferPtr buf,
7353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 unsigned int len);
736f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
737aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferEmpty		(xmlBufferPtr buf);
738f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN const xmlChar* XMLCALL
73995ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlBufferContent	(const xmlBuffer *buf);
7407d553f834e2573c3352dc61a70ce4a7506db3c8cConrad IrwinXMLPUBFUN xmlChar* XMLCALL
7413b666224623d7b9dc7855073fe0bad7d4a90ff93Daniel Veillard		xmlBufferDetach         (xmlBufferPtr buf);
742f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
743aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferSetAllocationScheme(xmlBufferPtr buf,
7443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlBufferAllocationScheme scheme);
745f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
74695ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlBufferLength		(const xmlBuffer *buf);
7473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
7483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
74961f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Creating/freeing new structures.
7503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
751f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlDtdPtr XMLCALL
752aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlCreateIntSubset	(xmlDocPtr doc,
7533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *ExternalID,
7553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *SystemID);
756f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlDtdPtr XMLCALL
757aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewDtd		(xmlDocPtr doc,
7583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *ExternalID,
7603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *SystemID);
761f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlDtdPtr XMLCALL
76295ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlGetIntSubset		(const xmlDoc *doc);
763f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
764aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlFreeDtd		(xmlDtdPtr cur);
76521e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#ifdef LIBXML_LEGACY_ENABLED
766f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNsPtr XMLCALL
767aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewGlobalNs		(xmlDocPtr doc,
7683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *href,
7693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *prefix);
77021e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* LIBXML_LEGACY_ENABLED */
771f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNsPtr XMLCALL
772aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewNs		(xmlNodePtr node,
7733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *href,
7743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *prefix);
775f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
776aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlFreeNs		(xmlNsPtr cur);
777f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
778aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlFreeNsList		(xmlNsPtr cur);
779f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlDocPtr XMLCALL
780aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewDoc		(const xmlChar *version);
781f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
782aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlFreeDoc		(xmlDocPtr cur);
783f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlAttrPtr XMLCALL
784aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewDocProp		(xmlDocPtr doc,
7853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
78721e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
78821e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack    defined(LIBXML_SCHEMAS_ENABLED)
789f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlAttrPtr XMLCALL
790aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewProp		(xmlNodePtr node,
7913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
79321e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif
794f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlAttrPtr XMLCALL
795aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewNsProp		(xmlNodePtr node,
7963473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
7973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
7983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
799f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlAttrPtr XMLCALL
800aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewNsPropEatName	(xmlNodePtr node,
80146de64e9c01af2dc20bd49482716746b33737f5eDaniel Veillard					 xmlNsPtr ns,
80246de64e9c01af2dc20bd49482716746b33737f5eDaniel Veillard					 xmlChar *name,
80346de64e9c01af2dc20bd49482716746b33737f5eDaniel Veillard					 const xmlChar *value);
804f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
805aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlFreePropList		(xmlAttrPtr cur);
806f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
807aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlFreeProp		(xmlAttrPtr cur);
808f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlAttrPtr XMLCALL
809aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlCopyProp		(xmlNodePtr target,
8103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlAttrPtr cur);
811f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlAttrPtr XMLCALL
812aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlCopyPropList		(xmlNodePtr target,
8133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlAttrPtr cur);
814652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard#ifdef LIBXML_TREE_ENABLED
815f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlDtdPtr XMLCALL
816aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlCopyDtd		(xmlDtdPtr dtd);
81721e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* LIBXML_TREE_ENABLED */
81821e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
819f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlDocPtr XMLCALL
820aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlCopyDoc		(xmlDocPtr doc,
8213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int recursive);
82221e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
8233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
82461f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Creating new nodes.
8253473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
826f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
827aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewDocNode		(xmlDocPtr doc,
8283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
8293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
8303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
831f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
832aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewDocNodeEatName	(xmlDocPtr doc,
83346de64e9c01af2dc20bd49482716746b33737f5eDaniel Veillard					 xmlNsPtr ns,
83446de64e9c01af2dc20bd49482716746b33737f5eDaniel Veillard					 xmlChar *name,
83546de64e9c01af2dc20bd49482716746b33737f5eDaniel Veillard					 const xmlChar *content);
836f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
837aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewNode		(xmlNsPtr ns,
8383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
839f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
840aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewNodeEatName	(xmlNsPtr ns,
84146de64e9c01af2dc20bd49482716746b33737f5eDaniel Veillard					 xmlChar *name);
84221e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
843f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
844aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewChild		(xmlNodePtr parent,
8453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns,
8463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
8473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
84821e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif
849f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
85095ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlNewDocText		(const xmlDoc *doc,
8513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
852f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
853aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewText		(const xmlChar *content);
854f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
85503a53c34db279cbe4a305d58969beb1f26ff3d19Daniel Veillard		xmlNewDocPI		(xmlDocPtr doc,
85603a53c34db279cbe4a305d58969beb1f26ff3d19Daniel Veillard					 const xmlChar *name,
85703a53c34db279cbe4a305d58969beb1f26ff3d19Daniel Veillard					 const xmlChar *content);
858f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
859aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewPI		(const xmlChar *name,
8603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
861f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
862aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewDocTextLen	(xmlDocPtr doc,
8633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
8643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
865f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
866aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewTextLen		(const xmlChar *content,
8673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
868f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
869aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewDocComment	(xmlDocPtr doc,
8703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
871f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
872aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewComment		(const xmlChar *content);
873f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
874aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewCDataBlock	(xmlDocPtr doc,
8753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
8763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
877f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
878aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewCharRef		(xmlDocPtr doc,
8793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
880f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
88195ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlNewReference		(const xmlDoc *doc,
8823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
883f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
88495ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlCopyNode		(xmlNodePtr node,
8853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int recursive);
886f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
88795ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlDocCopyNode		(xmlNodePtr node,
88882daa81a8bf6877bafc69716ce5e9ae6897108c7Daniel Veillard					 xmlDocPtr doc,
88982daa81a8bf6877bafc69716ce5e9ae6897108c7Daniel Veillard					 int recursive);
890f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
89103a53c34db279cbe4a305d58969beb1f26ff3d19Daniel Veillard		xmlDocCopyNodeList	(xmlDocPtr doc,
89295ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx					 xmlNodePtr node);
893f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
89495ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlCopyNodeList		(xmlNodePtr node);
895652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard#ifdef LIBXML_TREE_ENABLED
896f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
89721e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack		xmlNewTextChild		(xmlNodePtr parent,
89821e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack					 xmlNsPtr ns,
89921e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack					 const xmlChar *name,
90021e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack					 const xmlChar *content);
901f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
90221e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack		xmlNewDocRawNode	(xmlDocPtr doc,
90321e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack					 xmlNsPtr ns,
90421e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack					 const xmlChar *name,
90521e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack					 const xmlChar *content);
906f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
907aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNewDocFragment	(xmlDocPtr doc);
908652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard#endif /* LIBXML_TREE_ENABLED */
9093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
9103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
91161f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Navigating.
9123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
913f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN long XMLCALL
91495ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlGetLineNo		(const xmlNode *node);
91521e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
916f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
91795ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlGetNodePath		(const xmlNode *node);
91821e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */
919f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
92095ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlDocGetRootElement	(const xmlDoc *doc);
921f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
92295ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlGetLastChild		(const xmlNode *parent);
923f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
92495ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlNodeIsText		(const xmlNode *node);
925f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
92695ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlIsBlankNode		(const xmlNode *node);
9273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
9283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
92961f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Changing the structure.
9303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
93121e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
932f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
933aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlDocSetRootElement	(xmlDocPtr doc,
9343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr root);
93521e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
93621e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#ifdef LIBXML_TREE_ENABLED
937f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
938aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeSetName		(xmlNodePtr cur,
9393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
940652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard#endif /* LIBXML_TREE_ENABLED */
941f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
942aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlAddChild		(xmlNodePtr parent,
9433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
944f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
945aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlAddChildList		(xmlNodePtr parent,
9463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
94721e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
948f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
949aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlReplaceNode		(xmlNodePtr old,
9503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
95121e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
95221e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
9537a72f4afd5b3f57e3fd1097461cc3416061cf6ffDaniel Veillard    defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
954f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
955652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard		xmlAddPrevSibling	(xmlNodePtr cur,
9563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr elem);
95721e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED */
958f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
959652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard		xmlAddSibling		(xmlNodePtr cur,
9603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr elem);
961f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
962aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlAddNextSibling	(xmlNodePtr cur,
9633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr elem);
964f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
965aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlUnlinkNode		(xmlNodePtr cur);
966f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
967aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlTextMerge		(xmlNodePtr first,
9683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr second);
969f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
970aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlTextConcat		(xmlNodePtr node,
9713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
9723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
973f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
974aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlFreeNodeList		(xmlNodePtr cur);
975f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
976aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlFreeNode		(xmlNodePtr cur);
977f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
978aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSetTreeDoc		(xmlNodePtr tree,
9793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc);
980f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
981aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSetListDoc		(xmlNodePtr list,
9823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc);
9833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
98461f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Namespaces.
9853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
986f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNsPtr XMLCALL
987aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSearchNs		(xmlDocPtr doc,
9883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr node,
9893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *nameSpace);
990f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNsPtr XMLCALL
991aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSearchNsByHref	(xmlDocPtr doc,
9923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr node,
9933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *href);
99444313c0a7e1bd9021b70822a3711f5d0687ebf54Patrick Monnerat#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \
99544313c0a7e1bd9021b70822a3711f5d0687ebf54Patrick Monnerat    defined(LIBXML_SCHEMAS_ENABLED)
996f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNsPtr * XMLCALL
99795ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlGetNsList		(const xmlDoc *doc,
99895ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx					 const xmlNode *node);
99921e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */
1000652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard
1001f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1002aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSetNs		(xmlNodePtr node,
10033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNsPtr ns);
1004f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNsPtr XMLCALL
1005aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlCopyNamespace	(xmlNsPtr cur);
1006f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNsPtr XMLCALL
1007aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlCopyNamespaceList	(xmlNsPtr cur);
10083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
10093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
10103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Changing the content.
10113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
101244313c0a7e1bd9021b70822a3711f5d0687ebf54Patrick Monnerat#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \
101344313c0a7e1bd9021b70822a3711f5d0687ebf54Patrick Monnerat    defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
1014f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlAttrPtr XMLCALL
1015aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSetProp		(xmlNodePtr node,
10163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
10173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
1018f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlAttrPtr XMLCALL
101921e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack		xmlSetNsProp		(xmlNodePtr node,
102021e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack					 xmlNsPtr ns,
102121e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack					 const xmlChar *name,
102221e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack					 const xmlChar *value);
102344313c0a7e1bd9021b70822a3711f5d0687ebf54Patrick Monnerat#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \
102444313c0a7e1bd9021b70822a3711f5d0687ebf54Patrick Monnerat	  defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */
1025f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
102695ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlGetNoNsProp		(const xmlNode *node,
10273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
1028f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
102995ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlGetProp		(const xmlNode *node,
103071531f33450f9a809eab050104e55c84b77b2a9eDaniel Veillard					 const xmlChar *name);
1031f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlAttrPtr XMLCALL
103295ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlHasProp		(const xmlNode *node,
10333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name);
1034f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlAttrPtr XMLCALL
103595ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlHasNsProp		(const xmlNode *node,
1036e95e2396f34e7e7c5f472ad018d7207974074225Daniel Veillard					 const xmlChar *name,
1037ca2366aafd4c9ff3bf7c166bde18ce9af50e6995Daniel Veillard					 const xmlChar *nameSpace);
1038f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
103995ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlGetNsProp		(const xmlNode *node,
10403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *name,
10413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *nameSpace);
1042f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
104395ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlStringGetNodeList	(const xmlDoc *doc,
10443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value);
1045f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
104695ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlStringLenGetNodeList	(const xmlDoc *doc,
10473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *value,
10483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
1049f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
1050aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeListGetString	(xmlDocPtr doc,
105195ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx					 const xmlNode *list,
10523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int inLine);
1053652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard#ifdef LIBXML_TREE_ENABLED
1054f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
105595ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlNodeListGetRawString	(const xmlDoc *doc,
105695ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx					 const xmlNode *list,
10573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int inLine);
1058652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard#endif /* LIBXML_TREE_ENABLED */
1059f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1060aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeSetContent	(xmlNodePtr cur,
10613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
1062652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard#ifdef LIBXML_TREE_ENABLED
1063f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1064aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeSetContentLen	(xmlNodePtr cur,
10653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
10663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
1067652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard#endif /* LIBXML_TREE_ENABLED */
1068f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1069aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeAddContent	(xmlNodePtr cur,
10703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content);
1071f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1072aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeAddContentLen	(xmlNodePtr cur,
10733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *content,
10743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int len);
1075f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
107695ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlNodeGetContent	(const xmlNode *cur);
1077dddeede060f7c01788274c4f5f006d4923f9a7aaDaniel Veillard
10787869729c8e344b3675994877155efe1c4260683dDaniel VeillardXMLPUBFUN int XMLCALL
10797869729c8e344b3675994877155efe1c4260683dDaniel Veillard		xmlNodeBufGetContent	(xmlBufferPtr buffer,
108095ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx					 const xmlNode *cur);
1081dddeede060f7c01788274c4f5f006d4923f9a7aaDaniel VeillardXMLPUBFUN int XMLCALL
1082dddeede060f7c01788274c4f5f006d4923f9a7aaDaniel Veillard		xmlBufGetNodeContent	(xmlBufPtr buf,
108395ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx					 const xmlNode *cur);
1084dddeede060f7c01788274c4f5f006d4923f9a7aaDaniel Veillard
1085f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
108695ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlNodeGetLang		(const xmlNode *cur);
1087f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
108895ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlNodeGetSpacePreserve	(const xmlNode *cur);
1089652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard#ifdef LIBXML_TREE_ENABLED
1090f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1091aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeSetLang		(xmlNodePtr cur,
10923473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *lang);
1093f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1094aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeSetSpacePreserve (xmlNodePtr cur,
1095d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard					 int val);
1096652327a727000b7e1a32d596e05471003c2d3d87Daniel Veillard#endif /* LIBXML_TREE_ENABLED */
1097f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN xmlChar * XMLCALL
109895ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlNodeGetBase		(const xmlDoc *doc,
109995ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx					 const xmlNode *cur);
110021e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
1101f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1102aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeSetBase		(xmlNodePtr cur,
1103f85ce8e334f448078a3d71a812824fa5b45d9b07Daniel Veillard					 const xmlChar *uri);
110421e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif
11053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
11063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
11073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Removing content.
11083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1109f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1110aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlRemoveProp		(xmlAttrPtr cur);
111121e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
1112f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1113aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlUnsetNsProp		(xmlNodePtr node,
11149403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillard					 xmlNsPtr ns,
11159403a0495dcbdfa430b669b4e3d689d8e208c687Daniel Veillard					 const xmlChar *name);
1116f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
111721e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack		xmlUnsetProp		(xmlNodePtr node,
111821e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack					 const xmlChar *name);
111921e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
11203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
11213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
112261f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Internal, don't use.
11233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1124f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1125aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferWriteCHAR	(xmlBufferPtr buf,
11263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *string);
1127f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1128aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferWriteChar	(xmlBufferPtr buf,
11293473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *string);
1130f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1131aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlBufferWriteQuotedString(xmlBufferPtr buf,
11323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const xmlChar *string);
11333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
113421e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#ifdef LIBXML_OUTPUT_ENABLED
1135a9c612c3ee115278fb8dc0cac1b2f2e362f0c052William M. BrackXMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
1136a9c612c3ee115278fb8dc0cac1b2f2e362f0c052William M. Brack					 xmlDocPtr doc,
1137a9c612c3ee115278fb8dc0cac1b2f2e362f0c052William M. Brack					 xmlAttrPtr attr,
1138a9c612c3ee115278fb8dc0cac1b2f2e362f0c052William M. Brack					 const xmlChar *string);
113921e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif /* LIBXML_OUTPUT_ENABLED */
1140a9c612c3ee115278fb8dc0cac1b2f2e362f0c052William M. Brack
114121e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#ifdef LIBXML_TREE_ENABLED
11423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
114361f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Namespace handling.
11443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1145f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1146aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlReconciliateNs	(xmlDocPtr doc,
11473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr tree);
114821e4ef20f64ebd740ebac0ead5d85a5631d2db5eWilliam M. Brack#endif
11493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1150a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#ifdef LIBXML_OUTPUT_ENABLED
11513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
115261f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Saving.
11533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1154f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1155aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlDocDumpFormatMemory	(xmlDocPtr cur,
1156963d2ae41574066f9b44bcae610dd280c1e57dd8Daniel Veillard					 xmlChar **mem,
11573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int *size,
11583473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int format);
1159f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1160aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlDocDumpMemory	(xmlDocPtr cur,
1161963d2ae41574066f9b44bcae610dd280c1e57dd8Daniel Veillard					 xmlChar **mem,
11623473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int *size);
1163f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1164aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlDocDumpMemoryEnc	(xmlDocPtr out_doc,
11653473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlChar **doc_txt_ptr,
11663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int * doc_txt_len,
11673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *txt_encoding);
1168f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1169aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
11703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlChar **doc_txt_ptr,
11713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int * doc_txt_len,
11723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *txt_encoding,
11733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int format);
1174f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1175aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlDocFormatDump	(FILE *f,
11769e4123023a930924e26ca965ef14ea67bff7dfc3Daniel Veillard					 xmlDocPtr cur,
11779e4123023a930924e26ca965ef14ea67bff7dfc3Daniel Veillard					 int format);
1178f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1179aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlDocDump		(FILE *f,
11803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur);
1181f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1182aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlElemDump		(FILE *f,
11833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc,
11843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur);
1185f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1186aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSaveFile		(const char *filename,
11873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur);
1188f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1189aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSaveFormatFile	(const char *filename,
119067fee94e53838c397f53c1ea4d098a5b9d728896Daniel Veillard					 xmlDocPtr cur,
119167fee94e53838c397f53c1ea4d098a5b9d728896Daniel Veillard					 int format);
1192dddeede060f7c01788274c4f5f006d4923f9a7aaDaniel VeillardXMLPUBFUN size_t XMLCALL
1193dddeede060f7c01788274c4f5f006d4923f9a7aaDaniel Veillard		xmlBufNodeDump		(xmlBufPtr buf,
1194dddeede060f7c01788274c4f5f006d4923f9a7aaDaniel Veillard					 xmlDocPtr doc,
1195dddeede060f7c01788274c4f5f006d4923f9a7aaDaniel Veillard					 xmlNodePtr cur,
1196dddeede060f7c01788274c4f5f006d4923f9a7aaDaniel Veillard					 int level,
1197dddeede060f7c01788274c4f5f006d4923f9a7aaDaniel Veillard					 int format);
1198f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1199aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeDump		(xmlBufferPtr buf,
12003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr doc,
12013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlNodePtr cur,
12023473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int level,
12033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int format);
12043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1205f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1206aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSaveFileTo		(xmlOutputBufferPtr buf,
12075a37bde34b693bc0296a2f03b775773e265b4c0eCET					 xmlDocPtr cur,
12085a37bde34b693bc0296a2f03b775773e265b4c0eCET					 const char *encoding);
1209f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1210aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSaveFormatFileTo     (xmlOutputBufferPtr buf,
12113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur,
12125a37bde34b693bc0296a2f03b775773e265b4c0eCET				         const char *encoding,
12135a37bde34b693bc0296a2f03b775773e265b4c0eCET				         int format);
1214f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1215aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlNodeDumpOutput	(xmlOutputBufferPtr buf,
12165a37bde34b693bc0296a2f03b775773e265b4c0eCET					 xmlDocPtr doc,
12175a37bde34b693bc0296a2f03b775773e265b4c0eCET					 xmlNodePtr cur,
12185a37bde34b693bc0296a2f03b775773e265b4c0eCET					 int level,
12195a37bde34b693bc0296a2f03b775773e265b4c0eCET					 int format,
12203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *encoding);
12213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1222f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1223aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSaveFormatFileEnc    (const char *filename,
1224d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard					 xmlDocPtr cur,
1225d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard					 const char *encoding,
1226d16409207aa547c9249caf0f424250657a0065ddDaniel Veillard					 int format);
1227f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard
1228f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1229aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSaveFileEnc		(const char *filename,
12303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 xmlDocPtr cur,
12313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 const char *encoding);
12323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1233a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#endif /* LIBXML_OUTPUT_ENABLED */
12343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/*
1235d5c2f92df449ae53e31a81f268aa8aa608a4f633Daniel Veillard * XHTML
1236d5c2f92df449ae53e31a81f268aa8aa608a4f633Daniel Veillard */
1237f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1238aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlIsXHTML		(const xmlChar *systemID,
1239d5c2f92df449ae53e31a81f268aa8aa608a4f633Daniel Veillard					 const xmlChar *publicID);
1240d5c2f92df449ae53e31a81f268aa8aa608a4f633Daniel Veillard
1241d5c2f92df449ae53e31a81f268aa8aa608a4f633Daniel Veillard/*
124261f261749f44d6e6f938441598bc724cd1375c51Daniel Veillard * Compression.
12433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */
1244f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
124595ebe53b50dfcff1fc5378309bc4f3c58173298eKurt Roeckx		xmlGetDocCompressMode	(const xmlDoc *doc);
1246f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1247aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSetDocCompressMode	(xmlDocPtr doc,
12483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor					 int mode);
1249f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN int XMLCALL
1250aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlGetCompressMode	(void);
1251f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel VeillardXMLPUBFUN void XMLCALL
1252aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic		xmlSetCompressMode	(int mode);
12533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1254bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik/*
1255bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik* DOM-wrapper helper functions.
1256bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik*/
12574d9c948fd7d189834381361395c5b38e1b0a7b87Kasimier T. BuchcikXMLPUBFUN xmlDOMWrapCtxtPtr XMLCALL
12584d9c948fd7d189834381361395c5b38e1b0a7b87Kasimier T. Buchcik		xmlDOMWrapNewCtxt	(void);
12594d9c948fd7d189834381361395c5b38e1b0a7b87Kasimier T. BuchcikXMLPUBFUN void XMLCALL
12604d9c948fd7d189834381361395c5b38e1b0a7b87Kasimier T. Buchcik		xmlDOMWrapFreeCtxt	(xmlDOMWrapCtxtPtr ctxt);
1261bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. BuchcikXMLPUBFUN int XMLCALL
1262bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik	    xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt,
1263bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik					 xmlNodePtr elem,
1264bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik					 int options);
1265bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. BuchcikXMLPUBFUN int XMLCALL
1266bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik	    xmlDOMWrapAdoptNode		(xmlDOMWrapCtxtPtr ctxt,
1267bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik					 xmlDocPtr sourceDoc,
1268bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik					 xmlNodePtr node,
1269f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard					 xmlDocPtr destDoc,
1270bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik					 xmlNodePtr destParent,
1271bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik					 int options);
1272bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. BuchcikXMLPUBFUN int XMLCALL
1273bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik	    xmlDOMWrapRemoveNode	(xmlDOMWrapCtxtPtr ctxt,
1274bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik					 xmlDocPtr doc,
1275bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik					 xmlNodePtr node,
1276bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik					 int options);
1277a81d9199c6d152d4789217f7c45563e9155dd457Kasimier T. BuchcikXMLPUBFUN int XMLCALL
1278a81d9199c6d152d4789217f7c45563e9155dd457Kasimier T. Buchcik	    xmlDOMWrapCloneNode		(xmlDOMWrapCtxtPtr ctxt,
1279a81d9199c6d152d4789217f7c45563e9155dd457Kasimier T. Buchcik					 xmlDocPtr sourceDoc,
1280a81d9199c6d152d4789217f7c45563e9155dd457Kasimier T. Buchcik					 xmlNodePtr node,
1281a81d9199c6d152d4789217f7c45563e9155dd457Kasimier T. Buchcik					 xmlNodePtr *clonedNode,
1282a81d9199c6d152d4789217f7c45563e9155dd457Kasimier T. Buchcik					 xmlDocPtr destDoc,
1283a81d9199c6d152d4789217f7c45563e9155dd457Kasimier T. Buchcik					 xmlNodePtr destParent,
1284a81d9199c6d152d4789217f7c45563e9155dd457Kasimier T. Buchcik					 int deep,
1285a81d9199c6d152d4789217f7c45563e9155dd457Kasimier T. Buchcik					 int options);
1286bc0e3c6b1a1ac598aedb5ee171c60b7e08a982a5Kasimier T. Buchcik
1287be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard#ifdef LIBXML_TREE_ENABLED
1288be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard/*
1289be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard * 5 interfaces from DOM ElementTraversal, but different in entities
1290be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard * traversal.
1291be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard */
1292be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel VeillardXMLPUBFUN unsigned long XMLCALL
1293be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard            xmlChildElementCount        (xmlNodePtr parent);
1294be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
1295be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard            xmlNextElementSibling       (xmlNodePtr node);
1296be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
1297be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard            xmlFirstElementChild        (xmlNodePtr parent);
1298be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
1299be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard            xmlLastElementChild         (xmlNodePtr parent);
1300be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel VeillardXMLPUBFUN xmlNodePtr XMLCALL
1301be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard            xmlPreviousElementSibling   (xmlNodePtr node);
1302be2bd6ac6fb512d322a059408c6fd80a91b091cfDaniel Veillard#endif
13033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifdef __cplusplus
13043473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor}
13053473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif
13066c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillard#ifndef __XML_PARSER_H__
13076c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillard#include <libxml/xmlmemory.h>
13086c4ffafd8f34fafa594694c83148ecf25fc529e8Daniel Veillard#endif
13093473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
13103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif /* __XML_TREE_H__ */
13113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor
1312