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