nokogiri 1.16.8-x86-linux → 1.17.1-x86-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +11 -21
  3. data/README.md +4 -0
  4. data/dependencies.yml +6 -6
  5. data/ext/nokogiri/extconf.rb +191 -137
  6. data/ext/nokogiri/gumbo.c +69 -53
  7. data/ext/nokogiri/html4_document.c +10 -4
  8. data/ext/nokogiri/html4_element_description.c +18 -18
  9. data/ext/nokogiri/html4_sax_parser.c +40 -0
  10. data/ext/nokogiri/html4_sax_parser_context.c +48 -58
  11. data/ext/nokogiri/html4_sax_push_parser.c +25 -24
  12. data/ext/nokogiri/include/libexslt/exsltconfig.h +3 -3
  13. data/ext/nokogiri/include/libxml2/libxml/HTMLparser.h +12 -19
  14. data/ext/nokogiri/include/libxml2/libxml/c14n.h +1 -12
  15. data/ext/nokogiri/include/libxml2/libxml/debugXML.h +1 -1
  16. data/ext/nokogiri/include/libxml2/libxml/encoding.h +9 -0
  17. data/ext/nokogiri/include/libxml2/libxml/entities.h +12 -1
  18. data/ext/nokogiri/include/libxml2/libxml/hash.h +19 -0
  19. data/ext/nokogiri/include/libxml2/libxml/list.h +2 -2
  20. data/ext/nokogiri/include/libxml2/libxml/nanohttp.h +17 -0
  21. data/ext/nokogiri/include/libxml2/libxml/parser.h +60 -54
  22. data/ext/nokogiri/include/libxml2/libxml/parserInternals.h +9 -1
  23. data/ext/nokogiri/include/libxml2/libxml/pattern.h +6 -0
  24. data/ext/nokogiri/include/libxml2/libxml/tree.h +32 -12
  25. data/ext/nokogiri/include/libxml2/libxml/uri.h +11 -0
  26. data/ext/nokogiri/include/libxml2/libxml/valid.h +29 -2
  27. data/ext/nokogiri/include/libxml2/libxml/xinclude.h +7 -0
  28. data/ext/nokogiri/include/libxml2/libxml/xmlIO.h +21 -4
  29. data/ext/nokogiri/include/libxml2/libxml/xmlerror.h +14 -0
  30. data/ext/nokogiri/include/libxml2/libxml/xmlexports.h +111 -15
  31. data/ext/nokogiri/include/libxml2/libxml/xmlmemory.h +8 -45
  32. data/ext/nokogiri/include/libxml2/libxml/xmlreader.h +2 -0
  33. data/ext/nokogiri/include/libxml2/libxml/xmlsave.h +5 -0
  34. data/ext/nokogiri/include/libxml2/libxml/xmlunicode.h +165 -1
  35. data/ext/nokogiri/include/libxml2/libxml/xmlversion.h +7 -171
  36. data/ext/nokogiri/include/libxml2/libxml/xmlwriter.h +1 -0
  37. data/ext/nokogiri/include/libxml2/libxml/xpath.h +4 -0
  38. data/ext/nokogiri/include/libxslt/xsltInternals.h +3 -0
  39. data/ext/nokogiri/include/libxslt/xsltconfig.h +4 -37
  40. data/ext/nokogiri/libxml2_polyfill.c +114 -0
  41. data/ext/nokogiri/nokogiri.c +9 -2
  42. data/ext/nokogiri/nokogiri.h +18 -33
  43. data/ext/nokogiri/xml_attr.c +1 -1
  44. data/ext/nokogiri/xml_cdata.c +2 -10
  45. data/ext/nokogiri/xml_comment.c +3 -8
  46. data/ext/nokogiri/xml_document.c +163 -156
  47. data/ext/nokogiri/xml_document_fragment.c +10 -25
  48. data/ext/nokogiri/xml_dtd.c +1 -1
  49. data/ext/nokogiri/xml_element_content.c +9 -9
  50. data/ext/nokogiri/xml_encoding_handler.c +4 -4
  51. data/ext/nokogiri/xml_namespace.c +6 -6
  52. data/ext/nokogiri/xml_node.c +134 -103
  53. data/ext/nokogiri/xml_node_set.c +46 -44
  54. data/ext/nokogiri/xml_reader.c +54 -58
  55. data/ext/nokogiri/xml_relax_ng.c +35 -56
  56. data/ext/nokogiri/xml_sax_parser.c +156 -88
  57. data/ext/nokogiri/xml_sax_parser_context.c +213 -131
  58. data/ext/nokogiri/xml_sax_push_parser.c +68 -49
  59. data/ext/nokogiri/xml_schema.c +50 -85
  60. data/ext/nokogiri/xml_syntax_error.c +19 -11
  61. data/ext/nokogiri/xml_text.c +2 -4
  62. data/ext/nokogiri/xml_xpath_context.c +2 -2
  63. data/ext/nokogiri/xslt_stylesheet.c +8 -8
  64. data/lib/nokogiri/3.0/nokogiri.so +0 -0
  65. data/lib/nokogiri/3.1/nokogiri.so +0 -0
  66. data/lib/nokogiri/3.2/nokogiri.so +0 -0
  67. data/lib/nokogiri/3.3/nokogiri.so +0 -0
  68. data/lib/nokogiri/class_resolver.rb +1 -1
  69. data/lib/nokogiri/css/node.rb +6 -2
  70. data/lib/nokogiri/css/parser.rb +6 -4
  71. data/lib/nokogiri/css/parser.y +2 -2
  72. data/lib/nokogiri/css/parser_extras.rb +6 -66
  73. data/lib/nokogiri/css/selector_cache.rb +38 -0
  74. data/lib/nokogiri/css/tokenizer.rb +4 -4
  75. data/lib/nokogiri/css/tokenizer.rex +9 -8
  76. data/lib/nokogiri/css/xpath_visitor.rb +42 -6
  77. data/lib/nokogiri/css.rb +86 -20
  78. data/lib/nokogiri/decorators/slop.rb +3 -5
  79. data/lib/nokogiri/encoding_handler.rb +2 -2
  80. data/lib/nokogiri/html4/document.rb +44 -23
  81. data/lib/nokogiri/html4/document_fragment.rb +124 -12
  82. data/lib/nokogiri/html4/encoding_reader.rb +1 -1
  83. data/lib/nokogiri/html4/sax/parser.rb +23 -38
  84. data/lib/nokogiri/html4/sax/parser_context.rb +4 -9
  85. data/lib/nokogiri/html4.rb +9 -14
  86. data/lib/nokogiri/html5/builder.rb +40 -0
  87. data/lib/nokogiri/html5/document.rb +61 -30
  88. data/lib/nokogiri/html5/document_fragment.rb +130 -20
  89. data/lib/nokogiri/html5/node.rb +4 -4
  90. data/lib/nokogiri/html5.rb +114 -72
  91. data/lib/nokogiri/version/constant.rb +1 -1
  92. data/lib/nokogiri/xml/builder.rb +8 -1
  93. data/lib/nokogiri/xml/document.rb +70 -26
  94. data/lib/nokogiri/xml/document_fragment.rb +84 -13
  95. data/lib/nokogiri/xml/node.rb +82 -11
  96. data/lib/nokogiri/xml/node_set.rb +9 -7
  97. data/lib/nokogiri/xml/parse_options.rb +1 -1
  98. data/lib/nokogiri/xml/pp/node.rb +6 -1
  99. data/lib/nokogiri/xml/reader.rb +46 -13
  100. data/lib/nokogiri/xml/relax_ng.rb +57 -20
  101. data/lib/nokogiri/xml/sax/document.rb +174 -83
  102. data/lib/nokogiri/xml/sax/parser.rb +115 -41
  103. data/lib/nokogiri/xml/sax/parser_context.rb +116 -8
  104. data/lib/nokogiri/xml/sax/push_parser.rb +3 -0
  105. data/lib/nokogiri/xml/sax.rb +48 -0
  106. data/lib/nokogiri/xml/schema.rb +112 -45
  107. data/lib/nokogiri/xml/searchable.rb +6 -8
  108. data/lib/nokogiri/xml/syntax_error.rb +22 -0
  109. data/lib/nokogiri/xml.rb +13 -24
  110. data/lib/nokogiri/xslt.rb +3 -9
  111. data/lib/xsd/xmlparser/nokogiri.rb +3 -4
  112. metadata +8 -4
  113. data/ext/nokogiri/libxml2_backwards_compat.c +0 -121
