nokogiri 1.18.0.rc1-x86_64-linux-musl

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

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

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