nokogiri 1.16.8-x86_64-darwin → 1.17.0-x86_64-darwin
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +11 -21
- data/README.md +4 -0
- data/dependencies.yml +6 -6
- data/ext/nokogiri/extconf.rb +191 -137
- data/ext/nokogiri/gumbo.c +69 -53
- data/ext/nokogiri/html4_document.c +10 -4
- data/ext/nokogiri/html4_element_description.c +18 -18
- data/ext/nokogiri/html4_sax_parser.c +40 -0
- data/ext/nokogiri/html4_sax_parser_context.c +48 -58
- data/ext/nokogiri/html4_sax_push_parser.c +25 -24
- data/ext/nokogiri/include/libexslt/exsltconfig.h +3 -3
- data/ext/nokogiri/include/libxml2/libxml/HTMLparser.h +12 -19
- data/ext/nokogiri/include/libxml2/libxml/c14n.h +1 -12
- data/ext/nokogiri/include/libxml2/libxml/debugXML.h +1 -1
- data/ext/nokogiri/include/libxml2/libxml/encoding.h +9 -0
- data/ext/nokogiri/include/libxml2/libxml/entities.h +12 -1
- data/ext/nokogiri/include/libxml2/libxml/hash.h +19 -0
- data/ext/nokogiri/include/libxml2/libxml/list.h +2 -2
- data/ext/nokogiri/include/libxml2/libxml/nanohttp.h +17 -0
- data/ext/nokogiri/include/libxml2/libxml/parser.h +60 -54
- data/ext/nokogiri/include/libxml2/libxml/parserInternals.h +9 -1
- data/ext/nokogiri/include/libxml2/libxml/pattern.h +6 -0
- data/ext/nokogiri/include/libxml2/libxml/tree.h +32 -12
- data/ext/nokogiri/include/libxml2/libxml/uri.h +11 -0
- data/ext/nokogiri/include/libxml2/libxml/valid.h +29 -2
- data/ext/nokogiri/include/libxml2/libxml/xinclude.h +7 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlIO.h +21 -4
- data/ext/nokogiri/include/libxml2/libxml/xmlerror.h +14 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlexports.h +111 -15
- data/ext/nokogiri/include/libxml2/libxml/xmlmemory.h +8 -45
- data/ext/nokogiri/include/libxml2/libxml/xmlreader.h +2 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlsave.h +5 -0
- data/ext/nokogiri/include/libxml2/libxml/xmlunicode.h +165 -1
- data/ext/nokogiri/include/libxml2/libxml/xmlversion.h +7 -171
- data/ext/nokogiri/include/libxml2/libxml/xmlwriter.h +1 -0
- data/ext/nokogiri/include/libxml2/libxml/xpath.h +4 -0
- data/ext/nokogiri/include/libxslt/xsltInternals.h +3 -0
- data/ext/nokogiri/include/libxslt/xsltconfig.h +4 -37
- data/ext/nokogiri/libxml2_polyfill.c +114 -0
- data/ext/nokogiri/nokogiri.c +9 -2
- data/ext/nokogiri/nokogiri.h +18 -33
- data/ext/nokogiri/xml_attr.c +1 -1
- data/ext/nokogiri/xml_cdata.c +2 -10
- data/ext/nokogiri/xml_comment.c +3 -8
- data/ext/nokogiri/xml_document.c +163 -156
- data/ext/nokogiri/xml_document_fragment.c +10 -25
- data/ext/nokogiri/xml_dtd.c +1 -1
- data/ext/nokogiri/xml_element_content.c +9 -9
- data/ext/nokogiri/xml_encoding_handler.c +4 -4
- data/ext/nokogiri/xml_namespace.c +6 -6
- data/ext/nokogiri/xml_node.c +130 -104
- data/ext/nokogiri/xml_node_set.c +46 -44
- data/ext/nokogiri/xml_reader.c +54 -58
- data/ext/nokogiri/xml_relax_ng.c +35 -56
- data/ext/nokogiri/xml_sax_parser.c +156 -88
- data/ext/nokogiri/xml_sax_parser_context.c +213 -131
- data/ext/nokogiri/xml_sax_push_parser.c +68 -49
- data/ext/nokogiri/xml_schema.c +50 -85
- data/ext/nokogiri/xml_syntax_error.c +19 -11
- data/ext/nokogiri/xml_text.c +2 -4
- data/ext/nokogiri/xml_xpath_context.c +2 -2
- data/ext/nokogiri/xslt_stylesheet.c +8 -8
- data/lib/nokogiri/3.0/nokogiri.bundle +0 -0
- data/lib/nokogiri/3.1/nokogiri.bundle +0 -0
- data/lib/nokogiri/3.2/nokogiri.bundle +0 -0
- data/lib/nokogiri/3.3/nokogiri.bundle +0 -0
- data/lib/nokogiri/class_resolver.rb +1 -1
- data/lib/nokogiri/css/node.rb +6 -2
- data/lib/nokogiri/css/parser.rb +6 -4
- data/lib/nokogiri/css/parser.y +2 -2
- data/lib/nokogiri/css/parser_extras.rb +6 -66
- data/lib/nokogiri/css/selector_cache.rb +38 -0
- data/lib/nokogiri/css/tokenizer.rb +4 -4
- data/lib/nokogiri/css/tokenizer.rex +9 -8
- data/lib/nokogiri/css/xpath_visitor.rb +42 -6
- data/lib/nokogiri/css.rb +86 -20
- data/lib/nokogiri/decorators/slop.rb +3 -5
- data/lib/nokogiri/encoding_handler.rb +2 -2
- data/lib/nokogiri/html4/document.rb +44 -23
- data/lib/nokogiri/html4/document_fragment.rb +124 -12
- data/lib/nokogiri/html4/encoding_reader.rb +1 -1
- data/lib/nokogiri/html4/sax/parser.rb +23 -38
- data/lib/nokogiri/html4/sax/parser_context.rb +4 -9
- data/lib/nokogiri/html4.rb +9 -14
- data/lib/nokogiri/html5/builder.rb +40 -0
- data/lib/nokogiri/html5/document.rb +61 -30
- data/lib/nokogiri/html5/document_fragment.rb +130 -20
- data/lib/nokogiri/html5/node.rb +4 -4
- data/lib/nokogiri/html5.rb +114 -72
- data/lib/nokogiri/version/constant.rb +1 -1
- data/lib/nokogiri/xml/builder.rb +8 -1
- data/lib/nokogiri/xml/document.rb +70 -26
- data/lib/nokogiri/xml/document_fragment.rb +84 -13
- data/lib/nokogiri/xml/node.rb +82 -11
- data/lib/nokogiri/xml/node_set.rb +9 -7
- data/lib/nokogiri/xml/parse_options.rb +1 -1
- data/lib/nokogiri/xml/pp/node.rb +6 -1
- data/lib/nokogiri/xml/reader.rb +46 -13
- data/lib/nokogiri/xml/relax_ng.rb +57 -20
- data/lib/nokogiri/xml/sax/document.rb +174 -83
- data/lib/nokogiri/xml/sax/parser.rb +115 -41
- data/lib/nokogiri/xml/sax/parser_context.rb +116 -8
- data/lib/nokogiri/xml/sax/push_parser.rb +3 -0
- data/lib/nokogiri/xml/sax.rb +48 -0
- data/lib/nokogiri/xml/schema.rb +112 -45
- data/lib/nokogiri/xml/searchable.rb +6 -8
- data/lib/nokogiri/xml/syntax_error.rb +22 -0
- data/lib/nokogiri/xml.rb +13 -24
- data/lib/nokogiri/xslt.rb +3 -9
- data/lib/xsd/xmlparser/nokogiri.rb +3 -4
- metadata +8 -4
- 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; /*
|
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; /*
|
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; /*
|
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
|
-
|
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; /*
|
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; /*
|
232
|
-
int token; /*
|
217
|
+
xmlParserInputState instate; /* push parser state */
|
218
|
+
int token; /* unused */
|
233
219
|
|
234
|
-
char *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; /*
|
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; /*
|
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; /*
|
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
|
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 (
|
1189
|
-
|
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(
|
1196
|
-
|
1190
|
+
xmlParserFindNodeInfoIndex(xmlParserNodeInfoSeqPtr seq,
|
1191
|
+
xmlNodePtr node);
|
1197
1192
|
XMLPUBFUN void
|
1198
1193
|
xmlParserAddNodeInfo (xmlParserCtxtPtr ctxt,
|
1199
|
-
|
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
|
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
|
-
|
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
|
1015
|
+
XMLPUBFUN int
|
1015
1016
|
xmlSetTreeDoc (xmlNodePtr tree,
|
1016
1017
|
xmlDocPtr doc);
|
1017
|
-
XMLPUBFUN
|
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
|
1106
|
+
XMLPUBFUN int
|
1097
1107
|
xmlNodeSetContent (xmlNodePtr cur,
|
1098
1108
|
const xmlChar *content);
|
1099
1109
|
#ifdef LIBXML_TREE_ENABLED
|
1100
|
-
XMLPUBFUN
|
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
|
1115
|
+
XMLPUBFUN int
|
1106
1116
|
xmlNodeAddContent (xmlNodePtr cur,
|
1107
1117
|
const xmlChar *content);
|
1108
|
-
XMLPUBFUN
|
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
|
1137
|
+
XMLPUBFUN int
|
1128
1138
|
xmlNodeSetLang (xmlNodePtr cur,
|
1129
1139
|
const xmlChar *lang);
|
1130
|
-
XMLPUBFUN
|
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
|
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
|
-
|
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
|