@@ -10,6 +10,7 @@
10
10
  #ifndef __XML_PARSER_H__
11
11
  #define __XML_PARSER_H__
12
12
 
13
+ /** DOC_DISABLE */
13
14
  #include <libxml/xmlversion.h>
14
15
  #define XML_TREE_INTERNALS
15
16
  #include <libxml/tree.h>
@@ -26,6 +27,7 @@
26
27
  /* for compatibility */
27
28
  #include <libxml/SAX2.h>
28
29
  #include <libxml/threads.h>
30
+ /** DOC_ENABLE */
29
31
 
30
32
  #ifdef __cplusplus
31
33
  extern "C" {
@@ -62,11 +64,11 @@ struct _xmlParserInput {
62
64
  xmlParserInputBufferPtr buf; /* UTF-8 encoded buffer */
63
65
 
64
66
  const char *filename; /* The file analyzed, if any */
65
- const char *directory; /* the directory/base of the file */
67
+ const char *directory; /* unused */
66
68
  const xmlChar *base; /* Base of the array to parse */
67
69
  const xmlChar *cur; /* Current char being parsed */
68
70
  const xmlChar *end; /* end of the array to parse */
69
- int length; /* length if known */
71
+ int length; /* unused */
70
72
  int line; /* Current line */
71
73
  int col; /* Current column */
72
74
  unsigned long consumed; /* How many xmlChars already consumed */
@@ -75,7 +77,7 @@ struct _xmlParserInput {
75
77
  const xmlChar *version; /* the version string for entity */
76
78
  int flags; /* Flags */
77
79
  int id; /* an unique identifier for the entity */
78
- unsigned long parentConsumed; /* consumed bytes from parents */
80
+ unsigned long parentConsumed; /* unused */
79
81
  xmlEntityPtr entity; /* entity, if any */
80
82
  };
81
83
 
@@ -134,30 +136,14 @@ typedef enum {
134
136
  XML_PARSER_XML_DECL /* before XML decl (but after BOM) */
135
137
  } xmlParserInputState;
136
138
 
137
- /**
138
- * XML_DETECT_IDS:
139
- *
140
- * Bit in the loadsubset context field to tell to do ID/REFs lookups.
141
- * Use it to initialize xmlLoadExtDtdDefaultValue.
139
+ /** DOC_DISABLE */
140
+ /*
141
+ * Internal bits in the 'loadsubset' context member
142
142
  */
143
143
  #define XML_DETECT_IDS 2
144
-
145
- /**
146
- * XML_COMPLETE_ATTRS:
147
- *
148
- * Bit in the loadsubset context field to tell to do complete the
149
- * elements attributes lists with the ones defaulted from the DTDs.
150
- * Use it to initialize xmlLoadExtDtdDefaultValue.
151
- */
152
144
  #define XML_COMPLETE_ATTRS 4
153
-
154
- /**
155
- * XML_SKIP_IDS:
156
- *
157
- * Bit in the loadsubset context field to tell to not do ID/REFs registration.
158
- * Used to initialize xmlLoadExtDtdDefaultValue in some special cases.
159
- */
160
145
  #define XML_SKIP_IDS 8
146
+ /** DOC_ENABLE */
161
147
 
162
148
  /**
163
149
  * xmlParserMode:
@@ -222,16 +208,16 @@ struct _xmlParserCtxt {
222
208
 
223
209
  int hasExternalSubset; /* reference and external subset */
224
210
  int hasPErefs; /* the internal subset has PE refs */
225
- int external; /* are we parsing an external entity */
211
+ int external; /* unused */
226
212
 
227
213
  int valid; /* is the document valid */
228
214
  int validate; /* shall we try to validate ? */
229
215
  xmlValidCtxt vctxt; /* The validity context */
230
216
 
231
- xmlParserInputState instate; /* current type of input */
232
- int token; /* next char look-ahead */
217
+ xmlParserInputState instate; /* push parser state */
218
+ int token; /* unused */
233
219
 
234
- char *directory; /* the data directory */
220
+ char *directory; /* unused */
235
221
 
236
222
  /* Node name stack */
237
223
  const xmlChar *name; /* Current parsed Node */
@@ -255,7 +241,7 @@ struct _xmlParserCtxt {
255
241
  int * spaceTab; /* array of space infos */
256
242
 
257
243
  int depth; /* to prevent entity substitution loops */
258
- xmlParserInputPtr entity; /* used to check entities boundaries */
244
+ xmlParserInputPtr entity; /* unused */
259
245
  int charset; /* unused */
260
246
  int nodelen; /* Those two fields are there to */
261
247
  int nodemem; /* Speed up large node parsing */
@@ -266,11 +252,11 @@ struct _xmlParserCtxt {
266
252
  int linenumbers; /* set line number in element content */
267
253
  void *catalogs; /* document's own catalog */
268
254
  int recovery; /* run in recovery mode */
269
- int progressive; /* is this a progressive parsing */
255
+ int progressive; /* unused */
270
256
  xmlDictPtr dict; /* dictionary for the parser */
271
257
  const xmlChar * *atts; /* array for the attributes callbacks */
272
258
  int maxatts; /* the size of the array */
273
- int docdict; /* use strings from dict to build tree */
259
+ int docdict; /* unused */
274
260
 
275
261
  /*
276
262
  * pre-interned strings
@@ -308,7 +294,7 @@ struct _xmlParserCtxt {
308
294
  xmlError lastError;
309
295
  xmlParserMode parseMode; /* the parser mode */
310
296
  unsigned long nbentities; /* unused */
311
- unsigned long sizeentities; /* size of parsed entities */
297
+ unsigned long sizeentities; /* size of external entities */
312
298
 
313
299
  /* for use by HTML non-recursive parser */
314
300
  xmlParserNodeInfo *nodeInfo; /* Current NodeInfo */
@@ -327,6 +313,9 @@ struct _xmlParserCtxt {
327
313
  xmlParserNsData *nsdb; /* namespace database */
328
314
  unsigned attrHashMax; /* allocated size */
329
315
  xmlAttrHashBucket *attrHash; /* atttribute hash table */
316
+
317
+ xmlStructuredErrorFunc errorHandler;
318
+ void *errorCtxt;
330
319
  };
331
320
 
332
321
  /**
@@ -843,21 +832,39 @@ typedef xmlParserInputPtr (*xmlExternalEntityLoader) (const char *URL,
843
832
  */
844
833
 
845
834
  XMLPUBVAR const char *const xmlParserVersion;
835
+ XML_DEPRECATED
836
+ XMLPUBVAR const int oldXMLWDcompatibility;
837
+ XML_DEPRECATED
838
+ XMLPUBVAR const int xmlParserDebugEntities;
839
+ XML_DEPRECATED
840
+ XMLPUBVAR const xmlSAXLocator xmlDefaultSAXLocator;
841
+ #ifdef LIBXML_SAX1_ENABLED
842
+ XML_DEPRECATED
843
+ XMLPUBVAR const xmlSAXHandlerV1 xmlDefaultSAXHandler;
844
+ #endif
845
+
846
846
  #ifdef LIBXML_THREAD_ENABLED
847
847
  /* backward compatibility */
848
848
  XMLPUBFUN const char *const *__xmlParserVersion(void);
849
+ XML_DEPRECATED
850
+ XMLPUBFUN const int *__oldXMLWDcompatibility(void);
851
+ XML_DEPRECATED
852
+ XMLPUBFUN const int *__xmlParserDebugEntities(void);
853
+ XML_DEPRECATED
854
+ XMLPUBFUN const xmlSAXLocator *__xmlDefaultSAXLocator(void);
855
+ #ifdef LIBXML_SAX1_ENABLED
856
+ XML_DEPRECATED
857
+ XMLPUBFUN const xmlSAXHandlerV1 *__xmlDefaultSAXHandler(void);
858
+ #endif
849
859
  #endif
850
860
 
851
861
  /** DOC_DISABLE */
852
862
  #define XML_GLOBALS_PARSER_CORE \
853
- XML_OP(oldXMLWDcompatibility, int, XML_DEPRECATED) \
854
- XML_OP(xmlDefaultSAXLocator, xmlSAXLocator, XML_DEPRECATED) \
855
863
  XML_OP(xmlDoValidityCheckingDefaultValue, int, XML_DEPRECATED) \
856
864
  XML_OP(xmlGetWarningsDefaultValue, int, XML_DEPRECATED) \
857
865
  XML_OP(xmlKeepBlanksDefaultValue, int, XML_DEPRECATED) \
858
866
  XML_OP(xmlLineNumbersDefaultValue, int, XML_DEPRECATED) \
859
867
  XML_OP(xmlLoadExtDtdDefaultValue, int, XML_DEPRECATED) \
860
- XML_OP(xmlParserDebugEntities, int, XML_DEPRECATED) \
861
868
  XML_OP(xmlPedanticParserDefaultValue, int, XML_DEPRECATED) \
862
869
  XML_OP(xmlSubstituteEntitiesDefaultValue, int, XML_DEPRECATED)
863
870
 
@@ -870,26 +877,15 @@ XMLPUBFUN const char *const *__xmlParserVersion(void);
870
877
  #define XML_GLOBALS_PARSER_OUTPUT
871
878
  #endif
872
879
 
873
- #ifdef LIBXML_SAX1_ENABLED
874
- #define XML_GLOBALS_PARSER_SAX1 \
875
- XML_OP(xmlDefaultSAXHandler, xmlSAXHandlerV1, XML_DEPRECATED)
876
- #else
877
- #define XML_GLOBALS_PARSER_SAX1
878
- #endif
879
-
880
880
  #define XML_GLOBALS_PARSER \
881
881
  XML_GLOBALS_PARSER_CORE \
882
- XML_GLOBALS_PARSER_OUTPUT \
883
- XML_GLOBALS_PARSER_SAX1
882
+ XML_GLOBALS_PARSER_OUTPUT
884
883
 
885
884
  #define XML_OP XML_DECLARE_GLOBAL
886
885
  XML_GLOBALS_PARSER
887
886
  #undef XML_OP
888
887
 
889
888
  #if defined(LIBXML_THREAD_ENABLED) && !defined(XML_GLOBALS_NO_REDEFINITION)
890
- #define oldXMLWDcompatibility XML_GLOBAL_MACRO(oldXMLWDcompatibility)
891
- #define xmlDefaultSAXHandler XML_GLOBAL_MACRO(xmlDefaultSAXHandler)
892
- #define xmlDefaultSAXLocator XML_GLOBAL_MACRO(xmlDefaultSAXLocator)
893
889
  #define xmlDoValidityCheckingDefaultValue \
894
890
  XML_GLOBAL_MACRO(xmlDoValidityCheckingDefaultValue)
895
891
  #define xmlGetWarningsDefaultValue \
@@ -898,7 +894,6 @@ XML_GLOBALS_PARSER
898
894
  #define xmlLineNumbersDefaultValue \
899
895
  XML_GLOBAL_MACRO(xmlLineNumbersDefaultValue)
900
896
  #define xmlLoadExtDtdDefaultValue XML_GLOBAL_MACRO(xmlLoadExtDtdDefaultValue)
901
- #define xmlParserDebugEntities XML_GLOBAL_MACRO(xmlParserDebugEntities)
902
897
  #define xmlPedanticParserDefaultValue \
903
898
  XML_GLOBAL_MACRO(xmlPedanticParserDefaultValue)
904
899
  #define xmlSubstituteEntitiesDefaultValue \
@@ -1185,18 +1180,18 @@ XMLPUBFUN xmlParserInputPtr
1185
1180
  * Node infos.
1186
1181
  */
1187
1182
  XMLPUBFUN const xmlParserNodeInfo*
1188
- xmlParserFindNodeInfo (const xmlParserCtxtPtr ctxt,
1189
- const xmlNodePtr node);
1183
+ xmlParserFindNodeInfo (xmlParserCtxtPtr ctxt,
1184
+ xmlNodePtr node);
1190
1185
  XMLPUBFUN void
1191
1186
  xmlInitNodeInfoSeq (xmlParserNodeInfoSeqPtr seq);
1192
1187
  XMLPUBFUN void
1193
1188
  xmlClearNodeInfoSeq (xmlParserNodeInfoSeqPtr seq);
1194
1189
  XMLPUBFUN unsigned long
1195
- xmlParserFindNodeInfoIndex(const xmlParserNodeInfoSeqPtr seq,
1196
- const xmlNodePtr node);
1190
+ xmlParserFindNodeInfoIndex(xmlParserNodeInfoSeqPtr seq,
1191
+ xmlNodePtr node);
1197
1192
  XMLPUBFUN void
1198
1193
  xmlParserAddNodeInfo (xmlParserCtxtPtr ctxt,
1199
- const xmlParserNodeInfoPtr info);
1194
+ xmlParserNodeInfoPtr info);
1200
1195
 
1201
1196
  /*
1202
1197
  * External entities handling actually implemented in xmlIO.
@@ -1251,7 +1246,8 @@ typedef enum {
1251
1246
  XML_PARSE_HUGE = 1<<19,/* relax any hardcoded limit from the parser */
1252
1247
  XML_PARSE_OLDSAX = 1<<20,/* parse using SAX2 interface before 2.7.0 */
1253
1248
  XML_PARSE_IGNORE_ENC= 1<<21,/* ignore internal document encoding hint */
1254
- XML_PARSE_BIG_LINES = 1<<22 /* Store big lines numbers in text PSVI field */
1249
+ XML_PARSE_BIG_LINES = 1<<22,/* Store big lines numbers in text PSVI field */
1250
+ XML_PARSE_NO_XXE = 1<<23 /* disable loading of external content */
1255
1251
  } xmlParserOption;
1256
1252
 
1257
1253
  XMLPUBFUN void
@@ -1262,9 +1258,16 @@ XMLPUBFUN int
1262
1258
  int size,
1263
1259
  const char *filename,
1264
1260
  const char *encoding);
1261
+ XMLPUBFUN int
1262
+ xmlCtxtSetOptions (xmlParserCtxtPtr ctxt,
1263
+ int options);
1265
1264
  XMLPUBFUN int
1266
1265
  xmlCtxtUseOptions (xmlParserCtxtPtr ctxt,
1267
1266
  int options);
1267
+ XMLPUBFUN void
1268
+ xmlCtxtSetErrorHandler (xmlParserCtxtPtr ctxt,
1269
+ xmlStructuredErrorFunc handler,
1270
+ void *data);
1268
1271
  XMLPUBFUN void
1269
1272
  xmlCtxtSetMaxAmplification(xmlParserCtxtPtr ctxt,
1270
1273
  unsigned maxAmpl);
@@ -1295,6 +1298,9 @@ XMLPUBFUN xmlDocPtr
1295
1298
  const char *URL,
1296
1299
  const char *encoding,
1297
1300
  int options);
