Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hhhrrrttt222111
GitHub Repository: hhhrrrttt222111/Dorkify
Path: blob/master/venv/Lib/site-packages/lxml/includes/libxml/tree.h
811 views
1
/*
2
* 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
6
*
7
* Copy: See Copyright for the status of this software.
8
*
9
* Author: Daniel Veillard
10
*/
11
12
#ifndef __XML_TREE_H__
13
#define __XML_TREE_H__
14
15
#include <stdio.h>
16
#include <limits.h>
17
#include <libxml/xmlversion.h>
18
#include <libxml/xmlstring.h>
19
20
#ifdef __cplusplus
21
extern "C" {
22
#endif
23
24
/*
25
* Some of the basic types pointer to structures:
26
*/
27
/* xmlIO.h */
28
typedef struct _xmlParserInputBuffer xmlParserInputBuffer;
29
typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
30
31
typedef struct _xmlOutputBuffer xmlOutputBuffer;
32
typedef xmlOutputBuffer *xmlOutputBufferPtr;
33
34
/* parser.h */
35
typedef struct _xmlParserInput xmlParserInput;
36
typedef xmlParserInput *xmlParserInputPtr;
37
38
typedef struct _xmlParserCtxt xmlParserCtxt;
39
typedef xmlParserCtxt *xmlParserCtxtPtr;
40
41
typedef struct _xmlSAXLocator xmlSAXLocator;
42
typedef xmlSAXLocator *xmlSAXLocatorPtr;
43
44
typedef struct _xmlSAXHandler xmlSAXHandler;
45
typedef xmlSAXHandler *xmlSAXHandlerPtr;
46
47
/* entities.h */
48
typedef struct _xmlEntity xmlEntity;
49
typedef xmlEntity *xmlEntityPtr;
50
51
/**
52
* BASE_BUFFER_SIZE:
53
*
54
* default buffer size 4000.
55
*/
56
#define BASE_BUFFER_SIZE 4096
57
58
/**
59
* LIBXML_NAMESPACE_DICT:
60
*
61
* Defines experimental behaviour:
62
* 1) xmlNs gets an additional field @context (a xmlDoc)
63
* 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc.
64
*/
65
/* #define LIBXML_NAMESPACE_DICT */
66
67
/**
68
* xmlBufferAllocationScheme:
69
*
70
* A buffer allocation scheme can be defined to either match exactly the
71
* need or double it's allocated size each time it is found too small.
72
*/
73
74
typedef enum {
75
XML_BUFFER_ALLOC_DOUBLEIT, /* double each time one need to grow */
76
XML_BUFFER_ALLOC_EXACT, /* grow only to the minimal size */
77
XML_BUFFER_ALLOC_IMMUTABLE, /* immutable buffer */
78
XML_BUFFER_ALLOC_IO, /* special allocation scheme used for I/O */
79
XML_BUFFER_ALLOC_HYBRID, /* exact up to a threshold, and doubleit thereafter */
80
XML_BUFFER_ALLOC_BOUNDED /* limit the upper size of the buffer */
81
} xmlBufferAllocationScheme;
82
83
/**
84
* xmlBuffer:
85
*
86
* A buffer structure, this old construct is limited to 2GB and
87
* is being deprecated, use API with xmlBuf instead
88
*/
89
typedef struct _xmlBuffer xmlBuffer;
90
typedef xmlBuffer *xmlBufferPtr;
91
struct _xmlBuffer {
92
xmlChar *content; /* The buffer content UTF8 */
93
unsigned int use; /* The buffer size used */
94
unsigned int size; /* The buffer size */
95
xmlBufferAllocationScheme alloc; /* The realloc method */
96
xmlChar *contentIO; /* in IO mode we may have a different base */
97
};
98
99
/**
100
* xmlBuf:
101
*
102
* A buffer structure, new one, the actual structure internals are not public
103
*/
104
105
typedef struct _xmlBuf xmlBuf;
106
107
/**
108
* xmlBufPtr:
109
*
110
* A pointer to a buffer structure, the actual structure internals are not
111
* public
112
*/
113
114
typedef xmlBuf *xmlBufPtr;
115
116
/*
117
* A few public routines for xmlBuf. As those are expected to be used
118
* mostly internally the bulk of the routines are internal in buf.h
119
*/
120
XMLPUBFUN xmlChar* XMLCALL xmlBufContent (const xmlBuf* buf);
121
XMLPUBFUN xmlChar* XMLCALL xmlBufEnd (xmlBufPtr buf);
122
XMLPUBFUN size_t XMLCALL xmlBufUse (const xmlBufPtr buf);
123
XMLPUBFUN size_t XMLCALL xmlBufShrink (xmlBufPtr buf, size_t len);
124
125
/*
126
* LIBXML2_NEW_BUFFER:
127
*
128
* Macro used to express that the API use the new buffers for
129
* xmlParserInputBuffer and xmlOutputBuffer. The change was
130
* introduced in 2.9.0.
131
*/
132
#define LIBXML2_NEW_BUFFER
133
134
/**
135
* XML_XML_NAMESPACE:
136
*
137
* This is the namespace for the special xml: prefix predefined in the
138
* XML Namespace specification.
139
*/
140
#define XML_XML_NAMESPACE \
141
(const xmlChar *) "http://www.w3.org/XML/1998/namespace"
142
143
/**
144
* XML_XML_ID:
145
*
146
* This is the name for the special xml:id attribute
147
*/
148
#define XML_XML_ID (const xmlChar *) "xml:id"
149
150
/*
151
* The different element types carried by an XML tree.
152
*
153
* NOTE: This is synchronized with DOM Level1 values
154
* See http://www.w3.org/TR/REC-DOM-Level-1/
155
*
156
* Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
157
* be deprecated to use an XML_DTD_NODE.
158
*/
159
typedef enum {
160
XML_ELEMENT_NODE= 1,
161
XML_ATTRIBUTE_NODE= 2,
162
XML_TEXT_NODE= 3,
163
XML_CDATA_SECTION_NODE= 4,
164
XML_ENTITY_REF_NODE= 5,
165
XML_ENTITY_NODE= 6,
166
XML_PI_NODE= 7,
167
XML_COMMENT_NODE= 8,
168
XML_DOCUMENT_NODE= 9,
169
XML_DOCUMENT_TYPE_NODE= 10,
170
XML_DOCUMENT_FRAG_NODE= 11,
171
XML_NOTATION_NODE= 12,
172
XML_HTML_DOCUMENT_NODE= 13,
173
XML_DTD_NODE= 14,
174
XML_ELEMENT_DECL= 15,
175
XML_ATTRIBUTE_DECL= 16,
176
XML_ENTITY_DECL= 17,
177
XML_NAMESPACE_DECL= 18,
178
XML_XINCLUDE_START= 19,
179
XML_XINCLUDE_END= 20
180
#ifdef LIBXML_DOCB_ENABLED
181
,XML_DOCB_DOCUMENT_NODE= 21
182
#endif
183
} xmlElementType;
184
185
186
/**
187
* xmlNotation:
188
*
189
* A DTD Notation definition.
190
*/
191
192
typedef struct _xmlNotation xmlNotation;
193
typedef xmlNotation *xmlNotationPtr;
194
struct _xmlNotation {
195
const xmlChar *name; /* Notation name */
196
const xmlChar *PublicID; /* Public identifier, if any */
197
const xmlChar *SystemID; /* System identifier, if any */
198
};
199
200
/**
201
* xmlAttributeType:
202
*
203
* A DTD Attribute type definition.
204
*/
205
206
typedef enum {
207
XML_ATTRIBUTE_CDATA = 1,
208
XML_ATTRIBUTE_ID,
209
XML_ATTRIBUTE_IDREF ,
210
XML_ATTRIBUTE_IDREFS,
211
XML_ATTRIBUTE_ENTITY,
212
XML_ATTRIBUTE_ENTITIES,
213
XML_ATTRIBUTE_NMTOKEN,
214
XML_ATTRIBUTE_NMTOKENS,
215
XML_ATTRIBUTE_ENUMERATION,
216
XML_ATTRIBUTE_NOTATION
217
} xmlAttributeType;
218
219
/**
220
* xmlAttributeDefault:
221
*
222
* A DTD Attribute default definition.
223
*/
224
225
typedef enum {
226
XML_ATTRIBUTE_NONE = 1,
227
XML_ATTRIBUTE_REQUIRED,
228
XML_ATTRIBUTE_IMPLIED,
229
XML_ATTRIBUTE_FIXED
230
} xmlAttributeDefault;
231
232
/**
233
* xmlEnumeration:
234
*
235
* List structure used when there is an enumeration in DTDs.
236
*/
237
238
typedef struct _xmlEnumeration xmlEnumeration;
239
typedef xmlEnumeration *xmlEnumerationPtr;
240
struct _xmlEnumeration {
241
struct _xmlEnumeration *next; /* next one */
242
const xmlChar *name; /* Enumeration name */
243
};
244
245
/**
246
* xmlAttribute:
247
*
248
* An Attribute declaration in a DTD.
249
*/
250
251
typedef struct _xmlAttribute xmlAttribute;
252
typedef xmlAttribute *xmlAttributePtr;
253
struct _xmlAttribute {
254
void *_private; /* application data */
255
xmlElementType type; /* XML_ATTRIBUTE_DECL, must be second ! */
256
const xmlChar *name; /* Attribute name */
257
struct _xmlNode *children; /* NULL */
258
struct _xmlNode *last; /* NULL */
259
struct _xmlDtd *parent; /* -> DTD */
260
struct _xmlNode *next; /* next sibling link */
261
struct _xmlNode *prev; /* previous sibling link */
262
struct _xmlDoc *doc; /* the containing document */
263
264
struct _xmlAttribute *nexth; /* next in hash table */
265
xmlAttributeType atype; /* The attribute type */
266
xmlAttributeDefault def; /* the default */
267
const xmlChar *defaultValue; /* or the default value */
268
xmlEnumerationPtr tree; /* or the enumeration tree if any */
269
const xmlChar *prefix; /* the namespace prefix if any */
270
const xmlChar *elem; /* Element holding the attribute */
271
};
272
273
/**
274
* xmlElementContentType:
275
*
276
* Possible definitions of element content types.
277
*/
278
typedef enum {
279
XML_ELEMENT_CONTENT_PCDATA = 1,
280
XML_ELEMENT_CONTENT_ELEMENT,
281
XML_ELEMENT_CONTENT_SEQ,
282
XML_ELEMENT_CONTENT_OR
283
} xmlElementContentType;
284
285
/**
286
* xmlElementContentOccur:
287
*
288
* Possible definitions of element content occurrences.
289
*/
290
typedef enum {
291
XML_ELEMENT_CONTENT_ONCE = 1,
292
XML_ELEMENT_CONTENT_OPT,
293
XML_ELEMENT_CONTENT_MULT,
294
XML_ELEMENT_CONTENT_PLUS
295
} xmlElementContentOccur;
296
297
/**
298
* xmlElementContent:
299
*
300
* An XML Element content as stored after parsing an element definition
301
* in a DTD.
302
*/
303
304
typedef struct _xmlElementContent xmlElementContent;
305
typedef xmlElementContent *xmlElementContentPtr;
306
struct _xmlElementContent {
307
xmlElementContentType type; /* PCDATA, ELEMENT, SEQ or OR */
308
xmlElementContentOccur ocur; /* ONCE, OPT, MULT or PLUS */
309
const xmlChar *name; /* Element name */
310
struct _xmlElementContent *c1; /* first child */
311
struct _xmlElementContent *c2; /* second child */
312
struct _xmlElementContent *parent; /* parent */
313
const xmlChar *prefix; /* Namespace prefix */
314
};
315
316
/**
317
* xmlElementTypeVal:
318
*
319
* The different possibilities for an element content type.
320
*/
321
322
typedef enum {
323
XML_ELEMENT_TYPE_UNDEFINED = 0,
324
XML_ELEMENT_TYPE_EMPTY = 1,
325
XML_ELEMENT_TYPE_ANY,
326
XML_ELEMENT_TYPE_MIXED,
327
XML_ELEMENT_TYPE_ELEMENT
328
} xmlElementTypeVal;
329
330
#ifdef __cplusplus
331
}
332
#endif
333
#include <libxml/xmlregexp.h>
334
#ifdef __cplusplus
335
extern "C" {
336
#endif
337
338
/**
339
* xmlElement:
340
*
341
* An XML Element declaration from a DTD.
342
*/
343
344
typedef struct _xmlElement xmlElement;
345
typedef xmlElement *xmlElementPtr;
346
struct _xmlElement {
347
void *_private; /* application data */
348
xmlElementType type; /* XML_ELEMENT_DECL, must be second ! */
349
const xmlChar *name; /* Element name */
350
struct _xmlNode *children; /* NULL */
351
struct _xmlNode *last; /* NULL */
352
struct _xmlDtd *parent; /* -> DTD */
353
struct _xmlNode *next; /* next sibling link */
354
struct _xmlNode *prev; /* previous sibling link */
355
struct _xmlDoc *doc; /* the containing document */
356
357
xmlElementTypeVal etype; /* The type */
358
xmlElementContentPtr content; /* the allowed element content */
359
xmlAttributePtr attributes; /* List of the declared attributes */
360
const xmlChar *prefix; /* the namespace prefix if any */
361
#ifdef LIBXML_REGEXP_ENABLED
362
xmlRegexpPtr contModel; /* the validating regexp */
363
#else
364
void *contModel;
365
#endif
366
};
367
368
369
/**
370
* XML_LOCAL_NAMESPACE:
371
*
372
* A namespace declaration node.
373
*/
374
#define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
375
typedef xmlElementType xmlNsType;
376
377
/**
378
* xmlNs:
379
*
380
* An XML namespace.
381
* Note that prefix == NULL is valid, it defines the default namespace
382
* within the subtree (until overridden).
383
*
384
* xmlNsType is unified with xmlElementType.
385
*/
386
387
typedef struct _xmlNs xmlNs;
388
typedef xmlNs *xmlNsPtr;
389
struct _xmlNs {
390
struct _xmlNs *next; /* next Ns link for this node */
391
xmlNsType type; /* global or local */
392
const xmlChar *href; /* URL for the namespace */
393
const xmlChar *prefix; /* prefix for the namespace */
394
void *_private; /* application data */
395
struct _xmlDoc *context; /* normally an xmlDoc */
396
};
397
398
/**
399
* xmlDtd:
400
*
401
* An XML DTD, as defined by <!DOCTYPE ... There is actually one for
402
* the internal subset and for the external subset.
403
*/
404
typedef struct _xmlDtd xmlDtd;
405
typedef xmlDtd *xmlDtdPtr;
406
struct _xmlDtd {
407
void *_private; /* application data */
408
xmlElementType type; /* XML_DTD_NODE, must be second ! */
409
const xmlChar *name; /* Name of the DTD */
410
struct _xmlNode *children; /* the value of the property link */
411
struct _xmlNode *last; /* last child link */
412
struct _xmlDoc *parent; /* child->parent link */
413
struct _xmlNode *next; /* next sibling link */
414
struct _xmlNode *prev; /* previous sibling link */
415
struct _xmlDoc *doc; /* the containing document */
416
417
/* End of common part */
418
void *notations; /* Hash table for notations if any */
419
void *elements; /* Hash table for elements if any */
420
void *attributes; /* Hash table for attributes if any */
421
void *entities; /* Hash table for entities if any */
422
const xmlChar *ExternalID; /* External identifier for PUBLIC DTD */
423
const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC DTD */
424
void *pentities; /* Hash table for param entities if any */
425
};
426
427
/**
428
* xmlAttr:
429
*
430
* An attribute on an XML node.
431
*/
432
typedef struct _xmlAttr xmlAttr;
433
typedef xmlAttr *xmlAttrPtr;
434
struct _xmlAttr {
435
void *_private; /* application data */
436
xmlElementType type; /* XML_ATTRIBUTE_NODE, must be second ! */
437
const xmlChar *name; /* the name of the property */
438
struct _xmlNode *children; /* the value of the property */
439
struct _xmlNode *last; /* NULL */
440
struct _xmlNode *parent; /* child->parent link */
441
struct _xmlAttr *next; /* next sibling link */
442
struct _xmlAttr *prev; /* previous sibling link */
443
struct _xmlDoc *doc; /* the containing document */
444
xmlNs *ns; /* pointer to the associated namespace */
445
xmlAttributeType atype; /* the attribute type if validating */
446
void *psvi; /* for type/PSVI informations */
447
};
448
449
/**
450
* xmlID:
451
*
452
* An XML ID instance.
453
*/
454
455
typedef struct _xmlID xmlID;
456
typedef xmlID *xmlIDPtr;
457
struct _xmlID {
458
struct _xmlID *next; /* next ID */
459
const xmlChar *value; /* The ID name */
460
xmlAttrPtr attr; /* The attribute holding it */
461
const xmlChar *name; /* The attribute if attr is not available */
462
int lineno; /* The line number if attr is not available */
463
struct _xmlDoc *doc; /* The document holding the ID */
464
};
465
466
/**
467
* xmlRef:
468
*
469
* An XML IDREF instance.
470
*/
471
472
typedef struct _xmlRef xmlRef;
473
typedef xmlRef *xmlRefPtr;
474
struct _xmlRef {
475
struct _xmlRef *next; /* next Ref */
476
const xmlChar *value; /* The Ref name */
477
xmlAttrPtr attr; /* The attribute holding it */
478
const xmlChar *name; /* The attribute if attr is not available */
479
int lineno; /* The line number if attr is not available */
480
};
481
482
/**
483
* xmlNode:
484
*
485
* A node in an XML tree.
486
*/
487
typedef struct _xmlNode xmlNode;
488
typedef xmlNode *xmlNodePtr;
489
struct _xmlNode {
490
void *_private; /* application data */
491
xmlElementType type; /* type number, must be second ! */
492
const xmlChar *name; /* the name of the node, or the entity */
493
struct _xmlNode *children; /* parent->childs link */
494
struct _xmlNode *last; /* last child link */
495
struct _xmlNode *parent; /* child->parent link */
496
struct _xmlNode *next; /* next sibling link */
497
struct _xmlNode *prev; /* previous sibling link */
498
struct _xmlDoc *doc; /* the containing document */
499
500
/* End of common part */
501
xmlNs *ns; /* pointer to the associated namespace */
502
xmlChar *content; /* the content */
503
struct _xmlAttr *properties;/* properties list */
504
xmlNs *nsDef; /* namespace definitions on this node */
505
void *psvi; /* for type/PSVI informations */
506
unsigned short line; /* line number */
507
unsigned short extra; /* extra data for XPath/XSLT */
508
};
509
510
/**
511
* XML_GET_CONTENT:
512
*
513
* Macro to extract the content pointer of a node.
514
*/
515
#define XML_GET_CONTENT(n) \
516
((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)
517
518
/**
519
* XML_GET_LINE:
520
*
521
* Macro to extract the line number of an element node.
522
*/
523
#define XML_GET_LINE(n) \
524
(xmlGetLineNo(n))
525
526
/**
527
* xmlDocProperty
528
*
529
* Set of properties of the document as found by the parser
530
* Some of them are linked to similary named xmlParserOption
531
*/
532
typedef enum {
533
XML_DOC_WELLFORMED = 1<<0, /* document is XML well formed */
534
XML_DOC_NSVALID = 1<<1, /* document is Namespace valid */
535
XML_DOC_OLD10 = 1<<2, /* parsed with old XML-1.0 parser */
536
XML_DOC_DTDVALID = 1<<3, /* DTD validation was successful */
537
XML_DOC_XINCLUDE = 1<<4, /* XInclude substitution was done */
538
XML_DOC_USERBUILT = 1<<5, /* Document was built using the API
539
and not by parsing an instance */
540
XML_DOC_INTERNAL = 1<<6, /* built for internal processing */
541
XML_DOC_HTML = 1<<7 /* parsed or built HTML document */
542
} xmlDocProperties;
543
544
/**
545
* xmlDoc:
546
*
547
* An XML document.
548
*/
549
typedef struct _xmlDoc xmlDoc;
550
typedef xmlDoc *xmlDocPtr;
551
struct _xmlDoc {
552
void *_private; /* application data */
553
xmlElementType type; /* XML_DOCUMENT_NODE, must be second ! */
554
char *name; /* name/filename/URI of the document */
555
struct _xmlNode *children; /* the document tree */
556
struct _xmlNode *last; /* last child link */
557
struct _xmlNode *parent; /* child->parent link */
558
struct _xmlNode *next; /* next sibling link */
559
struct _xmlNode *prev; /* previous sibling link */
560
struct _xmlDoc *doc; /* autoreference to itself */
561
562
/* End of common part */
563
int compression;/* level of zlib compression */
564
int standalone; /* standalone document (no external refs)
565
1 if standalone="yes"
566
0 if standalone="no"
567
-1 if there is no XML declaration
568
-2 if there is an XML declaration, but no
569
standalone attribute was specified */
570
struct _xmlDtd *intSubset; /* the document internal subset */
571
struct _xmlDtd *extSubset; /* the document external subset */
572
struct _xmlNs *oldNs; /* Global namespace, the old way */
573
const xmlChar *version; /* the XML version string */
574
const xmlChar *encoding; /* external initial encoding, if any */
575
void *ids; /* Hash table for ID attributes if any */
576
void *refs; /* Hash table for IDREFs attributes if any */
577
const xmlChar *URL; /* The URI for that document */
578
int charset; /* encoding of the in-memory content
579
actually an xmlCharEncoding */
580
struct _xmlDict *dict; /* dict used to allocate names or NULL */
581
void *psvi; /* for type/PSVI informations */
582
int parseFlags; /* set of xmlParserOption used to parse the
583
document */
584
int properties; /* set of xmlDocProperties for this document
585
set at the end of parsing */
586
};
587
588
589
typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
590
typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
591
592
/**
593
* xmlDOMWrapAcquireNsFunction:
594
* @ctxt: a DOM wrapper context
595
* @node: the context node (element or attribute)
596
* @nsName: the requested namespace name
597
* @nsPrefix: the requested namespace prefix
598
*
599
* A function called to acquire namespaces (xmlNs) from the wrapper.
600
*
601
* Returns an xmlNsPtr or NULL in case of an error.
602
*/
603
typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt,
604
xmlNodePtr node,
605
const xmlChar *nsName,
606
const xmlChar *nsPrefix);
607
608
/**
609
* xmlDOMWrapCtxt:
610
*
611
* Context for DOM wrapper-operations.
612
*/
613
struct _xmlDOMWrapCtxt {
614
void * _private;
615
/*
616
* The type of this context, just in case we need specialized
617
* contexts in the future.
618
*/
619
int type;
620
/*
621
* Internal namespace map used for various operations.
622
*/
623
void * namespaceMap;
624
/*
625
* Use this one to acquire an xmlNsPtr intended for node->ns.
626
* (Note that this is not intended for elem->nsDef).
627
*/
628
xmlDOMWrapAcquireNsFunction getNsForNodeFunc;
629
};
630
631
/**
632
* xmlChildrenNode:
633
*
634
* Macro for compatibility naming layer with libxml1. Maps
635
* to "children."
636
*/
637
#ifndef xmlChildrenNode
638
#define xmlChildrenNode children
639
#endif
640
641
/**
642
* xmlRootNode:
643
*
644
* Macro for compatibility naming layer with libxml1. Maps
645
* to "children".
646
*/
647
#ifndef xmlRootNode
648
#define xmlRootNode children
649
#endif
650
651
/*
652
* Variables.
653
*/
654
655
/*
656
* Some helper functions
657
*/
658
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \
659
defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || \
660
defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || \
661
defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || \
662
defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)
663
XMLPUBFUN int XMLCALL
664
xmlValidateNCName (const xmlChar *value,
665
int space);
666
#endif
667
668
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
669
XMLPUBFUN int XMLCALL
670
xmlValidateQName (const xmlChar *value,
671
int space);
672
XMLPUBFUN int XMLCALL
673
xmlValidateName (const xmlChar *value,
674
int space);
675
XMLPUBFUN int XMLCALL
676
xmlValidateNMToken (const xmlChar *value,
677
int space);
678
#endif
679
680
XMLPUBFUN xmlChar * XMLCALL
681
xmlBuildQName (const xmlChar *ncname,
682
const xmlChar *prefix,
683
xmlChar *memory,
684
int len);
685
XMLPUBFUN xmlChar * XMLCALL
686
xmlSplitQName2 (const xmlChar *name,
687
xmlChar **prefix);
688
XMLPUBFUN const xmlChar * XMLCALL
689
xmlSplitQName3 (const xmlChar *name,
690
int *len);
691
692
/*
693
* Handling Buffers, the old ones see @xmlBuf for the new ones.
694
*/
695
696
XMLPUBFUN void XMLCALL
697
xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
698
XMLPUBFUN xmlBufferAllocationScheme XMLCALL
699
xmlGetBufferAllocationScheme(void);
700
701
XMLPUBFUN xmlBufferPtr XMLCALL
702
xmlBufferCreate (void);
703
XMLPUBFUN xmlBufferPtr XMLCALL
704
xmlBufferCreateSize (size_t size);
705
XMLPUBFUN xmlBufferPtr XMLCALL
706
xmlBufferCreateStatic (void *mem,
707
size_t size);
708
XMLPUBFUN int XMLCALL
709
xmlBufferResize (xmlBufferPtr buf,
710
unsigned int size);
711
XMLPUBFUN void XMLCALL
712
xmlBufferFree (xmlBufferPtr buf);
713
XMLPUBFUN int XMLCALL
714
xmlBufferDump (FILE *file,
715
xmlBufferPtr buf);
716
XMLPUBFUN int XMLCALL
717
xmlBufferAdd (xmlBufferPtr buf,
718
const xmlChar *str,
719
int len);
720
XMLPUBFUN int XMLCALL
721
xmlBufferAddHead (xmlBufferPtr buf,
722
const xmlChar *str,
723
int len);
724
XMLPUBFUN int XMLCALL
725
xmlBufferCat (xmlBufferPtr buf,
726
const xmlChar *str);
727
XMLPUBFUN int XMLCALL
728
xmlBufferCCat (xmlBufferPtr buf,
729
const char *str);
730
XMLPUBFUN int XMLCALL
731
xmlBufferShrink (xmlBufferPtr buf,
732
unsigned int len);
733
XMLPUBFUN int XMLCALL
734
xmlBufferGrow (xmlBufferPtr buf,
735
unsigned int len);
736
XMLPUBFUN void XMLCALL
737
xmlBufferEmpty (xmlBufferPtr buf);
738
XMLPUBFUN const xmlChar* XMLCALL
739
xmlBufferContent (const xmlBuffer *buf);
740
XMLPUBFUN xmlChar* XMLCALL
741
xmlBufferDetach (xmlBufferPtr buf);
742
XMLPUBFUN void XMLCALL
743
xmlBufferSetAllocationScheme(xmlBufferPtr buf,
744
xmlBufferAllocationScheme scheme);
745
XMLPUBFUN int XMLCALL
746
xmlBufferLength (const xmlBuffer *buf);
747
748
/*
749
* Creating/freeing new structures.
750
*/
751
XMLPUBFUN xmlDtdPtr XMLCALL
752
xmlCreateIntSubset (xmlDocPtr doc,
753
const xmlChar *name,
754
const xmlChar *ExternalID,
755
const xmlChar *SystemID);
756
XMLPUBFUN xmlDtdPtr XMLCALL
757
xmlNewDtd (xmlDocPtr doc,
758
const xmlChar *name,
759
const xmlChar *ExternalID,
760
const xmlChar *SystemID);
761
XMLPUBFUN xmlDtdPtr XMLCALL
762
xmlGetIntSubset (const xmlDoc *doc);
763
XMLPUBFUN void XMLCALL
764
xmlFreeDtd (xmlDtdPtr cur);
765
#ifdef LIBXML_LEGACY_ENABLED
766
XMLPUBFUN xmlNsPtr XMLCALL
767
xmlNewGlobalNs (xmlDocPtr doc,
768
const xmlChar *href,
769
const xmlChar *prefix);
770
#endif /* LIBXML_LEGACY_ENABLED */
771
XMLPUBFUN xmlNsPtr XMLCALL
772
xmlNewNs (xmlNodePtr node,
773
const xmlChar *href,
774
const xmlChar *prefix);
775
XMLPUBFUN void XMLCALL
776
xmlFreeNs (xmlNsPtr cur);
777
XMLPUBFUN void XMLCALL
778
xmlFreeNsList (xmlNsPtr cur);
779
XMLPUBFUN xmlDocPtr XMLCALL
780
xmlNewDoc (const xmlChar *version);
781
XMLPUBFUN void XMLCALL
782
xmlFreeDoc (xmlDocPtr cur);
783
XMLPUBFUN xmlAttrPtr XMLCALL
784
xmlNewDocProp (xmlDocPtr doc,
785
const xmlChar *name,
786
const xmlChar *value);
787
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
788
defined(LIBXML_SCHEMAS_ENABLED)
789
XMLPUBFUN xmlAttrPtr XMLCALL
790
xmlNewProp (xmlNodePtr node,
791
const xmlChar *name,
792
const xmlChar *value);
793
#endif
794
XMLPUBFUN xmlAttrPtr XMLCALL
795
xmlNewNsProp (xmlNodePtr node,
796
xmlNsPtr ns,
797
const xmlChar *name,
798
const xmlChar *value);
799
XMLPUBFUN xmlAttrPtr XMLCALL
800
xmlNewNsPropEatName (xmlNodePtr node,
801
xmlNsPtr ns,
802
xmlChar *name,
803
const xmlChar *value);
804
XMLPUBFUN void XMLCALL
805
xmlFreePropList (xmlAttrPtr cur);
806
XMLPUBFUN void XMLCALL
807
xmlFreeProp (xmlAttrPtr cur);
808
XMLPUBFUN xmlAttrPtr XMLCALL
809
xmlCopyProp (xmlNodePtr target,
810
xmlAttrPtr cur);
811
XMLPUBFUN xmlAttrPtr XMLCALL
812
xmlCopyPropList (xmlNodePtr target,
813
xmlAttrPtr cur);
814
#ifdef LIBXML_TREE_ENABLED
815
XMLPUBFUN xmlDtdPtr XMLCALL
816
xmlCopyDtd (xmlDtdPtr dtd);
817
#endif /* LIBXML_TREE_ENABLED */
818
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
819
XMLPUBFUN xmlDocPtr XMLCALL
820
xmlCopyDoc (xmlDocPtr doc,
821
int recursive);
822
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
823
/*
824
* Creating new nodes.
825
*/
826
XMLPUBFUN xmlNodePtr XMLCALL
827
xmlNewDocNode (xmlDocPtr doc,
828
xmlNsPtr ns,
829
const xmlChar *name,
830
const xmlChar *content);
831
XMLPUBFUN xmlNodePtr XMLCALL
832
xmlNewDocNodeEatName (xmlDocPtr doc,
833
xmlNsPtr ns,
834
xmlChar *name,
835
const xmlChar *content);
836
XMLPUBFUN xmlNodePtr XMLCALL
837
xmlNewNode (xmlNsPtr ns,
838
const xmlChar *name);
839
XMLPUBFUN xmlNodePtr XMLCALL
840
xmlNewNodeEatName (xmlNsPtr ns,
841
xmlChar *name);
842
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
843
XMLPUBFUN xmlNodePtr XMLCALL
844
xmlNewChild (xmlNodePtr parent,
845
xmlNsPtr ns,
846
const xmlChar *name,
847
const xmlChar *content);
848
#endif
849
XMLPUBFUN xmlNodePtr XMLCALL
850
xmlNewDocText (const xmlDoc *doc,
851
const xmlChar *content);
852
XMLPUBFUN xmlNodePtr XMLCALL
853
xmlNewText (const xmlChar *content);
854
XMLPUBFUN xmlNodePtr XMLCALL
855
xmlNewDocPI (xmlDocPtr doc,
856
const xmlChar *name,
857
const xmlChar *content);
858
XMLPUBFUN xmlNodePtr XMLCALL
859
xmlNewPI (const xmlChar *name,
860
const xmlChar *content);
861
XMLPUBFUN xmlNodePtr XMLCALL
862
xmlNewDocTextLen (xmlDocPtr doc,
863
const xmlChar *content,
864
int len);
865
XMLPUBFUN xmlNodePtr XMLCALL
866
xmlNewTextLen (const xmlChar *content,
867
int len);
868
XMLPUBFUN xmlNodePtr XMLCALL
869
xmlNewDocComment (xmlDocPtr doc,
870
const xmlChar *content);
871
XMLPUBFUN xmlNodePtr XMLCALL
872
xmlNewComment (const xmlChar *content);
873
XMLPUBFUN xmlNodePtr XMLCALL
874
xmlNewCDataBlock (xmlDocPtr doc,
875
const xmlChar *content,
876
int len);
877
XMLPUBFUN xmlNodePtr XMLCALL
878
xmlNewCharRef (xmlDocPtr doc,
879
const xmlChar *name);
880
XMLPUBFUN xmlNodePtr XMLCALL
881
xmlNewReference (const xmlDoc *doc,
882
const xmlChar *name);
883
XMLPUBFUN xmlNodePtr XMLCALL
884
xmlCopyNode (xmlNodePtr node,
885
int recursive);
886
XMLPUBFUN xmlNodePtr XMLCALL
887
xmlDocCopyNode (xmlNodePtr node,
888
xmlDocPtr doc,
889
int recursive);
890
XMLPUBFUN xmlNodePtr XMLCALL
891
xmlDocCopyNodeList (xmlDocPtr doc,
892
xmlNodePtr node);
893
XMLPUBFUN xmlNodePtr XMLCALL
894
xmlCopyNodeList (xmlNodePtr node);
895
#ifdef LIBXML_TREE_ENABLED
896
XMLPUBFUN xmlNodePtr XMLCALL
897
xmlNewTextChild (xmlNodePtr parent,
898
xmlNsPtr ns,
899
const xmlChar *name,
900
const xmlChar *content);
901
XMLPUBFUN xmlNodePtr XMLCALL
902
xmlNewDocRawNode (xmlDocPtr doc,
903
xmlNsPtr ns,
904
const xmlChar *name,
905
const xmlChar *content);
906
XMLPUBFUN xmlNodePtr XMLCALL
907
xmlNewDocFragment (xmlDocPtr doc);
908
#endif /* LIBXML_TREE_ENABLED */
909
910
/*
911
* Navigating.
912
*/
913
XMLPUBFUN long XMLCALL
914
xmlGetLineNo (const xmlNode *node);
915
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
916
XMLPUBFUN xmlChar * XMLCALL
917
xmlGetNodePath (const xmlNode *node);
918
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */
919
XMLPUBFUN xmlNodePtr XMLCALL
920
xmlDocGetRootElement (const xmlDoc *doc);
921
XMLPUBFUN xmlNodePtr XMLCALL
922
xmlGetLastChild (const xmlNode *parent);
923
XMLPUBFUN int XMLCALL
924
xmlNodeIsText (const xmlNode *node);
925
XMLPUBFUN int XMLCALL
926
xmlIsBlankNode (const xmlNode *node);
927
928
/*
929
* Changing the structure.
930
*/
931
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
932
XMLPUBFUN xmlNodePtr XMLCALL
933
xmlDocSetRootElement (xmlDocPtr doc,
934
xmlNodePtr root);
935
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
936
#ifdef LIBXML_TREE_ENABLED
937
XMLPUBFUN void XMLCALL
938
xmlNodeSetName (xmlNodePtr cur,
939
const xmlChar *name);
940
#endif /* LIBXML_TREE_ENABLED */
941
XMLPUBFUN xmlNodePtr XMLCALL
942
xmlAddChild (xmlNodePtr parent,
943
xmlNodePtr cur);
944
XMLPUBFUN xmlNodePtr XMLCALL
945
xmlAddChildList (xmlNodePtr parent,
946
xmlNodePtr cur);
947
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
948
XMLPUBFUN xmlNodePtr XMLCALL
949
xmlReplaceNode (xmlNodePtr old,
950
xmlNodePtr cur);
951
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
952
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
953
defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
954
XMLPUBFUN xmlNodePtr XMLCALL
955
xmlAddPrevSibling (xmlNodePtr cur,
956
xmlNodePtr elem);
957
#endif /* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED */
958
XMLPUBFUN xmlNodePtr XMLCALL
959
xmlAddSibling (xmlNodePtr cur,
960
xmlNodePtr elem);
961
XMLPUBFUN xmlNodePtr XMLCALL
962
xmlAddNextSibling (xmlNodePtr cur,
963
xmlNodePtr elem);
964
XMLPUBFUN void XMLCALL
965
xmlUnlinkNode (xmlNodePtr cur);
966
XMLPUBFUN xmlNodePtr XMLCALL
967
xmlTextMerge (xmlNodePtr first,
968
xmlNodePtr second);
969
XMLPUBFUN int XMLCALL
970
xmlTextConcat (xmlNodePtr node,
971
const xmlChar *content,
972
int len);
973
XMLPUBFUN void XMLCALL
974
xmlFreeNodeList (xmlNodePtr cur);
975
XMLPUBFUN void XMLCALL
976
xmlFreeNode (xmlNodePtr cur);
977
XMLPUBFUN void XMLCALL
978
xmlSetTreeDoc (xmlNodePtr tree,
979
xmlDocPtr doc);
980
XMLPUBFUN void XMLCALL
981
xmlSetListDoc (xmlNodePtr list,
982
xmlDocPtr doc);
983
/*
984
* Namespaces.
985
*/
986
XMLPUBFUN xmlNsPtr XMLCALL
987
xmlSearchNs (xmlDocPtr doc,
988
xmlNodePtr node,
989
const xmlChar *nameSpace);
990
XMLPUBFUN xmlNsPtr XMLCALL
991
xmlSearchNsByHref (xmlDocPtr doc,
992
xmlNodePtr node,
993
const xmlChar *href);
994
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \
995
defined(LIBXML_SCHEMAS_ENABLED)
996
XMLPUBFUN xmlNsPtr * XMLCALL
997
xmlGetNsList (const xmlDoc *doc,
998
const xmlNode *node);
999
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */
1000
1001
XMLPUBFUN void XMLCALL
1002
xmlSetNs (xmlNodePtr node,
1003
xmlNsPtr ns);
1004
XMLPUBFUN xmlNsPtr XMLCALL
1005
xmlCopyNamespace (xmlNsPtr cur);
1006
XMLPUBFUN xmlNsPtr XMLCALL
1007
xmlCopyNamespaceList (xmlNsPtr cur);
1008
1009
/*
1010
* Changing the content.
1011
*/
1012
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \
1013
defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
1014
XMLPUBFUN xmlAttrPtr XMLCALL
1015
xmlSetProp (xmlNodePtr node,
1016
const xmlChar *name,
1017
const xmlChar *value);
1018
XMLPUBFUN xmlAttrPtr XMLCALL
1019
xmlSetNsProp (xmlNodePtr node,
1020
xmlNsPtr ns,
1021
const xmlChar *name,
1022
const xmlChar *value);
1023
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \
1024
defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */
1025
XMLPUBFUN xmlChar * XMLCALL
1026
xmlGetNoNsProp (const xmlNode *node,
1027
const xmlChar *name);
1028
XMLPUBFUN xmlChar * XMLCALL
1029
xmlGetProp (const xmlNode *node,
1030
const xmlChar *name);
1031
XMLPUBFUN xmlAttrPtr XMLCALL
1032
xmlHasProp (const xmlNode *node,
1033
const xmlChar *name);
1034
XMLPUBFUN xmlAttrPtr XMLCALL
1035
xmlHasNsProp (const xmlNode *node,
1036
const xmlChar *name,
1037
const xmlChar *nameSpace);
1038
XMLPUBFUN xmlChar * XMLCALL
1039
xmlGetNsProp (const xmlNode *node,
1040
const xmlChar *name,
1041
const xmlChar *nameSpace);
1042
XMLPUBFUN xmlNodePtr XMLCALL
1043
xmlStringGetNodeList (const xmlDoc *doc,
1044
const xmlChar *value);
1045
XMLPUBFUN xmlNodePtr XMLCALL
1046
xmlStringLenGetNodeList (const xmlDoc *doc,
1047
const xmlChar *value,
1048
int len);
1049
XMLPUBFUN xmlChar * XMLCALL
1050
xmlNodeListGetString (xmlDocPtr doc,
1051
const xmlNode *list,
1052
int inLine);
1053
#ifdef LIBXML_TREE_ENABLED
1054
XMLPUBFUN xmlChar * XMLCALL
1055
xmlNodeListGetRawString (const xmlDoc *doc,
1056
const xmlNode *list,
1057
int inLine);
1058
#endif /* LIBXML_TREE_ENABLED */
1059
XMLPUBFUN void XMLCALL
1060
xmlNodeSetContent (xmlNodePtr cur,
1061
const xmlChar *content);
1062
#ifdef LIBXML_TREE_ENABLED
1063
XMLPUBFUN void XMLCALL
1064
xmlNodeSetContentLen (xmlNodePtr cur,
1065
const xmlChar *content,
1066
int len);
1067
#endif /* LIBXML_TREE_ENABLED */
1068
XMLPUBFUN void XMLCALL
1069
xmlNodeAddContent (xmlNodePtr cur,
1070
const xmlChar *content);
1071
XMLPUBFUN void XMLCALL
1072
xmlNodeAddContentLen (xmlNodePtr cur,
1073
const xmlChar *content,
1074
int len);
1075
XMLPUBFUN xmlChar * XMLCALL
1076
xmlNodeGetContent (const xmlNode *cur);
1077
1078
XMLPUBFUN int XMLCALL
1079
xmlNodeBufGetContent (xmlBufferPtr buffer,
1080
const xmlNode *cur);
1081
XMLPUBFUN int XMLCALL
1082
xmlBufGetNodeContent (xmlBufPtr buf,
1083
const xmlNode *cur);
1084
1085
XMLPUBFUN xmlChar * XMLCALL
1086
xmlNodeGetLang (const xmlNode *cur);
1087
XMLPUBFUN int XMLCALL
1088
xmlNodeGetSpacePreserve (const xmlNode *cur);
1089
#ifdef LIBXML_TREE_ENABLED
1090
XMLPUBFUN void XMLCALL
1091
xmlNodeSetLang (xmlNodePtr cur,
1092
const xmlChar *lang);
1093
XMLPUBFUN void XMLCALL
1094
xmlNodeSetSpacePreserve (xmlNodePtr cur,
1095
int val);
1096
#endif /* LIBXML_TREE_ENABLED */
1097
XMLPUBFUN xmlChar * XMLCALL
1098
xmlNodeGetBase (const xmlDoc *doc,
1099
const xmlNode *cur);
1100
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
1101
XMLPUBFUN void XMLCALL
1102
xmlNodeSetBase (xmlNodePtr cur,
1103
const xmlChar *uri);
1104
#endif
1105
1106
/*
1107
* Removing content.
1108
*/
1109
XMLPUBFUN int XMLCALL
1110
xmlRemoveProp (xmlAttrPtr cur);
1111
#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
1112
XMLPUBFUN int XMLCALL
1113
xmlUnsetNsProp (xmlNodePtr node,
1114
xmlNsPtr ns,
1115
const xmlChar *name);
1116
XMLPUBFUN int XMLCALL
1117
xmlUnsetProp (xmlNodePtr node,
1118
const xmlChar *name);
1119
#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
1120
1121
/*
1122
* Internal, don't use.
1123
*/
1124
XMLPUBFUN void XMLCALL
1125
xmlBufferWriteCHAR (xmlBufferPtr buf,
1126
const xmlChar *string);
1127
XMLPUBFUN void XMLCALL
1128
xmlBufferWriteChar (xmlBufferPtr buf,
1129
const char *string);
1130
XMLPUBFUN void XMLCALL
1131
xmlBufferWriteQuotedString(xmlBufferPtr buf,
1132
const xmlChar *string);
1133
1134
#ifdef LIBXML_OUTPUT_ENABLED
1135
XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
1136
xmlDocPtr doc,
1137
xmlAttrPtr attr,
1138
const xmlChar *string);
1139
#endif /* LIBXML_OUTPUT_ENABLED */
1140
1141
#ifdef LIBXML_TREE_ENABLED
1142
/*
1143
* Namespace handling.
1144
*/
1145
XMLPUBFUN int XMLCALL
1146
xmlReconciliateNs (xmlDocPtr doc,
1147
xmlNodePtr tree);
1148
#endif
1149
1150
#ifdef LIBXML_OUTPUT_ENABLED
1151
/*
1152
* Saving.
1153
*/
1154
XMLPUBFUN void XMLCALL
1155
xmlDocDumpFormatMemory (xmlDocPtr cur,
1156
xmlChar **mem,
1157
int *size,
1158
int format);
1159
XMLPUBFUN void XMLCALL
1160
xmlDocDumpMemory (xmlDocPtr cur,
1161
xmlChar **mem,
1162
int *size);
1163
XMLPUBFUN void XMLCALL
1164
xmlDocDumpMemoryEnc (xmlDocPtr out_doc,
1165
xmlChar **doc_txt_ptr,
1166
int * doc_txt_len,
1167
const char *txt_encoding);
1168
XMLPUBFUN void XMLCALL
1169
xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
1170
xmlChar **doc_txt_ptr,
1171
int * doc_txt_len,
1172
const char *txt_encoding,
1173
int format);
1174
XMLPUBFUN int XMLCALL
1175
xmlDocFormatDump (FILE *f,
1176
xmlDocPtr cur,
1177
int format);
1178
XMLPUBFUN int XMLCALL
1179
xmlDocDump (FILE *f,
1180
xmlDocPtr cur);
1181
XMLPUBFUN void XMLCALL
1182
xmlElemDump (FILE *f,
1183
xmlDocPtr doc,
1184
xmlNodePtr cur);
1185
XMLPUBFUN int XMLCALL
1186
xmlSaveFile (const char *filename,
1187
xmlDocPtr cur);
1188
XMLPUBFUN int XMLCALL
1189
xmlSaveFormatFile (const char *filename,
1190
xmlDocPtr cur,
1191
int format);
1192
XMLPUBFUN size_t XMLCALL
1193
xmlBufNodeDump (xmlBufPtr buf,
1194
xmlDocPtr doc,
1195
xmlNodePtr cur,
1196
int level,
1197
int format);
1198
XMLPUBFUN int XMLCALL
1199
xmlNodeDump (xmlBufferPtr buf,
1200
xmlDocPtr doc,
1201
xmlNodePtr cur,
1202
int level,
1203
int format);
1204
1205
XMLPUBFUN int XMLCALL
1206
xmlSaveFileTo (xmlOutputBufferPtr buf,
1207
xmlDocPtr cur,
1208
const char *encoding);
1209
XMLPUBFUN int XMLCALL
1210
xmlSaveFormatFileTo (xmlOutputBufferPtr buf,
1211
xmlDocPtr cur,
1212
const char *encoding,
1213
int format);
1214
XMLPUBFUN void XMLCALL
1215
xmlNodeDumpOutput (xmlOutputBufferPtr buf,
1216
xmlDocPtr doc,
1217
xmlNodePtr cur,
1218
int level,
1219
int format,
1220
const char *encoding);
1221
1222
XMLPUBFUN int XMLCALL
1223
xmlSaveFormatFileEnc (const char *filename,
1224
xmlDocPtr cur,
1225
const char *encoding,
1226
int format);
1227
1228
XMLPUBFUN int XMLCALL
1229
xmlSaveFileEnc (const char *filename,
1230
xmlDocPtr cur,
1231
const char *encoding);
1232
1233
#endif /* LIBXML_OUTPUT_ENABLED */
1234
/*
1235
* XHTML
1236
*/
1237
XMLPUBFUN int XMLCALL
1238
xmlIsXHTML (const xmlChar *systemID,
1239
const xmlChar *publicID);
1240
1241
/*
1242
* Compression.
1243
*/
1244
XMLPUBFUN int XMLCALL
1245
xmlGetDocCompressMode (const xmlDoc *doc);
1246
XMLPUBFUN void XMLCALL
1247
xmlSetDocCompressMode (xmlDocPtr doc,
1248
int mode);
1249
XMLPUBFUN int XMLCALL
1250
xmlGetCompressMode (void);
1251
XMLPUBFUN void XMLCALL
1252
xmlSetCompressMode (int mode);
1253
1254
/*
1255
* DOM-wrapper helper functions.
1256
*/
1257
XMLPUBFUN xmlDOMWrapCtxtPtr XMLCALL
1258
xmlDOMWrapNewCtxt (void);
1259
XMLPUBFUN void XMLCALL
1260
xmlDOMWrapFreeCtxt (xmlDOMWrapCtxtPtr ctxt);
1261
XMLPUBFUN int XMLCALL
1262
xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt,
1263
xmlNodePtr elem,
1264
int options);
1265
XMLPUBFUN int XMLCALL
1266
xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt,
1267
xmlDocPtr sourceDoc,
1268
xmlNodePtr node,
1269
xmlDocPtr destDoc,
1270
xmlNodePtr destParent,
1271
int options);
1272
XMLPUBFUN int XMLCALL
1273
xmlDOMWrapRemoveNode (xmlDOMWrapCtxtPtr ctxt,
1274
xmlDocPtr doc,
1275
xmlNodePtr node,
1276
int options);
1277
XMLPUBFUN int XMLCALL
1278
xmlDOMWrapCloneNode (xmlDOMWrapCtxtPtr ctxt,
1279
xmlDocPtr sourceDoc,
1280
xmlNodePtr node,
1281
xmlNodePtr *clonedNode,
1282
xmlDocPtr destDoc,
1283
xmlNodePtr destParent,
1284
int deep,
1285
int options);
1286
1287
#ifdef LIBXML_TREE_ENABLED
1288
/*
1289
* 5 interfaces from DOM ElementTraversal, but different in entities
1290
* traversal.
1291
*/
1292
XMLPUBFUN unsigned long XMLCALL
1293
xmlChildElementCount (xmlNodePtr parent);
1294
XMLPUBFUN xmlNodePtr XMLCALL
1295
xmlNextElementSibling (xmlNodePtr node);
1296
XMLPUBFUN xmlNodePtr XMLCALL
1297
xmlFirstElementChild (xmlNodePtr parent);
1298
XMLPUBFUN xmlNodePtr XMLCALL
1299
xmlLastElementChild (xmlNodePtr parent);
1300
XMLPUBFUN xmlNodePtr XMLCALL
1301
xmlPreviousElementSibling (xmlNodePtr node);
1302
#endif
1303
#ifdef __cplusplus
1304
}
1305
#endif
1306
#ifndef __XML_PARSER_H__
1307
#include <libxml/xmlmemory.h>
1308
#endif
1309
1310
#endif /* __XML_TREE_H__ */
1311
1312
1313