blob: d995e5cd7867cfd8e931864698e5c4e65f6155c0 [file] [log] [blame]
Owen Taylor3473f882001-02-23 17:55:21 +00001/*
Daniel Veillardbe586972003-11-18 20:56:51 +00002 * Summary: interfaces for tree manipulation
3 * Description: this module describes the structures found in an tree resulting
4 * from an XML or HTML parsing, as well as the API provided for
5 * various processing on that tree
Owen Taylor3473f882001-02-23 17:55:21 +00006 *
Daniel Veillardbe586972003-11-18 20:56:51 +00007 * Copy: See Copyright for the status of this software.
Owen Taylor3473f882001-02-23 17:55:21 +00008 *
Daniel Veillardbe586972003-11-18 20:56:51 +00009 * Author: Daniel Veillard
Owen Taylor3473f882001-02-23 17:55:21 +000010 */
11
12#ifndef __XML_TREE_H__
13#define __XML_TREE_H__
14
15#include <stdio.h>
16#include <libxml/xmlversion.h>
William M. Bracka2e844a2004-01-06 11:52:13 +000017#include <libxml/xmlstring.h>
Igor Zlatkovic7ae91bc2002-11-08 17:18:52 +000018
Owen Taylor3473f882001-02-23 17:55:21 +000019#ifdef __cplusplus
20extern "C" {
21#endif
22
Daniel Veillard8bdb91d2001-10-31 17:52:43 +000023/*
24 * Some of the basic types pointer to structures:
25 */
26/* xmlIO.h */
27typedef struct _xmlParserInputBuffer xmlParserInputBuffer;
28typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
29
CET 2001 Daniel Veillard5a37bde2001-11-01 14:31:22 +000030typedef struct _xmlOutputBuffer xmlOutputBuffer;
31typedef xmlOutputBuffer *xmlOutputBufferPtr;
32
Daniel Veillard8bdb91d2001-10-31 17:52:43 +000033/* parser.h */
34typedef struct _xmlParserInput xmlParserInput;
35typedef xmlParserInput *xmlParserInputPtr;
36
37typedef struct _xmlParserCtxt xmlParserCtxt;
38typedef xmlParserCtxt *xmlParserCtxtPtr;
39
Daniel Veillard6c4ffaf2002-02-11 08:54:05 +000040typedef struct _xmlSAXLocator xmlSAXLocator;
41typedef xmlSAXLocator *xmlSAXLocatorPtr;
42
43typedef struct _xmlSAXHandler xmlSAXHandler;
44typedef xmlSAXHandler *xmlSAXHandlerPtr;
45
46/* entities.h */
47typedef struct _xmlEntity xmlEntity;
48typedef xmlEntity *xmlEntityPtr;
49
Daniel Veillard9d06d302002-01-22 18:15:52 +000050/**
51 * BASE_BUFFER_SIZE:
52 *
Daniel Veillard61f26172002-03-12 18:46:39 +000053 * default buffer size 4000.
Daniel Veillard9d06d302002-01-22 18:15:52 +000054 */
Daniel Veillard6155d8a2003-08-19 15:01:28 +000055#define BASE_BUFFER_SIZE 4096
Daniel Veillardd0463562001-10-13 09:15:48 +000056
Daniel Veillard5e2dace2001-07-18 19:30:27 +000057/**
58 * XML_XML_NAMESPACE:
59 *
60 * This is the namespace for the special xml: prefix predefined in the
Daniel Veillard61f26172002-03-12 18:46:39 +000061 * XML Namespace specification.
Daniel Veillard5e2dace2001-07-18 19:30:27 +000062 */
Owen Taylor3473f882001-02-23 17:55:21 +000063#define XML_XML_NAMESPACE \
64 (const xmlChar *) "http://www.w3.org/XML/1998/namespace"
65
Daniel Veillard67f8b1c2004-04-09 21:51:49 +000066/**
67 * XML_XML_ID:
68 *
69 * This is the name for the special xml:id attribute
70 */
71#define XML_XML_ID (const xmlChar *) "xml:id"
72
Owen Taylor3473f882001-02-23 17:55:21 +000073/*
Daniel Veillard61f26172002-03-12 18:46:39 +000074 * The different element types carried by an XML tree.
Owen Taylor3473f882001-02-23 17:55:21 +000075 *
76 * NOTE: This is synchronized with DOM Level1 values
77 * See http://www.w3.org/TR/REC-DOM-Level-1/
78 *
79 * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
80 * be deprecated to use an XML_DTD_NODE.
81 */
82typedef enum {
83 XML_ELEMENT_NODE= 1,
84 XML_ATTRIBUTE_NODE= 2,
85 XML_TEXT_NODE= 3,
86 XML_CDATA_SECTION_NODE= 4,
87 XML_ENTITY_REF_NODE= 5,
88 XML_ENTITY_NODE= 6,
89 XML_PI_NODE= 7,
90 XML_COMMENT_NODE= 8,
91 XML_DOCUMENT_NODE= 9,
92 XML_DOCUMENT_TYPE_NODE= 10,
93 XML_DOCUMENT_FRAG_NODE= 11,
94 XML_NOTATION_NODE= 12,
95 XML_HTML_DOCUMENT_NODE= 13,
96 XML_DTD_NODE= 14,
97 XML_ELEMENT_DECL= 15,
98 XML_ATTRIBUTE_DECL= 16,
99 XML_ENTITY_DECL= 17,
100 XML_NAMESPACE_DECL= 18,
101 XML_XINCLUDE_START= 19,
102 XML_XINCLUDE_END= 20
Daniel Veillardeae522a2001-04-23 13:41:34 +0000103#ifdef LIBXML_DOCB_ENABLED
104 ,XML_DOCB_DOCUMENT_NODE= 21
Owen Taylor3473f882001-02-23 17:55:21 +0000105#endif
106} xmlElementType;
107
Owen Taylor3473f882001-02-23 17:55:21 +0000108
Daniel Veillardbed7b052001-05-19 14:59:49 +0000109/**
110 * xmlNotation:
111 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000112 * A DTD Notation definition.
Owen Taylor3473f882001-02-23 17:55:21 +0000113 */
114
115typedef struct _xmlNotation xmlNotation;
116typedef xmlNotation *xmlNotationPtr;
117struct _xmlNotation {
Daniel Veillard9e7160d2001-03-18 23:17:47 +0000118 const xmlChar *name; /* Notation name */
Owen Taylor3473f882001-02-23 17:55:21 +0000119 const xmlChar *PublicID; /* Public identifier, if any */
120 const xmlChar *SystemID; /* System identifier, if any */
121};
122
Daniel Veillardbed7b052001-05-19 14:59:49 +0000123/**
124 * xmlAttributeType:
125 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000126 * A DTD Attribute type definition.
Owen Taylor3473f882001-02-23 17:55:21 +0000127 */
128
129typedef enum {
130 XML_ATTRIBUTE_CDATA = 1,
131 XML_ATTRIBUTE_ID,
132 XML_ATTRIBUTE_IDREF ,
133 XML_ATTRIBUTE_IDREFS,
134 XML_ATTRIBUTE_ENTITY,
135 XML_ATTRIBUTE_ENTITIES,
136 XML_ATTRIBUTE_NMTOKEN,
137 XML_ATTRIBUTE_NMTOKENS,
138 XML_ATTRIBUTE_ENUMERATION,
139 XML_ATTRIBUTE_NOTATION
140} xmlAttributeType;
141
Daniel Veillardbed7b052001-05-19 14:59:49 +0000142/**
143 * xmlAttributeDefault:
144 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000145 * A DTD Attribute default definition.
Daniel Veillardbed7b052001-05-19 14:59:49 +0000146 */
147
Owen Taylor3473f882001-02-23 17:55:21 +0000148typedef enum {
149 XML_ATTRIBUTE_NONE = 1,
150 XML_ATTRIBUTE_REQUIRED,
151 XML_ATTRIBUTE_IMPLIED,
152 XML_ATTRIBUTE_FIXED
153} xmlAttributeDefault;
154
Daniel Veillardbed7b052001-05-19 14:59:49 +0000155/**
156 * xmlEnumeration:
157 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000158 * List structure used when there is an enumeration in DTDs.
Daniel Veillardbed7b052001-05-19 14:59:49 +0000159 */
160
Owen Taylor3473f882001-02-23 17:55:21 +0000161typedef struct _xmlEnumeration xmlEnumeration;
162typedef xmlEnumeration *xmlEnumerationPtr;
163struct _xmlEnumeration {
164 struct _xmlEnumeration *next; /* next one */
165 const xmlChar *name; /* Enumeration name */
166};
167
Daniel Veillardbed7b052001-05-19 14:59:49 +0000168/**
169 * xmlAttribute:
170 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000171 * An Attribute declaration in a DTD.
Daniel Veillardbed7b052001-05-19 14:59:49 +0000172 */
173
Owen Taylor3473f882001-02-23 17:55:21 +0000174typedef struct _xmlAttribute xmlAttribute;
175typedef xmlAttribute *xmlAttributePtr;
176struct _xmlAttribute {
Daniel Veillard0ec98632001-11-14 15:04:32 +0000177 void *_private; /* application data */
Owen Taylor3473f882001-02-23 17:55:21 +0000178 xmlElementType type; /* XML_ATTRIBUTE_DECL, must be second ! */
179 const xmlChar *name; /* Attribute name */
180 struct _xmlNode *children; /* NULL */
181 struct _xmlNode *last; /* NULL */
182 struct _xmlDtd *parent; /* -> DTD */
183 struct _xmlNode *next; /* next sibling link */
184 struct _xmlNode *prev; /* previous sibling link */
185 struct _xmlDoc *doc; /* the containing document */
186
187 struct _xmlAttribute *nexth; /* next in hash table */
188 xmlAttributeType atype; /* The attribute type */
189 xmlAttributeDefault def; /* the default */
190 const xmlChar *defaultValue; /* or the default value */
191 xmlEnumerationPtr tree; /* or the enumeration tree if any */
192 const xmlChar *prefix; /* the namespace prefix if any */
193 const xmlChar *elem; /* Element holding the attribute */
194};
195
Daniel Veillardbed7b052001-05-19 14:59:49 +0000196/**
197 * xmlElementContentType:
198 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000199 * Possible definitions of element content types.
Owen Taylor3473f882001-02-23 17:55:21 +0000200 */
201typedef enum {
202 XML_ELEMENT_CONTENT_PCDATA = 1,
203 XML_ELEMENT_CONTENT_ELEMENT,
204 XML_ELEMENT_CONTENT_SEQ,
205 XML_ELEMENT_CONTENT_OR
206} xmlElementContentType;
207
Daniel Veillardbed7b052001-05-19 14:59:49 +0000208/**
209 * xmlElementContentOccur:
210 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000211 * Possible definitions of element content occurrences.
Daniel Veillardbed7b052001-05-19 14:59:49 +0000212 */
Owen Taylor3473f882001-02-23 17:55:21 +0000213typedef enum {
214 XML_ELEMENT_CONTENT_ONCE = 1,
215 XML_ELEMENT_CONTENT_OPT,
216 XML_ELEMENT_CONTENT_MULT,
217 XML_ELEMENT_CONTENT_PLUS
218} xmlElementContentOccur;
219
Daniel Veillardbed7b052001-05-19 14:59:49 +0000220/**
221 * xmlElementContent:
222 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000223 * An XML Element content as stored after parsing an element definition
Daniel Veillardbed7b052001-05-19 14:59:49 +0000224 * in a DTD.
225 */
226
Owen Taylor3473f882001-02-23 17:55:21 +0000227typedef struct _xmlElementContent xmlElementContent;
228typedef xmlElementContent *xmlElementContentPtr;
229struct _xmlElementContent {
230 xmlElementContentType type; /* PCDATA, ELEMENT, SEQ or OR */
231 xmlElementContentOccur ocur; /* ONCE, OPT, MULT or PLUS */
Daniel Veillardbe480fb2001-11-08 23:36:42 +0000232 const xmlChar *name; /* Element name */
Owen Taylor3473f882001-02-23 17:55:21 +0000233 struct _xmlElementContent *c1; /* first child */
234 struct _xmlElementContent *c2; /* second child */
Daniel Veillarddab4cb32001-04-20 13:03:48 +0000235 struct _xmlElementContent *parent; /* parent */
Daniel Veillarda9b66d02002-12-11 14:23:49 +0000236 const xmlChar *prefix; /* Namespace prefix */
Owen Taylor3473f882001-02-23 17:55:21 +0000237};
238
Daniel Veillardbed7b052001-05-19 14:59:49 +0000239/**
240 * xmlElementTypeVal:
241 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000242 * The different possibilities for an element content type.
Daniel Veillardbed7b052001-05-19 14:59:49 +0000243 */
244
Owen Taylor3473f882001-02-23 17:55:21 +0000245typedef enum {
Daniel Veillarda10efa82001-04-18 13:09:01 +0000246 XML_ELEMENT_TYPE_UNDEFINED = 0,
Owen Taylor3473f882001-02-23 17:55:21 +0000247 XML_ELEMENT_TYPE_EMPTY = 1,
248 XML_ELEMENT_TYPE_ANY,
249 XML_ELEMENT_TYPE_MIXED,
250 XML_ELEMENT_TYPE_ELEMENT
251} xmlElementTypeVal;
252
Daniel Veillardaeb258a2002-09-13 14:48:12 +0000253#ifdef __cplusplus
254}
255#endif
256#include <libxml/xmlregexp.h>
257#ifdef __cplusplus
258extern "C" {
259#endif
260
Daniel Veillardbed7b052001-05-19 14:59:49 +0000261/**
262 * xmlElement:
263 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000264 * An XML Element declaration from a DTD.
Daniel Veillardbed7b052001-05-19 14:59:49 +0000265 */
266
Owen Taylor3473f882001-02-23 17:55:21 +0000267typedef struct _xmlElement xmlElement;
268typedef xmlElement *xmlElementPtr;
269struct _xmlElement {
Daniel Veillard0ec98632001-11-14 15:04:32 +0000270 void *_private; /* application data */
Owen Taylor3473f882001-02-23 17:55:21 +0000271 xmlElementType type; /* XML_ELEMENT_DECL, must be second ! */
272 const xmlChar *name; /* Element name */
273 struct _xmlNode *children; /* NULL */
274 struct _xmlNode *last; /* NULL */
275 struct _xmlDtd *parent; /* -> DTD */
276 struct _xmlNode *next; /* next sibling link */
277 struct _xmlNode *prev; /* previous sibling link */
278 struct _xmlDoc *doc; /* the containing document */
279
280 xmlElementTypeVal etype; /* The type */
281 xmlElementContentPtr content; /* the allowed element content */
282 xmlAttributePtr attributes; /* List of the declared attributes */
283 const xmlChar *prefix; /* the namespace prefix if any */
Daniel Veillardaeb258a2002-09-13 14:48:12 +0000284#ifdef LIBXML_REGEXP_ENABLED
285 xmlRegexpPtr contModel; /* the validating regexp */
286#else
287 void *contModel;
288#endif
Owen Taylor3473f882001-02-23 17:55:21 +0000289};
290
Daniel Veillardbed7b052001-05-19 14:59:49 +0000291
Daniel Veillard5e2dace2001-07-18 19:30:27 +0000292/**
293 * XML_LOCAL_NAMESPACE:
294 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000295 * A namespace declaration node.
Daniel Veillard5e2dace2001-07-18 19:30:27 +0000296 */
Daniel Veillardbed7b052001-05-19 14:59:49 +0000297#define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
298typedef xmlElementType xmlNsType;
299
300/**
301 * xmlNs:
302 *
Owen Taylor3473f882001-02-23 17:55:21 +0000303 * An XML namespace.
304 * Note that prefix == NULL is valid, it defines the default namespace
Daniel Veillardd1640922001-12-17 15:30:10 +0000305 * within the subtree (until overridden).
Owen Taylor3473f882001-02-23 17:55:21 +0000306 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000307 * xmlNsType is unified with xmlElementType.
Owen Taylor3473f882001-02-23 17:55:21 +0000308 */
309
Owen Taylor3473f882001-02-23 17:55:21 +0000310typedef struct _xmlNs xmlNs;
311typedef xmlNs *xmlNsPtr;
312struct _xmlNs {
313 struct _xmlNs *next; /* next Ns link for this node */
314 xmlNsType type; /* global or local */
315 const xmlChar *href; /* URL for the namespace */
316 const xmlChar *prefix; /* prefix for the namespace */
PDT 2002 Aleksey Sanin8e8a7032002-07-22 18:03:11 +0000317 void *_private; /* application data */
Owen Taylor3473f882001-02-23 17:55:21 +0000318};
319
Daniel Veillardbed7b052001-05-19 14:59:49 +0000320/**
321 * xmlDtd:
322 *
Daniel Veillardd1640922001-12-17 15:30:10 +0000323 * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
Daniel Veillard61f26172002-03-12 18:46:39 +0000324 * the internal subset and for the external subset.
Owen Taylor3473f882001-02-23 17:55:21 +0000325 */
326typedef struct _xmlDtd xmlDtd;
327typedef xmlDtd *xmlDtdPtr;
328struct _xmlDtd {
Daniel Veillard0ec98632001-11-14 15:04:32 +0000329 void *_private; /* application data */
Owen Taylor3473f882001-02-23 17:55:21 +0000330 xmlElementType type; /* XML_DTD_NODE, must be second ! */
331 const xmlChar *name; /* Name of the DTD */
332 struct _xmlNode *children; /* the value of the property link */
333 struct _xmlNode *last; /* last child link */
334 struct _xmlDoc *parent; /* child->parent link */
335 struct _xmlNode *next; /* next sibling link */
336 struct _xmlNode *prev; /* previous sibling link */
337 struct _xmlDoc *doc; /* the containing document */
338
339 /* End of common part */
340 void *notations; /* Hash table for notations if any */
341 void *elements; /* Hash table for elements if any */
342 void *attributes; /* Hash table for attributes if any */
343 void *entities; /* Hash table for entities if any */
344 const xmlChar *ExternalID; /* External identifier for PUBLIC DTD */
345 const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC DTD */
346 void *pentities; /* Hash table for param entities if any */
347};
348
Daniel Veillardbed7b052001-05-19 14:59:49 +0000349/**
350 * xmlAttr:
351 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000352 * An attribute on an XML node.
Owen Taylor3473f882001-02-23 17:55:21 +0000353 */
354typedef struct _xmlAttr xmlAttr;
355typedef xmlAttr *xmlAttrPtr;
356struct _xmlAttr {
Daniel Veillard0ec98632001-11-14 15:04:32 +0000357 void *_private; /* application data */
Owen Taylor3473f882001-02-23 17:55:21 +0000358 xmlElementType type; /* XML_ATTRIBUTE_NODE, must be second ! */
359 const xmlChar *name; /* the name of the property */
360 struct _xmlNode *children; /* the value of the property */
361 struct _xmlNode *last; /* NULL */
362 struct _xmlNode *parent; /* child->parent link */
363 struct _xmlAttr *next; /* next sibling link */
364 struct _xmlAttr *prev; /* previous sibling link */
365 struct _xmlDoc *doc; /* the containing document */
366 xmlNs *ns; /* pointer to the associated namespace */
367 xmlAttributeType atype; /* the attribute type if validating */
Daniel Veillardd8850402003-10-10 14:24:12 +0000368 void *psvi; /* for type/PSVI informations */
Owen Taylor3473f882001-02-23 17:55:21 +0000369};
370
Daniel Veillardbed7b052001-05-19 14:59:49 +0000371/**
372 * xmlID:
373 *
Owen Taylor3473f882001-02-23 17:55:21 +0000374 * An XML ID instance.
375 */
376
377typedef struct _xmlID xmlID;
378typedef xmlID *xmlIDPtr;
379struct _xmlID {
380 struct _xmlID *next; /* next ID */
381 const xmlChar *value; /* The ID name */
Daniel Veillardd1640922001-12-17 15:30:10 +0000382 xmlAttrPtr attr; /* The attribute holding it */
Daniel Veillardea7751d2002-12-20 00:16:24 +0000383 const xmlChar *name; /* The attribute if attr is not available */
384 int lineno; /* The line number if attr is not available */
Daniel Veillard8d7b5c72003-11-15 18:24:36 +0000385 struct _xmlDoc *doc; /* The document holding the ID */
Owen Taylor3473f882001-02-23 17:55:21 +0000386};
387
Daniel Veillardbed7b052001-05-19 14:59:49 +0000388/**
389 * xmlRef:
390 *
Owen Taylor3473f882001-02-23 17:55:21 +0000391 * An XML IDREF instance.
392 */
393
394typedef struct _xmlRef xmlRef;
395typedef xmlRef *xmlRefPtr;
396struct _xmlRef {
397 struct _xmlRef *next; /* next Ref */
398 const xmlChar *value; /* The Ref name */
Daniel Veillardd1640922001-12-17 15:30:10 +0000399 xmlAttrPtr attr; /* The attribute holding it */
Daniel Veillardea7751d2002-12-20 00:16:24 +0000400 const xmlChar *name; /* The attribute if attr is not available */
401 int lineno; /* The line number if attr is not available */
Owen Taylor3473f882001-02-23 17:55:21 +0000402};
403
Daniel Veillardbed7b052001-05-19 14:59:49 +0000404/**
405 * xmlBufferAllocationScheme:
406 *
407 * A buffer allocation scheme can be defined to either match exactly the
Daniel Veillard61f26172002-03-12 18:46:39 +0000408 * need or double it's allocated size each time it is found too small.
Owen Taylor3473f882001-02-23 17:55:21 +0000409 */
410
411typedef enum {
412 XML_BUFFER_ALLOC_DOUBLEIT,
Daniel Veillard53350552003-09-18 13:35:51 +0000413 XML_BUFFER_ALLOC_EXACT,
414 XML_BUFFER_ALLOC_IMMUTABLE
Owen Taylor3473f882001-02-23 17:55:21 +0000415} xmlBufferAllocationScheme;
416
Daniel Veillardbed7b052001-05-19 14:59:49 +0000417/**
418 * xmlBuffer:
419 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000420 * A buffer structure.
Daniel Veillardbed7b052001-05-19 14:59:49 +0000421 */
Owen Taylor3473f882001-02-23 17:55:21 +0000422typedef struct _xmlBuffer xmlBuffer;
423typedef xmlBuffer *xmlBufferPtr;
424struct _xmlBuffer {
425 xmlChar *content; /* The buffer content UTF8 */
426 unsigned int use; /* The buffer size used */
427 unsigned int size; /* The buffer size */
428 xmlBufferAllocationScheme alloc; /* The realloc method */
429};
430
Daniel Veillardf69bb4b2001-05-19 13:24:56 +0000431/**
432 * xmlNode:
433 *
Owen Taylor3473f882001-02-23 17:55:21 +0000434 * A node in an XML tree.
435 */
436typedef struct _xmlNode xmlNode;
437typedef xmlNode *xmlNodePtr;
438struct _xmlNode {
Daniel Veillard0ec98632001-11-14 15:04:32 +0000439 void *_private; /* application data */
Owen Taylor3473f882001-02-23 17:55:21 +0000440 xmlElementType type; /* type number, must be second ! */
441 const xmlChar *name; /* the name of the node, or the entity */
442 struct _xmlNode *children; /* parent->childs link */
443 struct _xmlNode *last; /* last child link */
444 struct _xmlNode *parent; /* child->parent link */
445 struct _xmlNode *next; /* next sibling link */
446 struct _xmlNode *prev; /* previous sibling link */
447 struct _xmlDoc *doc; /* the containing document */
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000448
449 /* End of common part */
Owen Taylor3473f882001-02-23 17:55:21 +0000450 xmlNs *ns; /* pointer to the associated namespace */
Owen Taylor3473f882001-02-23 17:55:21 +0000451 xmlChar *content; /* the content */
Owen Taylor3473f882001-02-23 17:55:21 +0000452 struct _xmlAttr *properties;/* properties list */
453 xmlNs *nsDef; /* namespace definitions on this node */
Daniel Veillardd8850402003-10-10 14:24:12 +0000454 void *psvi; /* for type/PSVI informations */
Daniel Veillard1d211e22003-10-20 22:32:39 +0000455 unsigned short line; /* line number */
456 unsigned short extra; /* extra data for XPath/XSLT */
Owen Taylor3473f882001-02-23 17:55:21 +0000457};
458
Daniel Veillard5e2dace2001-07-18 19:30:27 +0000459/**
460 * XML_GET_CONTENT:
461 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000462 * Macro to extract the content pointer of a node.
Daniel Veillard5e2dace2001-07-18 19:30:27 +0000463 */
464#define XML_GET_CONTENT(n) \
Daniel Veillard566d4df2001-11-22 13:00:53 +0000465 ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)
Daniel Veillard5e2dace2001-07-18 19:30:27 +0000466
467/**
468 * XML_GET_LINE:
469 *
Daniel Veillard61f26172002-03-12 18:46:39 +0000470 * Macro to extract the line number of an element node.
Daniel Veillard5e2dace2001-07-18 19:30:27 +0000471 */
472#define XML_GET_LINE(n) \
Daniel Veillardc76440f2003-11-26 20:39:47 +0000473 (xmlGetLineNo(n))
Daniel Veillard7db37732001-07-12 01:20:08 +0000474
Daniel Veillard40412cd2003-09-03 13:28:32 +0000475
Daniel Veillardbed7b052001-05-19 14:59:49 +0000476/**
477 * xmlDoc:
478 *
Owen Taylor3473f882001-02-23 17:55:21 +0000479 * An XML document.
480 */
481typedef struct _xmlDoc xmlDoc;
482typedef xmlDoc *xmlDocPtr;
483struct _xmlDoc {
Daniel Veillard0ec98632001-11-14 15:04:32 +0000484 void *_private; /* application data */
Owen Taylor3473f882001-02-23 17:55:21 +0000485 xmlElementType type; /* XML_DOCUMENT_NODE, must be second ! */
486 char *name; /* name/filename/URI of the document */
487 struct _xmlNode *children; /* the document tree */
488 struct _xmlNode *last; /* last child link */
489 struct _xmlNode *parent; /* child->parent link */
490 struct _xmlNode *next; /* next sibling link */
491 struct _xmlNode *prev; /* previous sibling link */
492 struct _xmlDoc *doc; /* autoreference to itself */
493
494 /* End of common part */
495 int compression;/* level of zlib compression */
496 int standalone; /* standalone document (no external refs) */
497 struct _xmlDtd *intSubset; /* the document internal subset */
498 struct _xmlDtd *extSubset; /* the document external subset */
499 struct _xmlNs *oldNs; /* Global namespace, the old way */
500 const xmlChar *version; /* the XML version string */
501 const xmlChar *encoding; /* external initial encoding, if any */
502 void *ids; /* Hash table for ID attributes if any */
503 void *refs; /* Hash table for IDREFs attributes if any */
504 const xmlChar *URL; /* The URI for that document */
505 int charset; /* encoding of the in-memory content
506 actually an xmlCharEncoding */
Daniel Veillard40412cd2003-09-03 13:28:32 +0000507 struct _xmlDict *dict; /* dict used to allocate names or NULL */
Daniel Veillardd8850402003-10-10 14:24:12 +0000508 void *psvi; /* for type/PSVI informations */
Owen Taylor3473f882001-02-23 17:55:21 +0000509};
510
Kasimier T. Buchcikbc0e3c62005-06-27 10:28:23 +0000511typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
512typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
513struct _xmlDOMWrapCtxt {
514 void * _private;
515};
516
Daniel Veillardbed7b052001-05-19 14:59:49 +0000517/**
518 * xmlChildrenNode:
519 *
MST 2003 John Flecka0e7e932003-12-19 03:13:47 +0000520 * Macro for compatibility naming layer with libxml1. Maps
521 * to "children."
Owen Taylor3473f882001-02-23 17:55:21 +0000522 */
523#ifndef xmlChildrenNode
524#define xmlChildrenNode children
Daniel Veillardbed7b052001-05-19 14:59:49 +0000525#endif
526
527/**
528 * xmlRootNode:
529 *
MST 2003 John Flecka0e7e932003-12-19 03:13:47 +0000530 * Macro for compatibility naming layer with libxml1. Maps
531 * to "children".
Daniel Veillardbed7b052001-05-19 14:59:49 +0000532 */
533#ifndef xmlRootNode
Owen Taylor3473f882001-02-23 17:55:21 +0000534#define xmlRootNode children
535#endif
536
537/*
538 * Variables.
539 */
Owen Taylor3473f882001-02-23 17:55:21 +0000540
Daniel Veillardc00cda82003-04-07 10:22:39 +0000541/*
542 * Some helper functions
543 */
Daniel Veillard1f33c4d2005-07-10 21:38:31 +0000544#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED)
Igor Zlatkovic76874e42003-08-25 09:05:12 +0000545XMLPUBFUN int XMLCALL
546 xmlValidateNCName (const xmlChar *value,
Daniel Veillardc00cda82003-04-07 10:22:39 +0000547 int space);
William M. Brack21e4ef22005-01-02 09:53:13 +0000548#endif
549
550#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000551XMLPUBFUN int XMLCALL
552 xmlValidateQName (const xmlChar *value,
Daniel Veillardc00cda82003-04-07 10:22:39 +0000553 int space);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000554XMLPUBFUN int XMLCALL
555 xmlValidateName (const xmlChar *value,
Daniel Veillardc00cda82003-04-07 10:22:39 +0000556 int space);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000557XMLPUBFUN int XMLCALL
558 xmlValidateNMToken (const xmlChar *value,
Daniel Veillardc00cda82003-04-07 10:22:39 +0000559 int space);
William M. Brack21e4ef22005-01-02 09:53:13 +0000560#endif
Daniel Veillardd4310742003-02-18 21:12:46 +0000561
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000562XMLPUBFUN xmlChar * XMLCALL
563 xmlBuildQName (const xmlChar *ncname,
Daniel Veillardc00cda82003-04-07 10:22:39 +0000564 const xmlChar *prefix,
565 xmlChar *memory,
566 int len);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000567XMLPUBFUN xmlChar * XMLCALL
568 xmlSplitQName2 (const xmlChar *name,
Daniel Veillardc00cda82003-04-07 10:22:39 +0000569 xmlChar **prefix);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000570XMLPUBFUN const xmlChar * XMLCALL
571 xmlSplitQName3 (const xmlChar *name,
Daniel Veillard8d73bcb2003-08-04 01:06:15 +0000572 int *len);
573
Owen Taylor3473f882001-02-23 17:55:21 +0000574/*
575 * Handling Buffers.
576 */
577
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000578XMLPUBFUN void XMLCALL
579 xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
580XMLPUBFUN xmlBufferAllocationScheme XMLCALL
581 xmlGetBufferAllocationScheme(void);
Daniel Veillard56a4cb82001-03-24 17:00:36 +0000582
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000583XMLPUBFUN xmlBufferPtr XMLCALL
584 xmlBufferCreate (void);
585XMLPUBFUN xmlBufferPtr XMLCALL
586 xmlBufferCreateSize (size_t size);
Daniel Veillard53350552003-09-18 13:35:51 +0000587XMLPUBFUN xmlBufferPtr XMLCALL
588 xmlBufferCreateStatic (void *mem,
589 size_t size);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000590XMLPUBFUN int XMLCALL
591 xmlBufferResize (xmlBufferPtr buf,
Daniel Veillard56a4cb82001-03-24 17:00:36 +0000592 unsigned int size);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000593XMLPUBFUN void XMLCALL
594 xmlBufferFree (xmlBufferPtr buf);
595XMLPUBFUN int XMLCALL
596 xmlBufferDump (FILE *file,
Owen Taylor3473f882001-02-23 17:55:21 +0000597 xmlBufferPtr buf);
William M. Bracka3215c72004-07-31 16:24:01 +0000598XMLPUBFUN int XMLCALL
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000599 xmlBufferAdd (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +0000600 const xmlChar *str,
601 int len);
William M. Bracka3215c72004-07-31 16:24:01 +0000602XMLPUBFUN int XMLCALL
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000603 xmlBufferAddHead (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +0000604 const xmlChar *str,
605 int len);
William M. Bracka3215c72004-07-31 16:24:01 +0000606XMLPUBFUN int XMLCALL
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000607 xmlBufferCat (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +0000608 const xmlChar *str);
William M. Bracka3215c72004-07-31 16:24:01 +0000609XMLPUBFUN int XMLCALL
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000610 xmlBufferCCat (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +0000611 const char *str);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000612XMLPUBFUN int XMLCALL
613 xmlBufferShrink (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +0000614 unsigned int len);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000615XMLPUBFUN int XMLCALL
616 xmlBufferGrow (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +0000617 unsigned int len);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000618XMLPUBFUN void XMLCALL
619 xmlBufferEmpty (xmlBufferPtr buf);
620XMLPUBFUN const xmlChar* XMLCALL
621 xmlBufferContent (const xmlBufferPtr buf);
622XMLPUBFUN void XMLCALL
623 xmlBufferSetAllocationScheme(xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +0000624 xmlBufferAllocationScheme scheme);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000625XMLPUBFUN int XMLCALL
626 xmlBufferLength (const xmlBufferPtr buf);
Owen Taylor3473f882001-02-23 17:55:21 +0000627
628/*
Daniel Veillard61f26172002-03-12 18:46:39 +0000629 * Creating/freeing new structures.
Owen Taylor3473f882001-02-23 17:55:21 +0000630 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000631XMLPUBFUN xmlDtdPtr XMLCALL
632 xmlCreateIntSubset (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000633 const xmlChar *name,
634 const xmlChar *ExternalID,
635 const xmlChar *SystemID);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000636XMLPUBFUN xmlDtdPtr XMLCALL
637 xmlNewDtd (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000638 const xmlChar *name,
639 const xmlChar *ExternalID,
640 const xmlChar *SystemID);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000641XMLPUBFUN xmlDtdPtr XMLCALL
642 xmlGetIntSubset (xmlDocPtr doc);
643XMLPUBFUN void XMLCALL
644 xmlFreeDtd (xmlDtdPtr cur);
William M. Brack21e4ef22005-01-02 09:53:13 +0000645#ifdef LIBXML_LEGACY_ENABLED
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000646XMLPUBFUN xmlNsPtr XMLCALL
647 xmlNewGlobalNs (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000648 const xmlChar *href,
649 const xmlChar *prefix);
William M. Brack21e4ef22005-01-02 09:53:13 +0000650#endif /* LIBXML_LEGACY_ENABLED */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000651XMLPUBFUN xmlNsPtr XMLCALL
652 xmlNewNs (xmlNodePtr node,
Owen Taylor3473f882001-02-23 17:55:21 +0000653 const xmlChar *href,
654 const xmlChar *prefix);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000655XMLPUBFUN void XMLCALL
656 xmlFreeNs (xmlNsPtr cur);
657XMLPUBFUN void XMLCALL
658 xmlFreeNsList (xmlNsPtr cur);
659XMLPUBFUN xmlDocPtr XMLCALL
660 xmlNewDoc (const xmlChar *version);
661XMLPUBFUN void XMLCALL
662 xmlFreeDoc (xmlDocPtr cur);
663XMLPUBFUN xmlAttrPtr XMLCALL
664 xmlNewDocProp (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000665 const xmlChar *name,
666 const xmlChar *value);
William M. Brack21e4ef22005-01-02 09:53:13 +0000667#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
668 defined(LIBXML_SCHEMAS_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000669XMLPUBFUN xmlAttrPtr XMLCALL
670 xmlNewProp (xmlNodePtr node,
Owen Taylor3473f882001-02-23 17:55:21 +0000671 const xmlChar *name,
672 const xmlChar *value);
William M. Brack21e4ef22005-01-02 09:53:13 +0000673#endif
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000674XMLPUBFUN xmlAttrPtr XMLCALL
675 xmlNewNsProp (xmlNodePtr node,
Owen Taylor3473f882001-02-23 17:55:21 +0000676 xmlNsPtr ns,
677 const xmlChar *name,
678 const xmlChar *value);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000679XMLPUBFUN xmlAttrPtr XMLCALL
680 xmlNewNsPropEatName (xmlNodePtr node,
Daniel Veillard46de64e2002-05-29 08:21:33 +0000681 xmlNsPtr ns,
682 xmlChar *name,
683 const xmlChar *value);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000684XMLPUBFUN void XMLCALL
685 xmlFreePropList (xmlAttrPtr cur);
686XMLPUBFUN void XMLCALL
687 xmlFreeProp (xmlAttrPtr cur);
688XMLPUBFUN xmlAttrPtr XMLCALL
689 xmlCopyProp (xmlNodePtr target,
Owen Taylor3473f882001-02-23 17:55:21 +0000690 xmlAttrPtr cur);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000691XMLPUBFUN xmlAttrPtr XMLCALL
692 xmlCopyPropList (xmlNodePtr target,
Owen Taylor3473f882001-02-23 17:55:21 +0000693 xmlAttrPtr cur);
Daniel Veillard652327a2003-09-29 18:02:38 +0000694#ifdef LIBXML_TREE_ENABLED
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000695XMLPUBFUN xmlDtdPtr XMLCALL
696 xmlCopyDtd (xmlDtdPtr dtd);
William M. Brack21e4ef22005-01-02 09:53:13 +0000697#endif /* LIBXML_TREE_ENABLED */
698#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000699XMLPUBFUN xmlDocPtr XMLCALL
700 xmlCopyDoc (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000701 int recursive);
William M. Brack21e4ef22005-01-02 09:53:13 +0000702#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
Owen Taylor3473f882001-02-23 17:55:21 +0000703/*
Daniel Veillard61f26172002-03-12 18:46:39 +0000704 * Creating new nodes.
Owen Taylor3473f882001-02-23 17:55:21 +0000705 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000706XMLPUBFUN xmlNodePtr XMLCALL
707 xmlNewDocNode (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000708 xmlNsPtr ns,
709 const xmlChar *name,
710 const xmlChar *content);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000711XMLPUBFUN xmlNodePtr XMLCALL
712 xmlNewDocNodeEatName (xmlDocPtr doc,
Daniel Veillard46de64e2002-05-29 08:21:33 +0000713 xmlNsPtr ns,
714 xmlChar *name,
715 const xmlChar *content);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000716XMLPUBFUN xmlNodePtr XMLCALL
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000717 xmlNewNode (xmlNsPtr ns,
Owen Taylor3473f882001-02-23 17:55:21 +0000718 const xmlChar *name);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000719XMLPUBFUN xmlNodePtr XMLCALL
720 xmlNewNodeEatName (xmlNsPtr ns,
Daniel Veillard46de64e2002-05-29 08:21:33 +0000721 xmlChar *name);
William M. Brack21e4ef22005-01-02 09:53:13 +0000722#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000723XMLPUBFUN xmlNodePtr XMLCALL
724 xmlNewChild (xmlNodePtr parent,
Owen Taylor3473f882001-02-23 17:55:21 +0000725 xmlNsPtr ns,
726 const xmlChar *name,
727 const xmlChar *content);
William M. Brack21e4ef22005-01-02 09:53:13 +0000728#endif
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000729XMLPUBFUN xmlNodePtr XMLCALL
730 xmlNewDocText (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000731 const xmlChar *content);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000732XMLPUBFUN xmlNodePtr XMLCALL
733 xmlNewText (const xmlChar *content);
734XMLPUBFUN xmlNodePtr XMLCALL
Daniel Veillard03a53c32004-10-26 16:06:51 +0000735 xmlNewDocPI (xmlDocPtr doc,
736 const xmlChar *name,
737 const xmlChar *content);
738XMLPUBFUN xmlNodePtr XMLCALL
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000739 xmlNewPI (const xmlChar *name,
Owen Taylor3473f882001-02-23 17:55:21 +0000740 const xmlChar *content);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000741XMLPUBFUN xmlNodePtr XMLCALL
742 xmlNewDocTextLen (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000743 const xmlChar *content,
744 int len);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000745XMLPUBFUN xmlNodePtr XMLCALL
746 xmlNewTextLen (const xmlChar *content,
Owen Taylor3473f882001-02-23 17:55:21 +0000747 int len);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000748XMLPUBFUN xmlNodePtr XMLCALL
749 xmlNewDocComment (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000750 const xmlChar *content);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000751XMLPUBFUN xmlNodePtr XMLCALL
752 xmlNewComment (const xmlChar *content);
753XMLPUBFUN xmlNodePtr XMLCALL
754 xmlNewCDataBlock (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000755 const xmlChar *content,
756 int len);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000757XMLPUBFUN xmlNodePtr XMLCALL
758 xmlNewCharRef (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000759 const xmlChar *name);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000760XMLPUBFUN xmlNodePtr XMLCALL
761 xmlNewReference (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000762 const xmlChar *name);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000763XMLPUBFUN xmlNodePtr XMLCALL
764 xmlCopyNode (const xmlNodePtr node,
Owen Taylor3473f882001-02-23 17:55:21 +0000765 int recursive);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000766XMLPUBFUN xmlNodePtr XMLCALL
767 xmlDocCopyNode (const xmlNodePtr node,
Daniel Veillard82daa812001-04-12 08:55:36 +0000768 xmlDocPtr doc,
769 int recursive);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000770XMLPUBFUN xmlNodePtr XMLCALL
Daniel Veillard03a53c32004-10-26 16:06:51 +0000771 xmlDocCopyNodeList (xmlDocPtr doc,
772 const xmlNodePtr node);
773XMLPUBFUN xmlNodePtr XMLCALL
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000774 xmlCopyNodeList (const xmlNodePtr node);
Daniel Veillard652327a2003-09-29 18:02:38 +0000775#ifdef LIBXML_TREE_ENABLED
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000776XMLPUBFUN xmlNodePtr XMLCALL
William M. Brack21e4ef22005-01-02 09:53:13 +0000777 xmlNewTextChild (xmlNodePtr parent,
778 xmlNsPtr ns,
779 const xmlChar *name,
780 const xmlChar *content);
781XMLPUBFUN xmlNodePtr XMLCALL
782 xmlNewDocRawNode (xmlDocPtr doc,
783 xmlNsPtr ns,
784 const xmlChar *name,
785 const xmlChar *content);
786XMLPUBFUN xmlNodePtr XMLCALL
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000787 xmlNewDocFragment (xmlDocPtr doc);
Daniel Veillard652327a2003-09-29 18:02:38 +0000788#endif /* LIBXML_TREE_ENABLED */
Owen Taylor3473f882001-02-23 17:55:21 +0000789
790/*
Daniel Veillard61f26172002-03-12 18:46:39 +0000791 * Navigating.
Owen Taylor3473f882001-02-23 17:55:21 +0000792 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000793XMLPUBFUN long XMLCALL
794 xmlGetLineNo (xmlNodePtr node);
William M. Brack21e4ef22005-01-02 09:53:13 +0000795#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000796XMLPUBFUN xmlChar * XMLCALL
797 xmlGetNodePath (xmlNodePtr node);
William M. Brack21e4ef22005-01-02 09:53:13 +0000798#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000799XMLPUBFUN xmlNodePtr XMLCALL
800 xmlDocGetRootElement (xmlDocPtr doc);
801XMLPUBFUN xmlNodePtr XMLCALL
802 xmlGetLastChild (xmlNodePtr parent);
803XMLPUBFUN int XMLCALL
804 xmlNodeIsText (xmlNodePtr node);
805XMLPUBFUN int XMLCALL
806 xmlIsBlankNode (xmlNodePtr node);
Owen Taylor3473f882001-02-23 17:55:21 +0000807
808/*
Daniel Veillard61f26172002-03-12 18:46:39 +0000809 * Changing the structure.
Owen Taylor3473f882001-02-23 17:55:21 +0000810 */
William M. Brack21e4ef22005-01-02 09:53:13 +0000811#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000812XMLPUBFUN xmlNodePtr XMLCALL
813 xmlDocSetRootElement (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000814 xmlNodePtr root);
William M. Brack21e4ef22005-01-02 09:53:13 +0000815#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
816#ifdef LIBXML_TREE_ENABLED
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000817XMLPUBFUN void XMLCALL
818 xmlNodeSetName (xmlNodePtr cur,
Owen Taylor3473f882001-02-23 17:55:21 +0000819 const xmlChar *name);
Daniel Veillard652327a2003-09-29 18:02:38 +0000820#endif /* LIBXML_TREE_ENABLED */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000821XMLPUBFUN xmlNodePtr XMLCALL
822 xmlAddChild (xmlNodePtr parent,
Owen Taylor3473f882001-02-23 17:55:21 +0000823 xmlNodePtr cur);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000824XMLPUBFUN xmlNodePtr XMLCALL
825 xmlAddChildList (xmlNodePtr parent,
Owen Taylor3473f882001-02-23 17:55:21 +0000826 xmlNodePtr cur);
William M. Brack21e4ef22005-01-02 09:53:13 +0000827#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000828XMLPUBFUN xmlNodePtr XMLCALL
829 xmlReplaceNode (xmlNodePtr old,
Owen Taylor3473f882001-02-23 17:55:21 +0000830 xmlNodePtr cur);
William M. Brack21e4ef22005-01-02 09:53:13 +0000831#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
832#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
833 defined(LIBXML_SCHEMAS_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000834XMLPUBFUN xmlNodePtr XMLCALL
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000835 xmlAddPrevSibling (xmlNodePtr cur,
Owen Taylor3473f882001-02-23 17:55:21 +0000836 xmlNodePtr elem);
William M. Brack21e4ef22005-01-02 09:53:13 +0000837#endif /* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED */
Daniel Veillard652327a2003-09-29 18:02:38 +0000838XMLPUBFUN xmlNodePtr XMLCALL
839 xmlAddSibling (xmlNodePtr cur,
840 xmlNodePtr elem);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000841XMLPUBFUN xmlNodePtr XMLCALL
842 xmlAddNextSibling (xmlNodePtr cur,
Owen Taylor3473f882001-02-23 17:55:21 +0000843 xmlNodePtr elem);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000844XMLPUBFUN void XMLCALL
845 xmlUnlinkNode (xmlNodePtr cur);
846XMLPUBFUN xmlNodePtr XMLCALL
847 xmlTextMerge (xmlNodePtr first,
Owen Taylor3473f882001-02-23 17:55:21 +0000848 xmlNodePtr second);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000849XMLPUBFUN int XMLCALL
850 xmlTextConcat (xmlNodePtr node,
Owen Taylor3473f882001-02-23 17:55:21 +0000851 const xmlChar *content,
852 int len);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000853XMLPUBFUN void XMLCALL
854 xmlFreeNodeList (xmlNodePtr cur);
855XMLPUBFUN void XMLCALL
856 xmlFreeNode (xmlNodePtr cur);
857XMLPUBFUN void XMLCALL
858 xmlSetTreeDoc (xmlNodePtr tree,
Owen Taylor3473f882001-02-23 17:55:21 +0000859 xmlDocPtr doc);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000860XMLPUBFUN void XMLCALL
861 xmlSetListDoc (xmlNodePtr list,
Owen Taylor3473f882001-02-23 17:55:21 +0000862 xmlDocPtr doc);
Owen Taylor3473f882001-02-23 17:55:21 +0000863/*
Daniel Veillard61f26172002-03-12 18:46:39 +0000864 * Namespaces.
Owen Taylor3473f882001-02-23 17:55:21 +0000865 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000866XMLPUBFUN xmlNsPtr XMLCALL
867 xmlSearchNs (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000868 xmlNodePtr node,
869 const xmlChar *nameSpace);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000870XMLPUBFUN xmlNsPtr XMLCALL
871 xmlSearchNsByHref (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000872 xmlNodePtr node,
873 const xmlChar *href);
William M. Brack21e4ef22005-01-02 09:53:13 +0000874#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000875XMLPUBFUN xmlNsPtr * XMLCALL
876 xmlGetNsList (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000877 xmlNodePtr node);
William M. Brack21e4ef22005-01-02 09:53:13 +0000878#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */
Daniel Veillard652327a2003-09-29 18:02:38 +0000879
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000880XMLPUBFUN void XMLCALL
881 xmlSetNs (xmlNodePtr node,
Owen Taylor3473f882001-02-23 17:55:21 +0000882 xmlNsPtr ns);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000883XMLPUBFUN xmlNsPtr XMLCALL
884 xmlCopyNamespace (xmlNsPtr cur);
885XMLPUBFUN xmlNsPtr XMLCALL
886 xmlCopyNamespaceList (xmlNsPtr cur);
Owen Taylor3473f882001-02-23 17:55:21 +0000887
888/*
889 * Changing the content.
890 */
William M. Brack21e4ef22005-01-02 09:53:13 +0000891#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000892XMLPUBFUN xmlAttrPtr XMLCALL
893 xmlSetProp (xmlNodePtr node,
Owen Taylor3473f882001-02-23 17:55:21 +0000894 const xmlChar *name,
895 const xmlChar *value);
William M. Brack21e4ef22005-01-02 09:53:13 +0000896XMLPUBFUN xmlAttrPtr XMLCALL
897 xmlSetNsProp (xmlNodePtr node,
898 xmlNsPtr ns,
899 const xmlChar *name,
900 const xmlChar *value);
901#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000902XMLPUBFUN xmlChar * XMLCALL
903 xmlGetNoNsProp (xmlNodePtr node,
Daniel Veillard71531f32003-02-05 13:19:53 +0000904 const xmlChar *name);
Daniel Veillard652327a2003-09-29 18:02:38 +0000905XMLPUBFUN xmlChar * XMLCALL
906 xmlGetProp (xmlNodePtr node,
907 const xmlChar *name);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000908XMLPUBFUN xmlAttrPtr XMLCALL
909 xmlHasProp (xmlNodePtr node,
Owen Taylor3473f882001-02-23 17:55:21 +0000910 const xmlChar *name);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000911XMLPUBFUN xmlAttrPtr XMLCALL
912 xmlHasNsProp (xmlNodePtr node,
Daniel Veillarde95e2392001-06-06 10:46:28 +0000913 const xmlChar *name,
Daniel Veillardca2366a2001-06-11 12:09:01 +0000914 const xmlChar *nameSpace);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000915XMLPUBFUN xmlChar * XMLCALL
916 xmlGetNsProp (xmlNodePtr node,
Owen Taylor3473f882001-02-23 17:55:21 +0000917 const xmlChar *name,
918 const xmlChar *nameSpace);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000919XMLPUBFUN xmlNodePtr XMLCALL
920 xmlStringGetNodeList (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000921 const xmlChar *value);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000922XMLPUBFUN xmlNodePtr XMLCALL
923 xmlStringLenGetNodeList (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000924 const xmlChar *value,
925 int len);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000926XMLPUBFUN xmlChar * XMLCALL
927 xmlNodeListGetString (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000928 xmlNodePtr list,
929 int inLine);
Daniel Veillard652327a2003-09-29 18:02:38 +0000930#ifdef LIBXML_TREE_ENABLED
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000931XMLPUBFUN xmlChar * XMLCALL
932 xmlNodeListGetRawString (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000933 xmlNodePtr list,
934 int inLine);
Daniel Veillard652327a2003-09-29 18:02:38 +0000935#endif /* LIBXML_TREE_ENABLED */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000936XMLPUBFUN void XMLCALL
937 xmlNodeSetContent (xmlNodePtr cur,
Owen Taylor3473f882001-02-23 17:55:21 +0000938 const xmlChar *content);
Daniel Veillard652327a2003-09-29 18:02:38 +0000939#ifdef LIBXML_TREE_ENABLED
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000940XMLPUBFUN void XMLCALL
941 xmlNodeSetContentLen (xmlNodePtr cur,
Owen Taylor3473f882001-02-23 17:55:21 +0000942 const xmlChar *content,
943 int len);
Daniel Veillard652327a2003-09-29 18:02:38 +0000944#endif /* LIBXML_TREE_ENABLED */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000945XMLPUBFUN void XMLCALL
946 xmlNodeAddContent (xmlNodePtr cur,
Owen Taylor3473f882001-02-23 17:55:21 +0000947 const xmlChar *content);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000948XMLPUBFUN void XMLCALL
949 xmlNodeAddContentLen (xmlNodePtr cur,
Owen Taylor3473f882001-02-23 17:55:21 +0000950 const xmlChar *content,
951 int len);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000952XMLPUBFUN xmlChar * XMLCALL
953 xmlNodeGetContent (xmlNodePtr cur);
Daniel Veillard78697292003-10-19 20:44:43 +0000954XMLPUBFUN int XMLCALL
955 xmlNodeBufGetContent (xmlBufferPtr buffer,
956 xmlNodePtr cur);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000957XMLPUBFUN xmlChar * XMLCALL
958 xmlNodeGetLang (xmlNodePtr cur);
Daniel Veillard652327a2003-09-29 18:02:38 +0000959XMLPUBFUN int XMLCALL
960 xmlNodeGetSpacePreserve (xmlNodePtr cur);
961#ifdef LIBXML_TREE_ENABLED
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000962XMLPUBFUN void XMLCALL
963 xmlNodeSetLang (xmlNodePtr cur,
Owen Taylor3473f882001-02-23 17:55:21 +0000964 const xmlChar *lang);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000965XMLPUBFUN void XMLCALL
966 xmlNodeSetSpacePreserve (xmlNodePtr cur,
Daniel Veillardd1640922001-12-17 15:30:10 +0000967 int val);
Daniel Veillard652327a2003-09-29 18:02:38 +0000968#endif /* LIBXML_TREE_ENABLED */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000969XMLPUBFUN xmlChar * XMLCALL
970 xmlNodeGetBase (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +0000971 xmlNodePtr cur);
William M. Brack21e4ef22005-01-02 09:53:13 +0000972#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000973XMLPUBFUN void XMLCALL
974 xmlNodeSetBase (xmlNodePtr cur,
Daniel Veillardf85ce8e2003-09-22 10:24:45 +0000975 const xmlChar *uri);
William M. Brack21e4ef22005-01-02 09:53:13 +0000976#endif
Owen Taylor3473f882001-02-23 17:55:21 +0000977
978/*
979 * Removing content.
980 */
William M. Brack21e4ef22005-01-02 09:53:13 +0000981#ifdef LIBXML_TREE_ENABLED
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000982XMLPUBFUN int XMLCALL
983 xmlRemoveProp (xmlAttrPtr cur);
William M. Brack21e4ef22005-01-02 09:53:13 +0000984#endif /* LIBXML_TREE_ENABLED */
985#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000986XMLPUBFUN int XMLCALL
987 xmlUnsetNsProp (xmlNodePtr node,
Daniel Veillard9403a042001-05-28 11:00:53 +0000988 xmlNsPtr ns,
989 const xmlChar *name);
William M. Brack21e4ef22005-01-02 09:53:13 +0000990XMLPUBFUN int XMLCALL
991 xmlUnsetProp (xmlNodePtr node,
992 const xmlChar *name);
993#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
Owen Taylor3473f882001-02-23 17:55:21 +0000994
995/*
Daniel Veillard61f26172002-03-12 18:46:39 +0000996 * Internal, don't use.
Owen Taylor3473f882001-02-23 17:55:21 +0000997 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000998XMLPUBFUN void XMLCALL
999 xmlBufferWriteCHAR (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +00001000 const xmlChar *string);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001001XMLPUBFUN void XMLCALL
1002 xmlBufferWriteChar (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +00001003 const char *string);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001004XMLPUBFUN void XMLCALL
1005 xmlBufferWriteQuotedString(xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +00001006 const xmlChar *string);
1007
William M. Brack21e4ef22005-01-02 09:53:13 +00001008#ifdef LIBXML_OUTPUT_ENABLED
William M. Bracka9c612c2004-02-01 10:04:05 +00001009XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
1010 xmlDocPtr doc,
1011 xmlAttrPtr attr,
1012 const xmlChar *string);
William M. Brack21e4ef22005-01-02 09:53:13 +00001013#endif /* LIBXML_OUTPUT_ENABLED */
William M. Bracka9c612c2004-02-01 10:04:05 +00001014
William M. Brack21e4ef22005-01-02 09:53:13 +00001015#ifdef LIBXML_TREE_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +00001016/*
Daniel Veillard61f26172002-03-12 18:46:39 +00001017 * Namespace handling.
Owen Taylor3473f882001-02-23 17:55:21 +00001018 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001019XMLPUBFUN int XMLCALL
1020 xmlReconciliateNs (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +00001021 xmlNodePtr tree);
William M. Brack21e4ef22005-01-02 09:53:13 +00001022#endif
Owen Taylor3473f882001-02-23 17:55:21 +00001023
Daniel Veillarda9cce9c2003-09-29 13:20:24 +00001024#ifdef LIBXML_OUTPUT_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +00001025/*
Daniel Veillard61f26172002-03-12 18:46:39 +00001026 * Saving.
Owen Taylor3473f882001-02-23 17:55:21 +00001027 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001028XMLPUBFUN void XMLCALL
1029 xmlDocDumpFormatMemory (xmlDocPtr cur,
Daniel Veillard963d2ae2002-01-20 22:08:18 +00001030 xmlChar **mem,
Owen Taylor3473f882001-02-23 17:55:21 +00001031 int *size,
1032 int format);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001033XMLPUBFUN void XMLCALL
1034 xmlDocDumpMemory (xmlDocPtr cur,
Daniel Veillard963d2ae2002-01-20 22:08:18 +00001035 xmlChar **mem,
Owen Taylor3473f882001-02-23 17:55:21 +00001036 int *size);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001037XMLPUBFUN void XMLCALL
1038 xmlDocDumpMemoryEnc (xmlDocPtr out_doc,
Owen Taylor3473f882001-02-23 17:55:21 +00001039 xmlChar **doc_txt_ptr,
1040 int * doc_txt_len,
1041 const char *txt_encoding);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001042XMLPUBFUN void XMLCALL
1043 xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
Owen Taylor3473f882001-02-23 17:55:21 +00001044 xmlChar **doc_txt_ptr,
1045 int * doc_txt_len,
1046 const char *txt_encoding,
1047 int format);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001048XMLPUBFUN int XMLCALL
1049 xmlDocFormatDump (FILE *f,
Daniel Veillard9e412302002-06-10 15:59:44 +00001050 xmlDocPtr cur,
1051 int format);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001052XMLPUBFUN int XMLCALL
1053 xmlDocDump (FILE *f,
Owen Taylor3473f882001-02-23 17:55:21 +00001054 xmlDocPtr cur);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001055XMLPUBFUN void XMLCALL
1056 xmlElemDump (FILE *f,
Owen Taylor3473f882001-02-23 17:55:21 +00001057 xmlDocPtr doc,
1058 xmlNodePtr cur);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001059XMLPUBFUN int XMLCALL
1060 xmlSaveFile (const char *filename,
Owen Taylor3473f882001-02-23 17:55:21 +00001061 xmlDocPtr cur);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001062XMLPUBFUN int XMLCALL
1063 xmlSaveFormatFile (const char *filename,
Daniel Veillard67fee942001-04-26 18:59:03 +00001064 xmlDocPtr cur,
1065 int format);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001066XMLPUBFUN int XMLCALL
1067 xmlNodeDump (xmlBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +00001068 xmlDocPtr doc,
1069 xmlNodePtr cur,
1070 int level,
1071 int format);
1072
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001073XMLPUBFUN int XMLCALL
1074 xmlSaveFileTo (xmlOutputBufferPtr buf,
Owen Taylor3473f882001-02-23 17:55:21 +00001075 xmlDocPtr cur,
1076 const char *encoding);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001077XMLPUBFUN int XMLCALL
1078 xmlSaveFormatFileTo (xmlOutputBufferPtr buf,
CET 2001 Daniel Veillard5a37bde2001-11-01 14:31:22 +00001079 xmlDocPtr cur,
1080 const char *encoding,
1081 int format);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001082XMLPUBFUN void XMLCALL
1083 xmlNodeDumpOutput (xmlOutputBufferPtr buf,
CET 2001 Daniel Veillard5a37bde2001-11-01 14:31:22 +00001084 xmlDocPtr doc,
1085 xmlNodePtr cur,
1086 int level,
1087 int format,
1088 const char *encoding);
Owen Taylor3473f882001-02-23 17:55:21 +00001089
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001090XMLPUBFUN int XMLCALL
1091 xmlSaveFormatFileEnc (const char *filename,
Daniel Veillardd1640922001-12-17 15:30:10 +00001092 xmlDocPtr cur,
1093 const char *encoding,
1094 int format);
Daniel Veillardf012a642001-07-23 19:10:52 +00001095
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001096XMLPUBFUN int XMLCALL
1097 xmlSaveFileEnc (const char *filename,
Owen Taylor3473f882001-02-23 17:55:21 +00001098 xmlDocPtr cur,
1099 const char *encoding);
1100
Daniel Veillarda9cce9c2003-09-29 13:20:24 +00001101#endif /* LIBXML_OUTPUT_ENABLED */
Owen Taylor3473f882001-02-23 17:55:21 +00001102/*
Daniel Veillardd5c2f922002-11-21 14:10:52 +00001103 * XHTML
1104 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001105XMLPUBFUN int XMLCALL
1106 xmlIsXHTML (const xmlChar *systemID,
Daniel Veillardd5c2f922002-11-21 14:10:52 +00001107 const xmlChar *publicID);
1108
1109/*
Daniel Veillard61f26172002-03-12 18:46:39 +00001110 * Compression.
Owen Taylor3473f882001-02-23 17:55:21 +00001111 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001112XMLPUBFUN int XMLCALL
1113 xmlGetDocCompressMode (xmlDocPtr doc);
1114XMLPUBFUN void XMLCALL
1115 xmlSetDocCompressMode (xmlDocPtr doc,
Owen Taylor3473f882001-02-23 17:55:21 +00001116 int mode);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +00001117XMLPUBFUN int XMLCALL
1118 xmlGetCompressMode (void);
1119XMLPUBFUN void XMLCALL
1120 xmlSetCompressMode (int mode);
Owen Taylor3473f882001-02-23 17:55:21 +00001121
Kasimier T. Buchcikbc0e3c62005-06-27 10:28:23 +00001122/*
1123* DOM-wrapper helper functions.
1124*/
Kasimier T. Buchcik4d9c9482005-06-27 15:04:46 +00001125XMLPUBFUN xmlDOMWrapCtxtPtr XMLCALL
1126 xmlDOMWrapNewCtxt (void);
1127XMLPUBFUN void XMLCALL
1128 xmlDOMWrapFreeCtxt (xmlDOMWrapCtxtPtr ctxt);
Kasimier T. Buchcikbc0e3c62005-06-27 10:28:23 +00001129XMLPUBFUN int XMLCALL
1130 xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt,
1131 xmlNodePtr elem,
1132 int options);
1133XMLPUBFUN int XMLCALL
1134 xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt,
1135 xmlDocPtr sourceDoc,
1136 xmlNodePtr node,
1137 xmlDocPtr destDoc,
1138 xmlNodePtr destParent,
1139 int options);
1140XMLPUBFUN int XMLCALL
1141 xmlDOMWrapRemoveNode (xmlDOMWrapCtxtPtr ctxt,
1142 xmlDocPtr doc,
1143 xmlNodePtr node,
1144 int options);
1145
Owen Taylor3473f882001-02-23 17:55:21 +00001146#ifdef __cplusplus
1147}
1148#endif
Daniel Veillard6c4ffaf2002-02-11 08:54:05 +00001149#ifndef __XML_PARSER_H__
1150#include <libxml/xmlmemory.h>
1151#endif
Owen Taylor3473f882001-02-23 17:55:21 +00001152
1153#endif /* __XML_TREE_H__ */
1154