1301
+ XMLPUBFUN xmlDocPtr
1302
+ xmlCtxtParseDocument (xmlParserCtxtPtr ctxt,
1303
+ xmlParserInputPtr input);
1298
1304
  XMLPUBFUN xmlDocPtr
1299
1305
  xmlCtxtReadDoc (xmlParserCtxtPtr ctxt,
1300
1306
  const xmlChar *cur,
@@ -1368,7 +1374,7 @@ typedef enum {
1368
1374
  XML_WITH_MODULES = 27,
1369
1375
  XML_WITH_DEBUG = 28,
1370
1376
  XML_WITH_DEBUG_MEM = 29,
1371
- XML_WITH_DEBUG_RUN = 30,
1377
+ XML_WITH_DEBUG_RUN = 30, /* unused */
1372
1378
  XML_WITH_ZLIB = 31,
1373
1379
  XML_WITH_ICU = 32,
1374
1380
  XML_WITH_LZMA = 33,
@@ -25,11 +25,14 @@ extern "C" {
25
25
  /**
26
26
  * xmlParserMaxDepth:
27
27
  *
28
+ * DEPRECATED: has no effect
29
+ *
28
30
  * arbitrary depth limit for the XML documents that we allow to
29
31
  * process. This is not a limitation of the parser but a safety
30
32
  * boundary feature, use XML_PARSE_HUGE option to override it.
31
33
  */
32
- XMLPUBVAR unsigned int xmlParserMaxDepth;
34
+ XML_DEPRECATED
35
+ XMLPUBVAR const unsigned int xmlParserMaxDepth;
33
36
 
34
37
  /**
35
38
  * XML_MAX_TEXT_LENGTH:
@@ -313,9 +316,14 @@ XMLPUBFUN xmlParserCtxtPtr
313
316
  xmlCreateEntityParserCtxt(const xmlChar *URL,
314
317
  const xmlChar *ID,
315
318
  const xmlChar *base);
319
+ XMLPUBFUN void
320
+ xmlCtxtErrMemory (xmlParserCtxtPtr ctxt);
316
321
  XMLPUBFUN int
317
322
  xmlSwitchEncoding (xmlParserCtxtPtr ctxt,
318
323
  xmlCharEncoding enc);
324
+ XMLPUBFUN int
325
+ xmlSwitchEncodingName (xmlParserCtxtPtr ctxt,
326
+ const char *encoding);
319
327
  XMLPUBFUN int
320
328
  xmlSwitchToEncoding (xmlParserCtxtPtr ctxt,
321
329
  xmlCharEncodingHandlerPtr handler);
@@ -54,6 +54,12 @@ XMLPUBFUN xmlPatternPtr
54
54
  xmlDict *dict,
55
55
  int flags,
56
56
  const xmlChar **namespaces);
57
+ XMLPUBFUN int
58
+ xmlPatternCompileSafe (const xmlChar *pattern,
59
+ xmlDict *dict,
60
+ int flags,
61
+ const xmlChar **namespaces,
62
+ xmlPatternPtr *patternOut);
57
63
  XMLPUBFUN int
58
64
  xmlPatternMatch (xmlPatternPtr comp,
59
65
  xmlNodePtr node);
@@ -173,13 +173,13 @@ typedef enum {
173
173
  XML_TEXT_NODE= 3,
174
174
  XML_CDATA_SECTION_NODE= 4,
175
175
  XML_ENTITY_REF_NODE= 5,
176
- XML_ENTITY_NODE= 6,
176
+ XML_ENTITY_NODE= 6, /* unused */
177
177
  XML_PI_NODE= 7,
178
178
  XML_COMMENT_NODE= 8,
179
179
  XML_DOCUMENT_NODE= 9,
180
- XML_DOCUMENT_TYPE_NODE= 10,
180
+ XML_DOCUMENT_TYPE_NODE= 10, /* unused */
181
181
  XML_DOCUMENT_FRAG_NODE= 11,
182
- XML_NOTATION_NODE= 12,
182
+ XML_NOTATION_NODE= 12, /* unused */
183
183
  XML_HTML_DOCUMENT_NODE= 13,
184
184
  XML_DTD_NODE= 14,
185
185
  XML_ELEMENT_DECL= 15,
@@ -449,6 +449,7 @@ struct _xmlAttr {
449
449
  xmlNs *ns; /* pointer to the associated namespace */
450
450
  xmlAttributeType atype; /* the attribute type if validating */
451
451
  void *psvi; /* for type/PSVI information */
452
+ struct _xmlID *id; /* the ID struct */
452
453
  };
453
454
 
454
455
  /**
@@ -1011,10 +1012,10 @@ XMLPUBFUN void
1011
1012
  xmlFreeNodeList (xmlNodePtr cur);
1012
1013
  XMLPUBFUN void
1013
1014
  xmlFreeNode (xmlNodePtr cur);
1014
- XMLPUBFUN void
1015
+ XMLPUBFUN int
1015
1016
  xmlSetTreeDoc (xmlNodePtr tree,
1016
1017
  xmlDocPtr doc);
1017
- XMLPUBFUN void
1018
+ XMLPUBFUN int
1018
1019
  xmlSetListDoc (xmlNodePtr list,
1019
1020
  xmlDocPtr doc);
1020
1021
  /*
@@ -1030,6 +1031,10 @@ XMLPUBFUN xmlNsPtr
1030
1031
  const xmlChar *href);
1031
1032
  #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \
1032
1033
  defined(LIBXML_SCHEMAS_ENABLED)
1034
+ XMLPUBFUN int
1035
+ xmlGetNsListSafe (const xmlDoc *doc,
1036
+ const xmlNode *node,
1037
+ xmlNsPtr **out);
1033
1038
  XMLPUBFUN xmlNsPtr *
1034
1039
  xmlGetNsList (const xmlDoc *doc,
1035
1040
  const xmlNode *node);
@@ -1059,6 +1064,11 @@ XMLPUBFUN xmlAttrPtr
1059
1064
  const xmlChar *value);
1060
1065
  #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \
1061
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);
1062
1072
  XMLPUBFUN xmlChar *
1063
1073
  xmlGetNoNsProp (const xmlNode *node,
1064
1074
  const xmlChar *name);
@@ -1093,19 +1103,19 @@ XMLPUBFUN xmlChar *
1093
1103
  const xmlNode *list,
1094
1104
  int inLine);
1095
1105
  #endif /* LIBXML_TREE_ENABLED */
1096
- XMLPUBFUN void
1106
+ XMLPUBFUN int
1097
1107
  xmlNodeSetContent (xmlNodePtr cur,
1098
1108
  const xmlChar *content);
1099
1109
  #ifdef LIBXML_TREE_ENABLED
1100
- XMLPUBFUN void
1110
+ XMLPUBFUN int
1101
1111
  xmlNodeSetContentLen (xmlNodePtr cur,
1102
1112
  const xmlChar *content,
1103
1113
  int len);
1104
1114
  #endif /* LIBXML_TREE_ENABLED */
1105
- XMLPUBFUN void
1115
+ XMLPUBFUN int
1106
1116
  xmlNodeAddContent (xmlNodePtr cur,
1107
1117
  const xmlChar *content);
1108
- XMLPUBFUN void
1118
+ XMLPUBFUN int
1109
1119
  xmlNodeAddContentLen (xmlNodePtr cur,
1110
1120
  const xmlChar *content,
1111
1121
  int len);
@@ -1124,18 +1134,22 @@ XMLPUBFUN xmlChar *
1124
1134
  XMLPUBFUN int
1125
1135
  xmlNodeGetSpacePreserve (const xmlNode *cur);
1126
1136
  #ifdef LIBXML_TREE_ENABLED
1127
- XMLPUBFUN void
1137
+ XMLPUBFUN int
1128
1138
  xmlNodeSetLang (xmlNodePtr cur,
1129
1139
  const xmlChar *lang);
1130
- XMLPUBFUN void
1140
+ XMLPUBFUN int
1131
1141
  xmlNodeSetSpacePreserve (xmlNodePtr cur,
1132
1142
  int val);
1133
1143
  #endif /* LIBXML_TREE_ENABLED */
1144
+ XMLPUBFUN int
1145
+ xmlNodeGetBaseSafe (const xmlDoc *doc,
1146
+ const xmlNode *cur,
1147
+ xmlChar **baseOut);
1134
1148
  XMLPUBFUN xmlChar *
1135
1149
  xmlNodeGetBase (const xmlDoc *doc,
1136
1150
  const xmlNode *cur);
1137
1151
  #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
1138
- XMLPUBFUN void
1152
+ XMLPUBFUN int
1139
1153
  xmlNodeSetBase (xmlNodePtr cur,
1140
1154
  const xmlChar *uri);
1141
1155
  #endif
@@ -1283,8 +1297,10 @@ XMLPUBFUN int
1283
1297
  XMLPUBFUN void
1284
1298
  xmlSetDocCompressMode (xmlDocPtr doc,
1285
1299
  int mode);
1300
+ XML_DEPRECATED
1286
1301
  XMLPUBFUN int
1287
1302
  xmlGetCompressMode (void);
1303
+ XML_DEPRECATED
1288
1304
  XMLPUBFUN void
1289
1305
  xmlSetCompressMode (int mode);
1290
1306
 
@@ -1338,12 +1354,16 @@ XMLPUBFUN xmlNodePtr
1338
1354
  xmlPreviousElementSibling (xmlNodePtr node);
1339
1355
  #endif
1340
1356
 
1357
+ XML_DEPRECATED
1341
1358
  XMLPUBFUN xmlRegisterNodeFunc
1342
1359
  xmlRegisterNodeDefault (xmlRegisterNodeFunc func);
1360
+ XML_DEPRECATED
1343
1361
  XMLPUBFUN xmlDeregisterNodeFunc
1344
1362
  xmlDeregisterNodeDefault (xmlDeregisterNodeFunc func);
1363
+ XML_DEPRECATED
1345
1364
  XMLPUBFUN xmlRegisterNodeFunc
1346
1365
  xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func);
1366
+ XML_DEPRECATED
1347
1367
  XMLPUBFUN xmlDeregisterNodeFunc
1348
1368
  xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
1349
1369
 
@@ -52,14 +52,25 @@ struct _xmlURI {
52
52
  */
53
53
  XMLPUBFUN xmlURIPtr
54
54
  xmlCreateURI (void);
55
+ XMLPUBFUN int
56
+ xmlBuildURISafe (const xmlChar *URI,
57
+ const xmlChar *base,
58
+ xmlChar **out);
55
59
  XMLPUBFUN xmlChar *
56
60
  xmlBuildURI (const xmlChar *URI,
57
61
  const xmlChar *base);
62
+ XMLPUBFUN int
63
+ xmlBuildRelativeURISafe (const xmlChar *URI,
64
+ const xmlChar *base,
65
+ xmlChar **out);
58
66
  XMLPUBFUN xmlChar *
59
67
  xmlBuildRelativeURI (const xmlChar *URI,
60
68
  const xmlChar *base);
61
69
  XMLPUBFUN xmlURIPtr
62
70
  xmlParseURI (const char *str);
71
+ XMLPUBFUN int
72
+ xmlParseURISafe (const char *str,
73
+ xmlURIPtr *uri);
63
74
  XMLPUBFUN xmlURIPtr
64
75
  xmlParseURIRaw (const char *str,
65
76
  int raw);
@@ -11,6 +11,7 @@
11
11
  #ifndef __XML_VALID_H__
12
12
  #define __XML_VALID_H__
13
13
 
14
+ /** DOC_DISABLE */
14
15
  #include <libxml/xmlversion.h>
15
16
  #include <libxml/xmlerror.h>
16
17
  #define XML_TREE_INTERNALS
@@ -19,6 +20,7 @@
19
20
  #include <libxml/list.h>
20
21
  #include <libxml/xmlautomata.h>
21
22
  #include <libxml/xmlregexp.h>
23
+ /** DOC_ENABLE */
22
24
 
23
25
  #ifdef __cplusplus
24
26
  extern "C" {
@@ -150,9 +152,11 @@ XMLPUBFUN xmlNotationTablePtr
150
152
  XMLPUBFUN void
151
153
  xmlFreeNotationTable (xmlNotationTablePtr table);
152
154
  #ifdef LIBXML_OUTPUT_ENABLED
155
+ XML_DEPRECATED
153
156
  XMLPUBFUN void
154
157
  xmlDumpNotationDecl (xmlBufferPtr buf,
155
158
  xmlNotationPtr nota);
159
+ /* XML_DEPRECATED, still used in lxml */
156
160
  XMLPUBFUN void
157
161
  xmlDumpNotationTable (xmlBufferPtr buf,
158
162
  xmlNotationTablePtr table);
@@ -184,13 +188,12 @@ XMLPUBFUN void
184
188
  xmlElementContentPtr content,
185
189
  int englob);
186
190
  #ifdef LIBXML_OUTPUT_ENABLED
187
- /* DEPRECATED */
191
+ XML_DEPRECATED
188
192
  XMLPUBFUN void
189
193
  xmlSprintfElementContent(char *buf,
190
194
  xmlElementContentPtr content,
191
195
  int englob);
192
196
  #endif /* LIBXML_OUTPUT_ENABLED */
193
- /* DEPRECATED */
194
197
 
195
198
  /* Element */
196
199
  XMLPUBFUN xmlElementPtr
@@ -206,9 +209,11 @@ XMLPUBFUN xmlElementTablePtr
206
209
  XMLPUBFUN void
207
210
  xmlFreeElementTable (xmlElementTablePtr table);
208
211
  #ifdef LIBXML_OUTPUT_ENABLED
212
+ XML_DEPRECATED
209
213
  XMLPUBFUN void
210
214
  xmlDumpElementTable (xmlBufferPtr buf,
211
215
  xmlElementTablePtr table);
216
+ XML_DEPRECATED
212
217
  XMLPUBFUN void
213
218
  xmlDumpElementDecl (xmlBufferPtr buf,
214
219
  xmlElementPtr elem);
@@ -242,15 +247,20 @@ XMLPUBFUN xmlAttributeTablePtr
242
247
  XMLPUBFUN void
243
248
  xmlFreeAttributeTable (xmlAttributeTablePtr table);
244
249
  #ifdef LIBXML_OUTPUT_ENABLED
250
+ XML_DEPRECATED
245
251
  XMLPUBFUN void
246
252
  xmlDumpAttributeTable (xmlBufferPtr buf,
247
253
  xmlAttributeTablePtr table);
254
+ XML_DEPRECATED
248
255
  XMLPUBFUN void
249
256
  xmlDumpAttributeDecl (xmlBufferPtr buf,
250
257
  xmlAttributePtr attr);
251
258
  #endif /* LIBXML_OUTPUT_ENABLED */
252
259
 
253
260
  /* IDs */
261
+ XMLPUBFUN int
262
+ xmlAddIDSafe (xmlAttrPtr attr,
263
+ const xmlChar *value);
254
264
  XMLPUBFUN xmlIDPtr
255
265
  xmlAddID (xmlValidCtxtPtr ctxt,
256
266
  xmlDocPtr doc,
@@ -303,31 +313,38 @@ XMLPUBFUN xmlValidCtxtPtr
303
313
  XMLPUBFUN void
304
314
  xmlFreeValidCtxt(xmlValidCtxtPtr);
305
315
 
316
+ XML_DEPRECATED
306
317
  XMLPUBFUN int
307
318
  xmlValidateRoot (xmlValidCtxtPtr ctxt,
308
319
  xmlDocPtr doc);
320
+ XML_DEPRECATED
309
321
  XMLPUBFUN int
310
322
  xmlValidateElementDecl (xmlValidCtxtPtr ctxt,
311
323
  xmlDocPtr doc,
312
324
  xmlElementPtr elem);
325
+ XML_DEPRECATED
313
326
  XMLPUBFUN xmlChar *
314
327
  xmlValidNormalizeAttributeValue(xmlDocPtr doc,
315
328
  xmlNodePtr elem,
316
329
  const xmlChar *name,
317
330
  const xmlChar *value);
331
+ XML_DEPRECATED
318
332
  XMLPUBFUN xmlChar *
319
333
  xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt,
320
334
  xmlDocPtr doc,
321
335
  xmlNodePtr elem,
322
336
  const xmlChar *name,
323
337
  const xmlChar *value);
338
+ XML_DEPRECATED
324
339
  XMLPUBFUN int
325
340
  xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt,
326
341
  xmlDocPtr doc,
327
342
  xmlAttributePtr attr);
343
+ XML_DEPRECATED
328
344
  XMLPUBFUN int
329
345
  xmlValidateAttributeValue(xmlAttributeType type,
330
346
  const xmlChar *value);
347
+ XML_DEPRECATED
331
348
  XMLPUBFUN int
332
349
  xmlValidateNotationDecl (xmlValidCtxtPtr ctxt,
333
350
  xmlDocPtr doc,
@@ -336,6 +353,7 @@ XMLPUBFUN int
336
353
  xmlValidateDtd (xmlValidCtxtPtr ctxt,
337
354
  xmlDocPtr doc,
338
355
  xmlDtdPtr dtd);
356
+ XML_DEPRECATED
339
357
  XMLPUBFUN int
340
358
  xmlValidateDtdFinal (xmlValidCtxtPtr ctxt,
341
359
  xmlDocPtr doc);
@@ -346,16 +364,19 @@ XMLPUBFUN int
346
364
  xmlValidateElement (xmlValidCtxtPtr ctxt,
347
365
  xmlDocPtr doc,
348
366
  xmlNodePtr elem);
367
+ XML_DEPRECATED
349
368
  XMLPUBFUN int
350
369
  xmlValidateOneElement (xmlValidCtxtPtr ctxt,
351
370
  xmlDocPtr doc,
352
371
  xmlNodePtr elem);
372
+ XML_DEPRECATED
353
373
  XMLPUBFUN int
354
374
  xmlValidateOneAttribute (xmlValidCtxtPtr ctxt,
355
375
  xmlDocPtr doc,
356
376
  xmlNodePtr elem,
357
377
  xmlAttrPtr attr,
358
378
  const xmlChar *value);
379
+ XML_DEPRECATED
359
380
  XMLPUBFUN int
360
381
  xmlValidateOneNamespace (xmlValidCtxtPtr ctxt,
361
382
  xmlDocPtr doc,
@@ -363,12 +384,14 @@ XMLPUBFUN int
363
384
  const xmlChar *prefix,
364
385
  xmlNsPtr ns,
365
386
  const xmlChar *value);
387
+ XML_DEPRECATED
366
388
  XMLPUBFUN int
367
389
  xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt,
368
390
  xmlDocPtr doc);
369
391
  #endif /* LIBXML_VALID_ENABLED */
370
392
 
371
393
  #if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
394
+ XML_DEPRECATED
372
395
  XMLPUBFUN int
373
396
  xmlValidateNotationUse (xmlValidCtxtPtr ctxt,
374
397
  xmlDocPtr doc,
@@ -424,19 +447,23 @@ XMLPUBFUN int
424
447
  /*
425
448
  * Validation based on the regexp support
426
449
  */
450
+ XML_DEPRECATED
427
451
  XMLPUBFUN int
428
452
  xmlValidBuildContentModel(xmlValidCtxtPtr ctxt,
429
453
  xmlElementPtr elem);
430
454
 
455
+ XML_DEPRECATED
431
456
  XMLPUBFUN int
432
457
  xmlValidatePushElement (xmlValidCtxtPtr ctxt,
433
458
  xmlDocPtr doc,
434
459
  xmlNodePtr elem,
435
460
  const xmlChar *qname);
461
+ XML_DEPRECATED
436
462
  XMLPUBFUN int
437
463
  xmlValidatePushCData (xmlValidCtxtPtr ctxt,
438
464
  const xmlChar *data,
439
465
  int len);
466
+ XML_DEPRECATED
440
467
  XMLPUBFUN int
441
468
  xmlValidatePopElement (xmlValidCtxtPtr ctxt,
442
469
  xmlDocPtr doc,
@@ -14,6 +14,7 @@
14
14
  #define __XML_XINCLUDE_H__
15
15
 
16
16
  #include <libxml/xmlversion.h>
17
+ #include <libxml/xmlerror.h>
17
18
  #include <libxml/tree.h>
18
19
 
19
20
  #ifdef LIBXML_XINCLUDE_ENABLED
@@ -115,6 +116,12 @@ XMLPUBFUN xmlXIncludeCtxtPtr
115
116
  XMLPUBFUN int
116
117
  xmlXIncludeSetFlags (xmlXIncludeCtxtPtr ctxt,
117
118
  int flags);
119
+ XMLPUBFUN void
120
+ xmlXIncludeSetErrorHandler(xmlXIncludeCtxtPtr ctxt,
121
+ xmlStructuredErrorFunc handler,
122
+ void *data);
123
+ XMLPUBFUN int
124
+ xmlXIncludeGetLastError (xmlXIncludeCtxtPtr ctxt);
118
125
  XMLPUBFUN void
119
126
  xmlXIncludeFreeContext (xmlXIncludeCtxtPtr ctxt);
120
127
  XMLPUBFUN int