@helm2/poc_jenki_rce 0.0.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of @helm2/poc_jenki_rce might be problematic. Click here for more details.

Files changed (160) hide show
  1. package/LICENSE +19 -0
  2. package/Makefile +18 -0
  3. package/README.md +52 -0
  4. package/binding.gyp +81 -0
  5. package/index.d.ts +273 -0
  6. package/index.js +45 -0
  7. package/lib/bindings.js +1 -0
  8. package/lib/document.js +118 -0
  9. package/lib/element.js +82 -0
  10. package/lib/sax_parser.js +38 -0
  11. package/package.json +70 -0
  12. package/src/html_document.cc +7 -0
  13. package/src/html_document.h +18 -0
  14. package/src/libxmljs.cc +252 -0
  15. package/src/libxmljs.h +53 -0
  16. package/src/xml_attribute.cc +173 -0
  17. package/src/xml_attribute.h +40 -0
  18. package/src/xml_comment.cc +117 -0
  19. package/src/xml_comment.h +30 -0
  20. package/src/xml_document.cc +810 -0
  21. package/src/xml_document.h +67 -0
  22. package/src/xml_element.cc +565 -0
  23. package/src/xml_element.h +61 -0
  24. package/src/xml_namespace.cc +158 -0
  25. package/src/xml_namespace.h +39 -0
  26. package/src/xml_node.cc +761 -0
  27. package/src/xml_node.h +73 -0
  28. package/src/xml_pi.cc +161 -0
  29. package/src/xml_pi.h +34 -0
  30. package/src/xml_sax_parser.cc +424 -0
  31. package/src/xml_sax_parser.h +73 -0
  32. package/src/xml_syntax_error.cc +66 -0
  33. package/src/xml_syntax_error.h +25 -0
  34. package/src/xml_text.cc +320 -0
  35. package/src/xml_text.h +48 -0
  36. package/src/xml_textwriter.cc +315 -0
  37. package/src/xml_textwriter.h +62 -0
  38. package/src/xml_xpath_context.cc +70 -0
  39. package/src/xml_xpath_context.h +23 -0
  40. package/vendor/libxml/Copyright +23 -0
  41. package/vendor/libxml/DOCBparser.c +305 -0
  42. package/vendor/libxml/HTMLparser.c +7287 -0
  43. package/vendor/libxml/HTMLtree.c +1200 -0
  44. package/vendor/libxml/Makefile +2983 -0
  45. package/vendor/libxml/SAX.c +180 -0
  46. package/vendor/libxml/SAX2.c +3036 -0
  47. package/vendor/libxml/buf.c +1351 -0
  48. package/vendor/libxml/buf.h +72 -0
  49. package/vendor/libxml/c14n.c +2234 -0
  50. package/vendor/libxml/catalog.c +3828 -0
  51. package/vendor/libxml/chvalid.c +336 -0
  52. package/vendor/libxml/config.h +294 -0
  53. package/vendor/libxml/config.h.gch +0 -0
  54. package/vendor/libxml/debugXML.c +3423 -0
  55. package/vendor/libxml/dict.c +1298 -0
  56. package/vendor/libxml/elfgcchack.h +17818 -0
  57. package/vendor/libxml/enc.h +32 -0
  58. package/vendor/libxml/encoding.c +3975 -0
  59. package/vendor/libxml/entities.c +1163 -0
  60. package/vendor/libxml/error.c +998 -0
  61. package/vendor/libxml/globals.c +1126 -0
  62. package/vendor/libxml/hash.c +1146 -0
  63. package/vendor/libxml/include/libxml/DOCBparser.h +96 -0
  64. package/vendor/libxml/include/libxml/HTMLparser.h +306 -0
  65. package/vendor/libxml/include/libxml/HTMLtree.h +147 -0
  66. package/vendor/libxml/include/libxml/Makefile +725 -0
  67. package/vendor/libxml/include/libxml/Makefile.am +54 -0
  68. package/vendor/libxml/include/libxml/Makefile.in +725 -0
  69. package/vendor/libxml/include/libxml/SAX.h +173 -0
  70. package/vendor/libxml/include/libxml/SAX2.h +178 -0
  71. package/vendor/libxml/include/libxml/c14n.h +128 -0
  72. package/vendor/libxml/include/libxml/catalog.h +182 -0
  73. package/vendor/libxml/include/libxml/chvalid.h +230 -0
  74. package/vendor/libxml/include/libxml/debugXML.h +217 -0
  75. package/vendor/libxml/include/libxml/dict.h +79 -0
  76. package/vendor/libxml/include/libxml/encoding.h +245 -0
  77. package/vendor/libxml/include/libxml/entities.h +151 -0
  78. package/vendor/libxml/include/libxml/globals.h +508 -0
  79. package/vendor/libxml/include/libxml/hash.h +236 -0
  80. package/vendor/libxml/include/libxml/list.h +137 -0
  81. package/vendor/libxml/include/libxml/nanoftp.h +163 -0
  82. package/vendor/libxml/include/libxml/nanohttp.h +81 -0
  83. package/vendor/libxml/include/libxml/parser.h +1243 -0
  84. package/vendor/libxml/include/libxml/parserInternals.h +644 -0
  85. package/vendor/libxml/include/libxml/pattern.h +100 -0
  86. package/vendor/libxml/include/libxml/relaxng.h +217 -0
  87. package/vendor/libxml/include/libxml/schemasInternals.h +958 -0
  88. package/vendor/libxml/include/libxml/schematron.h +142 -0
  89. package/vendor/libxml/include/libxml/threads.h +89 -0
  90. package/vendor/libxml/include/libxml/tree.h +1311 -0
  91. package/vendor/libxml/include/libxml/uri.h +94 -0
  92. package/vendor/libxml/include/libxml/valid.h +458 -0
  93. package/vendor/libxml/include/libxml/xinclude.h +129 -0
  94. package/vendor/libxml/include/libxml/xlink.h +189 -0
  95. package/vendor/libxml/include/libxml/xmlIO.h +368 -0
  96. package/vendor/libxml/include/libxml/xmlautomata.h +146 -0
  97. package/vendor/libxml/include/libxml/xmlerror.h +945 -0
  98. package/vendor/libxml/include/libxml/xmlexports.h +77 -0
  99. package/vendor/libxml/include/libxml/xmlmemory.h +224 -0
  100. package/vendor/libxml/include/libxml/xmlmodule.h +57 -0
  101. package/vendor/libxml/include/libxml/xmlreader.h +428 -0
  102. package/vendor/libxml/include/libxml/xmlregexp.h +222 -0
  103. package/vendor/libxml/include/libxml/xmlsave.h +88 -0
  104. package/vendor/libxml/include/libxml/xmlschemas.h +246 -0
  105. package/vendor/libxml/include/libxml/xmlschemastypes.h +151 -0
  106. package/vendor/libxml/include/libxml/xmlstring.h +140 -0
  107. package/vendor/libxml/include/libxml/xmlunicode.h +202 -0
  108. package/vendor/libxml/include/libxml/xmlversion.h +484 -0
  109. package/vendor/libxml/include/libxml/xmlwin32version.h +239 -0
  110. package/vendor/libxml/include/libxml/xmlwriter.h +488 -0
  111. package/vendor/libxml/include/libxml/xpath.h +564 -0
  112. package/vendor/libxml/include/libxml/xpathInternals.h +632 -0
  113. package/vendor/libxml/include/libxml/xpointer.h +114 -0
  114. package/vendor/libxml/include/win32config.h +122 -0
  115. package/vendor/libxml/include/wsockcompat.h +54 -0
  116. package/vendor/libxml/legacy.c +1343 -0
  117. package/vendor/libxml/libxml.h +134 -0
  118. package/vendor/libxml/list.c +779 -0
  119. package/vendor/libxml/nanoftp.c +2118 -0
  120. package/vendor/libxml/nanohttp.c +1899 -0
  121. package/vendor/libxml/parser.c +15553 -0
  122. package/vendor/libxml/parserInternals.c +2164 -0
  123. package/vendor/libxml/pattern.c +2621 -0
  124. package/vendor/libxml/relaxng.c +11101 -0
  125. package/vendor/libxml/rngparser.c +1595 -0
  126. package/vendor/libxml/runsuite.c +1157 -0
  127. package/vendor/libxml/save.h +36 -0
  128. package/vendor/libxml/schematron.c +1787 -0
  129. package/vendor/libxml/threads.c +1049 -0
  130. package/vendor/libxml/timsort.h +601 -0
  131. package/vendor/libxml/tree.c +10183 -0
  132. package/vendor/libxml/trio.c +6895 -0
  133. package/vendor/libxml/trio.h +230 -0
  134. package/vendor/libxml/triodef.h +228 -0
  135. package/vendor/libxml/trionan.c +914 -0
  136. package/vendor/libxml/trionan.h +84 -0
  137. package/vendor/libxml/triop.h +150 -0
  138. package/vendor/libxml/triostr.c +2112 -0
  139. package/vendor/libxml/triostr.h +144 -0
  140. package/vendor/libxml/uri.c +2561 -0
  141. package/vendor/libxml/valid.c +7138 -0
  142. package/vendor/libxml/xinclude.c +2657 -0
  143. package/vendor/libxml/xlink.c +183 -0
  144. package/vendor/libxml/xmlIO.c +4135 -0
  145. package/vendor/libxml/xmlcatalog.c +624 -0
  146. package/vendor/libxml/xmllint.c +3796 -0
  147. package/vendor/libxml/xmlmemory.c +1163 -0
  148. package/vendor/libxml/xmlmodule.c +468 -0
  149. package/vendor/libxml/xmlreader.c +6033 -0
  150. package/vendor/libxml/xmlregexp.c +8271 -0
  151. package/vendor/libxml/xmlsave.c +2735 -0
  152. package/vendor/libxml/xmlschemas.c +29173 -0
  153. package/vendor/libxml/xmlschemastypes.c +6276 -0
  154. package/vendor/libxml/xmlstring.c +1050 -0
  155. package/vendor/libxml/xmlunicode.c +3179 -0
  156. package/vendor/libxml/xmlwriter.c +4738 -0
  157. package/vendor/libxml/xpath.c +14734 -0
  158. package/vendor/libxml/xpointer.c +2969 -0
  159. package/vendor/libxml/xzlib.c +815 -0
  160. package/vendor/libxml/xzlib.h +19 -0
@@ -0,0 +1,1311 @@
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 information */
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 information */
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 similarly 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; /* Internal flag for charset handling,
579
+ actually an xmlCharEncoding */
580
+ struct _xmlDict *dict; /* dict used to allocate names or NULL */
581
+ void *psvi; /* for type/PSVI information */
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
+