blob: 2354b8513ca59f67db0a067111ee81ea855f7d25 [file] [log] [blame]
William M. Brack2ad1dff2003-11-15 10:35:20 +00001<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>parser</title><meta name="generator" content="DocBook XSL Stylesheets V1.48"><meta name="generator" content="GTK-Doc V1.1 (XML mode)"><style type="text/css">
Daniel Veillardd4330462003-04-29 12:40:16 +00002 .synopsis, .classsynopsis {
3 background: #eeeeee;
4 border: solid 1px #aaaaaa;
5 padding: 0.5em;
6 }
7 .programlisting {
8 background: #eeeeff;
9 border: solid 1px #aaaaff;
10 padding: 0.5em;
11 }
12 .variablelist {
13 padding: 4px;
14 margin-left: 3em;
15 }
16 .navigation {
17 background: #ffeeee;
18 border: solid 1px #ffaaaa;
19 margin-top: 0.5em;
20 margin-bottom: 0.5em;
21 }
22 .navigation a {
23 color: #770000;
24 }
25 .navigation a:visited {
26 color: #550000;
27 }
28 .navigation .title {
29 font-size: 200%;
30 }
William M. Brack60f394e2003-11-16 06:25:42 +000031 </style><link rel="home" href="index.html" title="Gnome XML Library Reference Manual"><link rel="up" href="ch01.html" title="Libxml Programming Notes"><link rel="previous" href="libxml-threads.html" title="threads"><link rel="next" href="libxml-c14n.html" title="c14n"></head><body text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-threads.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Gnome XML Library Reference Manual</th><td><a accesskey="n" href="libxml-c14n.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry"><a name="libxml-parser"></a><div class="titlepage"></div><div class="refnamediv"><h2>parser</h2><p>parser &#8212; </p></div><div class="refsynopsisdiv"><h2><h1 class="title"><a name="id2642197"></a>Synopsis</h1></h2><pre class="synopsis">
Daniel Veillard35925471999-02-25 08:46:07 +000032
Daniel Veillardd4330462003-04-29 12:40:16 +000033
34
35#define <a href="libxml-parser.html#XML-DEFAULT-VERSION-CAPS">XML_DEFAULT_VERSION</a>
36void (<a href="libxml-parser.html#xmlParserInputDeallocate">*xmlParserInputDeallocate</a>) (<a href="libxml-tree.html#xmlChar">xmlChar</a> *str);
37struct <a href="libxml-parser.html#xmlParserInput">xmlParserInput</a>;
38struct <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a>;
39typedef <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a>;
40struct <a href="libxml-parser.html#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a>;
41typedef <a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a>;
42enum <a href="libxml-parser.html#xmlParserInputState">xmlParserInputState</a>;
43#define <a href="libxml-parser.html#XML-DETECT-IDS-CAPS">XML_DETECT_IDS</a>
44#define <a href="libxml-parser.html#XML-COMPLETE-ATTRS-CAPS">XML_COMPLETE_ATTRS</a>
45#define <a href="libxml-parser.html#XML-SKIP-IDS-CAPS">XML_SKIP_IDS</a>
46struct <a href="libxml-parser.html#xmlParserCtxt">xmlParserCtxt</a>;
47struct <a href="libxml-parser.html#xmlSAXLocator">xmlSAXLocator</a>;
48<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (<a href="libxml-parser.html#resolveEntitySAXFunc">*resolveEntitySAXFunc</a>) (void *ctx,
49 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
50 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);
51void (<a href="libxml-parser.html#internalSubsetSAXFunc">*internalSubsetSAXFunc</a>) (void *ctx,
52 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
53 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
54 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
55void (<a href="libxml-parser.html#externalSubsetSAXFunc">*externalSubsetSAXFunc</a>) (void *ctx,
56 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
57 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
58 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
59<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (<a href="libxml-parser.html#getEntitySAXFunc">*getEntitySAXFunc</a>) (void *ctx,
60 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
61<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (<a href="libxml-parser.html#getParameterEntitySAXFunc">*getParameterEntitySAXFunc</a>) (void *ctx,
62 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
63void (<a href="libxml-parser.html#entityDeclSAXFunc">*entityDeclSAXFunc</a>) (void *ctx,
64 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +000065 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +000066 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
67 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
68 <a href="libxml-tree.html#xmlChar">xmlChar</a> *content);
69void (<a href="libxml-parser.html#notationDeclSAXFunc">*notationDeclSAXFunc</a>) (void *ctx,
70 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
71 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
72 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);
73void (<a href="libxml-parser.html#attributeDeclSAXFunc">*attributeDeclSAXFunc</a>) (void *ctx,
74 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
75 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *fullname,
Daniel Veillard5099ae81999-04-21 20:12:07 +000076 int type,
77 int def,
Daniel Veillardd4330462003-04-29 12:40:16 +000078 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *defaultValue,
79 <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);
80void (<a href="libxml-parser.html#elementDeclSAXFunc">*elementDeclSAXFunc</a>) (void *ctx,
81 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +000082 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +000083 <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);
84void (<a href="libxml-parser.html#unparsedEntityDeclSAXFunc">*unparsedEntityDeclSAXFunc</a>) (void *ctx,
85 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
86 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
87 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
88 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *notationName);
89void (<a href="libxml-parser.html#setDocumentLocatorSAXFunc">*setDocumentLocatorSAXFunc</a>) (void *ctx,
90 <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc);
91void (<a href="libxml-parser.html#startDocumentSAXFunc">*startDocumentSAXFunc</a>) (void *ctx);
92void (<a href="libxml-parser.html#endDocumentSAXFunc">*endDocumentSAXFunc</a>) (void *ctx);
93void (<a href="libxml-parser.html#startElementSAXFunc">*startElementSAXFunc</a>) (void *ctx,
94 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
95 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **atts);
96void (<a href="libxml-parser.html#endElementSAXFunc">*endElementSAXFunc</a>) (void *ctx,
97 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
98void (<a href="libxml-parser.html#attributeSAXFunc">*attributeSAXFunc</a>) (void *ctx,
99 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
100 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
101void (<a href="libxml-parser.html#referenceSAXFunc">*referenceSAXFunc</a>) (void *ctx,
102 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
103void (<a href="libxml-parser.html#charactersSAXFunc">*charactersSAXFunc</a>) (void *ctx,
104 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
Daniel Veillard35925471999-02-25 08:46:07 +0000105 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000106void (<a href="libxml-parser.html#ignorableWhitespaceSAXFunc">*ignorableWhitespaceSAXFunc</a>) (void *ctx,
107 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
Daniel Veillard35925471999-02-25 08:46:07 +0000108 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000109void (<a href="libxml-parser.html#processingInstructionSAXFunc">*processingInstructionSAXFunc</a>) (void *ctx,
110 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *target,
111 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *data);
112void (<a href="libxml-parser.html#commentSAXFunc">*commentSAXFunc</a>) (void *ctx,
113 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
114void (<a href="libxml-parser.html#cdataBlockSAXFunc">*cdataBlockSAXFunc</a>) (void *ctx,
115 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
Daniel Veillardb05deb71999-08-10 19:04:08 +0000116 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000117void (<a href="libxml-parser.html#warningSAXFunc">*warningSAXFunc</a>) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000118 const char *msg,
119 ...);
Daniel Veillardd4330462003-04-29 12:40:16 +0000120void (<a href="libxml-parser.html#errorSAXFunc">*errorSAXFunc</a>) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000121 const char *msg,
122 ...);
Daniel Veillardd4330462003-04-29 12:40:16 +0000123void (<a href="libxml-parser.html#fatalErrorSAXFunc">*fatalErrorSAXFunc</a>) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000124 const char *msg,
125 ...);
Daniel Veillardd4330462003-04-29 12:40:16 +0000126int (<a href="libxml-parser.html#isStandaloneSAXFunc">*isStandaloneSAXFunc</a>) (void *ctx);
127int (<a href="libxml-parser.html#hasInternalSubsetSAXFunc">*hasInternalSubsetSAXFunc</a>) (void *ctx);
128int (<a href="libxml-parser.html#hasExternalSubsetSAXFunc">*hasExternalSubsetSAXFunc</a>) (void *ctx);
William M. Brack2ad1dff2003-11-15 10:35:20 +0000129#define <a href="libxml-parser.html#XML-SAX2-MAGIC-CAPS">XML_SAX2_MAGIC</a>
130void (<a href="libxml-parser.html#startElementNsSAX2Func">*startElementNsSAX2Func</a>) (void *ctx,
131 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *localname,
132 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *prefix,
133 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URI,
134 int nb_namespaces,
135 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **namespaces,
136 int nb_attributes,
137 int nb_defaulted,
138 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **attributes);
139void (<a href="libxml-parser.html#endElementNsSAX2Func">*endElementNsSAX2Func</a>) (void *ctx,
140 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *localname,
141 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *prefix,
142 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URI);
Daniel Veillardd4330462003-04-29 12:40:16 +0000143struct <a href="libxml-parser.html#xmlSAXHandler">xmlSAXHandler</a>;
William M. Brack2ad1dff2003-11-15 10:35:20 +0000144struct <a href="libxml-parser.html#xmlSAXHandlerV1">xmlSAXHandlerV1</a>;
145typedef <a href="libxml-parser.html#xmlSAXHandlerV1Ptr">xmlSAXHandlerV1Ptr</a>;
Daniel Veillardd4330462003-04-29 12:40:16 +0000146<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (<a href="libxml-parser.html#xmlExternalEntityLoader">*xmlExternalEntityLoader</a>)
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000147 (const char *URL,
148 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +0000149 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context);
William M. Brack60f394e2003-11-16 06:25:42 +0000150void <a href="libxml-parser.html#xmlInitParser">xmlInitParser</a> (void);
151void <a href="libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a> (void);
152int <a href="libxml-parser.html#xmlParserInputRead">xmlParserInputRead</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
153 int len);
154int <a href="libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
155 int len);
156<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlStrdup">xmlStrdup</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);
157<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlStrndup">xmlStrndup</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
158 int len);
159<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlCharStrndup">xmlCharStrndup</a> (const char *cur,
160 int len);
161<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlCharStrdup">xmlCharStrdup</a> (const char *cur);
162<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlStrsub">xmlStrsub</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
163 int start,
164 int len);
165const <a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlStrchr">xmlStrchr</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
166 <a href="libxml-tree.html#xmlChar">xmlChar</a> val);
167const <a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlStrstr">xmlStrstr</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
168 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);
169const <a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlStrcasestr">xmlStrcasestr</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
170 <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);
171int <a href="libxml-parser.html#xmlStrcmp">xmlStrcmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
172 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);
173int <a href="libxml-parser.html#xmlStrncmp">xmlStrncmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
174 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
175 int len);
176int <a href="libxml-parser.html#xmlStrcasecmp">xmlStrcasecmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
177 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);
178int <a href="libxml-parser.html#xmlStrncasecmp">xmlStrncasecmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
179 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
180 int len);
181int <a href="libxml-parser.html#xmlStrEqual">xmlStrEqual</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
182 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);
183int <a href="libxml-parser.html#xmlStrQEqual">xmlStrQEqual</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *pref,
184 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
185 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str);
186int <a href="libxml-parser.html#xmlStrlen">xmlStrlen</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str);
187<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlStrcat">xmlStrcat</a> (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
188 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add);
189<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlStrncat">xmlStrncat</a> (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
190 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add,
191 int len);
192int <a href="libxml-parser.html#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml-tree.html#xmlChar">xmlChar</a> *buf,
193 int len,
194 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *msg,
195 ...);
196int <a href="libxml-parser.html#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml-tree.html#xmlChar">xmlChar</a> *buf,
197 int len,
198 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *msg,
199 va_list ap);
200<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlParseDoc">xmlParseDoc</a> (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);
201<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlParseMemory">xmlParseMemory</a> (const char *buffer,
202 int size);
203<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlParseFile">xmlParseFile</a> (const char *filename);
204int <a href="libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a> (int val);
205int <a href="libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a> (int val);
206void <a href="libxml-parser.html#xmlStopParser">xmlStopParser</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
207int <a href="libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a> (int val);
208int <a href="libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a> (int val);
209<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlRecoverDoc">xmlRecoverDoc</a> (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);
210<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a> (const char *buffer,
211 int size);
212<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a> (const char *filename);
213int <a href="libxml-parser.html#xmlParseDocument">xmlParseDocument</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
214int <a href="libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
215<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlSAXParseDoc">xmlSAXParseDoc</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
216 <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
217 int recovery);
218int <a href="libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
219 void *user_data,
220 const char *filename);
221int <a href="libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
222 void *user_data,
223 const char *buffer,
224 int size);
225<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlSAXParseMemory">xmlSAXParseMemory</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
226 const char *buffer,
227 int size,
228 int recovery);
229<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
230 const char *buffer,
231 int size,
232 int recovery,
233 void *data);
234<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlSAXParseFile">xmlSAXParseFile</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
235 const char *filename,
236 int recovery);
237<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlSAXParseFileWithData">xmlSAXParseFileWithData</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
238 const char *filename,
239 int recovery,
240 void *data);
241<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlSAXParseEntity">xmlSAXParseEntity</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
242 const char *filename);
243<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlParseEntity">xmlParseEntity</a> (const char *filename);
244<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="libxml-parser.html#xmlParseDTD">xmlParseDTD</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
245 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
246<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="libxml-parser.html#xmlSAXParseDTD">xmlSAXParseDTD</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
247 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
248 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
249<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> <a href="libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
250 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
251 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
252int <a href="libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
253 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
254 void *user_data,
255 int depth,
256 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
257 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);
258int <a href="libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a>
259 (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
260 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
261 void *user_data,
262 int depth,
263 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
264 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst,
265 int recover);
266int <a href="libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
267 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
268 void *user_data,
269 int depth,
270 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
271 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
272 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);
273int <a href="libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx,
274 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
275 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
276 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);
277<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="libxml-parser.html#xmlNewParserCtxt">xmlNewParserCtxt</a> (void);
278int <a href="libxml-parser.html#xmlInitParserCtxt">xmlInitParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
279void <a href="libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
280void <a href="libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
281void <a href="libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
282 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *buffer,
283 const char *filename);
284<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="libxml-parser.html#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);
285int <a href="libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a> (int *len,
286 const char **result);
287int <a href="libxml-parser.html#xmlGetFeature">xmlGetFeature</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
288 const char *name,
289 void *result);
290int <a href="libxml-parser.html#xmlSetFeature">xmlSetFeature</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
291 const char *name,
292 void *value);
293<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
294 void *user_data,
295 const char *chunk,
296 int size,
297 const char *filename);
298int <a href="libxml-parser.html#xmlParseChunk">xmlParseChunk</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
299 const char *chunk,
300 int size,
301 int terminate);
302<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
303 void *user_data,
304 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
305 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
306 void *ioctx,
307 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
308<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
309 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
310 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
311const <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a>* <a href="libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a>
312 (const <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
313 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);
314void <a href="libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a> (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);
315void <a href="libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a> (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);
316void <a href="libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
317 const <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info);
318void <a href="libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a> (<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> f);
319<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> <a href="libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a>
320 (void);
321<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a> (const char *URL,
322 const char *ID,
323 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
William M. Brack2ad1dff2003-11-15 10:35:20 +0000324enum <a href="libxml-parser.html#xmlParserOption">xmlParserOption</a>;
William M. Brack60f394e2003-11-16 06:25:42 +0000325void <a href="libxml-parser.html#xmlCtxtReset">xmlCtxtReset</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
326int <a href="libxml-parser.html#xmlCtxtResetPush">xmlCtxtResetPush</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
327 const char *chunk,
328 int size,
329 const char *filename,
330 const char *encoding);
331int <a href="libxml-parser.html#xmlCtxtUseOptions">xmlCtxtUseOptions</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
332 int options);
333<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlReadDoc">xmlReadDoc</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
334 const char *URL,
335 const char *encoding,
336 int options);
337<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlReadFile">xmlReadFile</a> (const char *URL,
338 const char *encoding,
339 int options);
340<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlReadMemory">xmlReadMemory</a> (const char *buffer,
341 int size,
342 const char *URL,
343 const char *encoding,
344 int options);
345<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlReadFd">xmlReadFd</a> (int fd,
346 const char *URL,
347 const char *encoding,
348 int options);
349<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlReadIO">xmlReadIO</a> (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
350 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
351 void *ioctx,
352 const char *URL,
353 const char *encoding,
354 int options);
355<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
356 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
357 const char *URL,
358 const char *encoding,
359 int options);
360<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
361 const char *filename,
362 const char *encoding,
363 int options);
364<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlCtxtReadMemory">xmlCtxtReadMemory</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
365 const char *buffer,
366 int size,
367 const char *URL,
368 const char *encoding,
369 int options);
370<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlCtxtReadFd">xmlCtxtReadFd</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
371 int fd,
372 const char *URL,
373 const char *encoding,
374 int options);
375<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlCtxtReadIO">xmlCtxtReadIO</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
376 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
377 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
378 void *ioctx,
379 const char *URL,
380 const char *encoding,
381 int options);
William M. Brack2ad1dff2003-11-15 10:35:20 +0000382</pre></div><div class="refsect1"><h2>Description</h2><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000383
William M. Brack2ad1dff2003-11-15 10:35:20 +0000384</p></div><div class="refsect1"><h2>Details</h2><div class="refsect2"><h3><a name="XML-DEFAULT-VERSION-CAPS"></a>XML_DEFAULT_VERSION</h3><pre class="programlisting">#define XML_DEFAULT_VERSION "1.0"
Daniel Veillardd7cec922003-06-13 12:30:10 +0000385</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000386The default version of XML used: 1.0</p><p>
387
William M. Brack2ad1dff2003-11-15 10:35:20 +0000388</p></div><hr><div class="refsect2"><h3><a name="xmlParserInputDeallocate"></a>xmlParserInputDeallocate ()</h3><pre class="programlisting">void (*xmlParserInputDeallocate) (<a href="libxml-tree.html#xmlChar">xmlChar</a> *str);</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000389Callback for freeing some parser input allocations.</p><p>
390
William M. Brack2ad1dff2003-11-15 10:35:20 +0000391</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td> the string to deallocate
392</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParserInput"></a>struct xmlParserInput</h3><pre class="programlisting">struct xmlParserInput {
393
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000394 /* Input buffer */
395 xmlParserInputBufferPtr buf; /* UTF-8 encoded buffer */
396
397 const char *filename; /* The file analyzed, if any */
Daniel Veillard60087f32001-10-10 09:45:09 +0000398 const char *directory; /* the directory/base of the file */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000399 const xmlChar *base; /* Base of the array to parse */
400 const xmlChar *cur; /* Current char being parsed */
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000401 const xmlChar *end; /* end of the array to parse */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000402 int length; /* length if known */
403 int line; /* Current line */
404 int col; /* Current column */
Daniel Veillardd4330462003-04-29 12:40:16 +0000405 /*
406 * NOTE: consumed is only tested for equality in the parser code,
407 * so even if there is an overflow this should not give troubles
408 * for parsing very large instances.
409 */
410 unsigned long consumed; /* How many xmlChars already consumed */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000411 xmlParserInputDeallocate free; /* function to deallocate the base */
412 const xmlChar *encoding; /* the encoding string for entity */
413 const xmlChar *version; /* the version string for entity */
414 int standalone; /* Was that entity marked standalone */
William M. Brack2ad1dff2003-11-15 10:35:20 +0000415 int id; /* an unique identifier for the entity */
Daniel Veillardd4330462003-04-29 12:40:16 +0000416};
417</pre><p>
418An xmlParserInput is an input flow for the XML processor.
Daniel Veillarde7ead2d2001-08-22 23:44:09 +0000419Each entity parsed is associated an xmlParserInput (except the
420few predefined ones). This is the case both for internal entities
421- in which case the flow is already completely in memory - or
422external entities - in which case we use the buf structure for
Daniel Veillardd4330462003-04-29 12:40:16 +0000423progressive reading and I18N conversions to the internal UTF-8 format.</p><p>
424
William M. Brack2ad1dff2003-11-15 10:35:20 +0000425</p></div><hr><div class="refsect2"><h3><a name="xmlParserNodeInfo"></a>struct xmlParserNodeInfo</h3><pre class="programlisting">struct xmlParserNodeInfo {
426
Daniel Veillard71b656e2000-01-05 14:46:17 +0000427 const struct _xmlNode* node;
Daniel Veillard3bbbe6f2001-05-03 11:15:37 +0000428 /* Position &amp; line # that text that created the node begins &amp; ends on */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000429 unsigned long begin_pos;
430 unsigned long begin_line;
431 unsigned long end_pos;
432 unsigned long end_line;
Daniel Veillardd4330462003-04-29 12:40:16 +0000433};
434</pre><p>
435The parser can be asked to collect Node informations, i.e. at what
Daniel Veillarde7ead2d2001-08-22 23:44:09 +0000436place in the file they were detected.
Daniel Veillardd4330462003-04-29 12:40:16 +0000437NOTE: This is off by default and not very well tested.</p><p>
438
William M. Brack2ad1dff2003-11-15 10:35:20 +0000439</p></div><hr><div class="refsect2"><h3><a name="xmlParserNodeInfoPtr"></a>xmlParserNodeInfoPtr</h3><pre class="programlisting">typedef xmlParserNodeInfo *xmlParserNodeInfoPtr;
Daniel Veillardd7cec922003-06-13 12:30:10 +0000440</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000441
William M. Brack2ad1dff2003-11-15 10:35:20 +0000442</p></div><hr><div class="refsect2"><h3><a name="xmlParserNodeInfoSeq"></a>struct xmlParserNodeInfoSeq</h3><pre class="programlisting">struct xmlParserNodeInfoSeq {
443
Daniel Veillard71b656e2000-01-05 14:46:17 +0000444 unsigned long maximum;
445 unsigned long length;
446 xmlParserNodeInfo* buffer;
Daniel Veillardd4330462003-04-29 12:40:16 +0000447};
448</pre><p>
449
William M. Brack2ad1dff2003-11-15 10:35:20 +0000450</p></div><hr><div class="refsect2"><h3><a name="xmlParserNodeInfoSeqPtr"></a>xmlParserNodeInfoSeqPtr</h3><pre class="programlisting">typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr;
Daniel Veillardd7cec922003-06-13 12:30:10 +0000451</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000452
William M. Brack2ad1dff2003-11-15 10:35:20 +0000453</p></div><hr><div class="refsect2"><h3><a name="xmlParserInputState"></a>enum xmlParserInputState</h3><pre class="programlisting">typedef enum {
Daniel Veillardbe849cf1999-12-28 16:43:59 +0000454 XML_PARSER_EOF = -1, /* nothing is to be parsed */
455 XML_PARSER_START = 0, /* nothing has been parsed */
456 XML_PARSER_MISC, /* Misc* before int subset */
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000457 XML_PARSER_PI, /* Within a processing instruction */
Daniel Veillardbe849cf1999-12-28 16:43:59 +0000458 XML_PARSER_DTD, /* within some DTD content */
459 XML_PARSER_PROLOG, /* Misc* after internal subset */
460 XML_PARSER_COMMENT, /* within a comment */
461 XML_PARSER_START_TAG, /* within a start tag */
462 XML_PARSER_CONTENT, /* within the content */
463 XML_PARSER_CDATA_SECTION, /* within a CDATA section */
464 XML_PARSER_END_TAG, /* within a closing tag */
465 XML_PARSER_ENTITY_DECL, /* within an entity declaration */
466 XML_PARSER_ENTITY_VALUE, /* within an entity value in a decl */
467 XML_PARSER_ATTRIBUTE_VALUE, /* within an attribute value */
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000468 XML_PARSER_SYSTEM_LITERAL, /* within a SYSTEM value */
Daniel Veillard28929b22000-11-13 18:22:49 +0000469 XML_PARSER_EPILOG, /* the Misc* after the last end tag */
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000470 XML_PARSER_IGNORE, /* within an IGNORED section */
471 XML_PARSER_PUBLIC_LITERAL /* within a PUBLIC value */
Daniel Veillardd4330462003-04-29 12:40:16 +0000472} xmlParserInputState;
473</pre><p>
474The parser is now working also as a state based parser.
475The recursive one use the state info for entities processing.</p><p>
476
William M. Brack2ad1dff2003-11-15 10:35:20 +0000477</p></div><hr><div class="refsect2"><h3><a name="XML-DETECT-IDS-CAPS"></a>XML_DETECT_IDS</h3><pre class="programlisting">#define XML_DETECT_IDS 2
Daniel Veillardd7cec922003-06-13 12:30:10 +0000478</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000479Bit in the loadsubset context field to tell to do ID/REFs lookups.
480Use it to initialize xmlLoadExtDtdDefaultValue.</p><p>
481
William M. Brack2ad1dff2003-11-15 10:35:20 +0000482</p></div><hr><div class="refsect2"><h3><a name="XML-COMPLETE-ATTRS-CAPS"></a>XML_COMPLETE_ATTRS</h3><pre class="programlisting">#define XML_COMPLETE_ATTRS 4
Daniel Veillardd7cec922003-06-13 12:30:10 +0000483</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000484Bit in the loadsubset context field to tell to do complete the
Daniel Veillard19274092002-03-25 16:48:03 +0000485elements attributes lists with the ones defaulted from the DTDs.
Daniel Veillardd4330462003-04-29 12:40:16 +0000486Use it to initialize xmlLoadExtDtdDefaultValue.</p><p>
487
William M. Brack2ad1dff2003-11-15 10:35:20 +0000488</p></div><hr><div class="refsect2"><h3><a name="XML-SKIP-IDS-CAPS"></a>XML_SKIP_IDS</h3><pre class="programlisting">#define XML_SKIP_IDS 8
Daniel Veillardd7cec922003-06-13 12:30:10 +0000489</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000490Bit in the loadsubset context field to tell to not do ID/REFs registration.
491Used to initialize xmlLoadExtDtdDefaultValue in some special cases.</p><p>
492
William M. Brack2ad1dff2003-11-15 10:35:20 +0000493</p></div><hr><div class="refsect2"><h3><a name="xmlParserCtxt"></a>struct xmlParserCtxt</h3><pre class="programlisting">struct xmlParserCtxt {
494
Daniel Veillard71b656e2000-01-05 14:46:17 +0000495 struct _xmlSAXHandler *sax; /* The SAX handler */
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000496 void *userData; /* For SAX interface only, used by DOM build */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000497 xmlDocPtr myDoc; /* the document being built */
498 int wellFormed; /* is the document well formed */
499 int replaceEntities; /* shall we replace entities ? */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000500 const xmlChar *version; /* the XML version string */
501 const xmlChar *encoding; /* the declared encoding, if any */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000502 int standalone; /* standalone document */
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000503 int html; /* an HTML(1)/Docbook(2) document */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000504
505 /* Input stream stack */
506 xmlParserInputPtr input; /* Current input stream */
507 int inputNr; /* Number of current input streams */
508 int inputMax; /* Max number of input streams */
509 xmlParserInputPtr *inputTab; /* stack of inputs */
510
511 /* Node analysis stack only used for DOM building */
512 xmlNodePtr node; /* Current parsed Node */
513 int nodeNr; /* Depth of the parsing stack */
514 int nodeMax; /* Max depth of the parsing stack */
515 xmlNodePtr *nodeTab; /* array of nodes */
516
517 int record_info; /* Whether node info should be kept */
518 xmlParserNodeInfoSeq node_seq; /* info about each node parsed */
519
520 int errNo; /* error code */
521
522 int hasExternalSubset; /* reference and external subset */
523 int hasPErefs; /* the internal subset has PE refs */
524 int external; /* are we parsing an external entity */
525
526 int valid; /* is the document valid */
527 int validate; /* shall we try to validate ? */
528 xmlValidCtxt vctxt; /* The validity context */
529
530 xmlParserInputState instate; /* current type of input */
531 int token; /* next char look-ahead */
532
533 char *directory; /* the data directory */
534
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000535 /* Node name stack */
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000536 const xmlChar *name; /* Current parsed Node */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000537 int nameNr; /* Depth of the parsing stack */
538 int nameMax; /* Max depth of the parsing stack */
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000539 const xmlChar * *nameTab; /* array of nodes */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000540
541 long nbChars; /* number of xmlChar processed */
542 long checkIndex; /* used by progressive parsing lookup */
Daniel Veillardf6868712000-01-05 14:58:38 +0000543 int keepBlanks; /* ugly but ... */
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000544 int disableSAX; /* SAX callbacks are disabled */
545 int inSubset; /* Parsing is in int 1/ext 2 subset */
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000546 const xmlChar * intSubName; /* name of subset */
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000547 xmlChar * extSubURI; /* URI of external subset */
548 xmlChar * extSubSystem; /* SYSTEM ID of external subset */
549
550 /* xml:space values */
551 int * space; /* Should the parser preserve spaces */
552 int spaceNr; /* Depth of the parsing stack */
553 int spaceMax; /* Max depth of the parsing stack */
554 int * spaceTab; /* array of space infos */
555
556 int depth; /* to prevent entity substitution loops */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000557 xmlParserInputPtr entity; /* used to check entities boundaries */
558 int charset; /* encoding of the in-memory content
559 actually an xmlCharEncoding */
560 int nodelen; /* Those two fields are there to */
561 int nodemem; /* Speed up large node parsing */
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000562 int pedantic; /* signal pedantic warnings */
563 void *_private; /* For user data, libxml won't touch it */
Daniel Veillardd194dd22001-02-14 10:37:43 +0000564
565 int loadsubset; /* should the external subset be loaded */
Daniel Veillarde7ead2d2001-08-22 23:44:09 +0000566 int linenumbers; /* set line number in element content */
567 void *catalogs; /* document's own catalog */
Daniel Veillardaec63562003-03-23 20:42:17 +0000568 int recovery; /* run in recovery mode */
Daniel Veillardd4330462003-04-29 12:40:16 +0000569 int progressive; /* is this a progressive parsing */
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000570 xmlDictPtr dict; /* dictionnary for the parser */
William M. Brack2ad1dff2003-11-15 10:35:20 +0000571 const xmlChar * *atts; /* array for the attributes callbacks */
572 int maxatts; /* the size of the array */
573 int docdict; /* use strings from dict to build tree */
574
575 /*
576 * pre-interned strings
577 */
578 const xmlChar *str_xml;
579 const xmlChar *str_xmlns;
580 const xmlChar *str_xml_ns;
581
582 /*
583 * Everything below is used only by the new SAX mode
584 */
585 int sax2; /* operating in the new SAX mode */
586 int nsNr; /* the number of inherited namespaces */
587 int nsMax; /* the size of the arrays */
588 const xmlChar * *nsTab; /* the array of prefix/namespace name */
589 int *attallocs; /* which attribute were allocated */
590 void * *pushTab; /* array of data for push */
591 xmlHashTablePtr attsDefault; /* defaulted attributes if any */
592 xmlHashTablePtr attsSpecial; /* non-CDATA attributes if any */
593 int nsWellFormed; /* is the document XML Nanespace okay */
594 int options; /* Extra options */
595
596 /*
597 * Those fields are needed only for treaming parsing so far
598 */
599 int dictNames; /* Use dictionary names for the tree */
600 int freeElemsNr; /* number of freed element nodes */
601 xmlNodePtr freeElems; /* List of freed element nodes */
602 int freeAttrsNr; /* number of freed attributes nodes */
603 xmlAttrPtr freeAttrs; /* List of freed attributes nodes */
604
605 /*
606 * the complete error informations for the last error.
607 */
608 xmlError lastError;
Daniel Veillardd4330462003-04-29 12:40:16 +0000609};
610</pre><p>
611The parser context.
Daniel Veillard19274092002-03-25 16:48:03 +0000612NOTE This doesn't completely define the parser state, the (current ?)
Daniel Veillardaec63562003-03-23 20:42:17 +0000613 design of the parser uses recursive function calls since this allow
614 and easy mapping from the production rules of the specification
615 to the actual code. The drawback is that the actual function call
616 also reflect the parser state. However most of the parsing routines
617 takes as the only argument the parser context pointer, so migrating
Daniel Veillardd4330462003-04-29 12:40:16 +0000618 to a state based parser for progressive parsing shouldn't be too hard.</p><p>
619
William M. Brack2ad1dff2003-11-15 10:35:20 +0000620</p></div><hr><div class="refsect2"><h3><a name="xmlSAXLocator"></a>struct xmlSAXLocator</h3><pre class="programlisting">struct xmlSAXLocator {
621
Daniel Veillard71b656e2000-01-05 14:46:17 +0000622 const xmlChar *(*getPublicId)(void *ctx);
623 const xmlChar *(*getSystemId)(void *ctx);
624 int (*getLineNumber)(void *ctx);
625 int (*getColumnNumber)(void *ctx);
Daniel Veillardd4330462003-04-29 12:40:16 +0000626};
627</pre><p>
628A SAX Locator.</p><p>
629
William M. Brack2ad1dff2003-11-15 10:35:20 +0000630</p></div><hr><div class="refsect2"><h3><a name="resolveEntitySAXFunc"></a>resolveEntitySAXFunc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (*resolveEntitySAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000631 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
632 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);</pre><p>
633Callback:
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000634The entity loader, to control the loading of external entities,
635the application can either:
William M. Brack60f394e2003-11-16 06:25:42 +0000636 - override this <a href="libxml-SAX.html#resolveEntity">resolveEntity</a>() callback in the SAX block
637 - or better use the <a href="libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a>() function to
Daniel Veillardd4330462003-04-29 12:40:16 +0000638 set up it's own entity resolution routine</p><p>
639
William M. Brack2ad1dff2003-11-15 10:35:20 +0000640</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
641</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td> The public ID of the entity
642</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td> The system ID of the entity
643</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the xmlParserInputPtr if inlined or NULL for DOM behaviour.
644</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="internalSubsetSAXFunc"></a>internalSubsetSAXFunc ()</h3><pre class="programlisting">void (*internalSubsetSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000645 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
646 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
647 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
648Callback on internal subset declaration.</p><p>
649
William M. Brack2ad1dff2003-11-15 10:35:20 +0000650</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
651</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> the root element name
652</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td> the external ID
653</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td> the SYSTEM ID (e.g. filename or URL)
654</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="externalSubsetSAXFunc"></a>externalSubsetSAXFunc ()</h3><pre class="programlisting">void (*externalSubsetSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000655 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
656 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
657 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
658Callback on external subset declaration.</p><p>
659
William M. Brack2ad1dff2003-11-15 10:35:20 +0000660</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
661</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> the root element name
662</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td> the external ID
663</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td> the SYSTEM ID (e.g. filename or URL)
664</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="getEntitySAXFunc"></a>getEntitySAXFunc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (*getEntitySAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000665 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
666Get an entity by name.</p><p>
667
William M. Brack2ad1dff2003-11-15 10:35:20 +0000668</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
669</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> The entity name
670</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the xmlEntityPtr if found.
671</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="getParameterEntitySAXFunc"></a>getParameterEntitySAXFunc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (*getParameterEntitySAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000672 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
673Get a parameter entity by name.</p><p>
674
William M. Brack2ad1dff2003-11-15 10:35:20 +0000675</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
676</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> The entity name
677</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the xmlEntityPtr if found.
678</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="entityDeclSAXFunc"></a>entityDeclSAXFunc ()</h3><pre class="programlisting">void (*entityDeclSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000679 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000680 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +0000681 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
682 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
683 <a href="libxml-tree.html#xmlChar">xmlChar</a> *content);</pre><p>
684An entity definition has been parsed.</p><p>
685
William M. Brack2ad1dff2003-11-15 10:35:20 +0000686</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
687</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> the entity name
688</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td> the entity type
689</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td> The public ID of the entity
690</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td> The system ID of the entity
691</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td> the entity value (without processing).
692</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="notationDeclSAXFunc"></a>notationDeclSAXFunc ()</h3><pre class="programlisting">void (*notationDeclSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000693 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
694 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
695 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);</pre><p>
696What to do when a notation declaration has been parsed.</p><p>
697
William M. Brack2ad1dff2003-11-15 10:35:20 +0000698</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
699</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> The name of the notation
700</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td> The public ID of the entity
701</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td> The system ID of the entity
702</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="attributeDeclSAXFunc"></a>attributeDeclSAXFunc ()</h3><pre class="programlisting">void (*attributeDeclSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000703 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
704 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *fullname,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000705 int type,
706 int def,
Daniel Veillardd4330462003-04-29 12:40:16 +0000707 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *defaultValue,
708 <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);</pre><p>
709An attribute definition has been parsed.</p><p>
710
William M. Brack2ad1dff2003-11-15 10:35:20 +0000711</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
712</td></tr><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td> the name of the element
713</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i>:</span></td><td> the attribute name
714</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td> the attribute type
715</td></tr><tr><td><span class="term"><i><tt>def</tt></i>:</span></td><td> the type of default value
716</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i>:</span></td><td> the attribute default value
717</td></tr><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td> the tree of enumerated value set
718</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="elementDeclSAXFunc"></a>elementDeclSAXFunc ()</h3><pre class="programlisting">void (*elementDeclSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000719 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000720 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +0000721 <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);</pre><p>
722An element definition has been parsed.</p><p>
723
William M. Brack2ad1dff2003-11-15 10:35:20 +0000724</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
725</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> the element name
726</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td> the element type
727</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td> the element value tree
728</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="unparsedEntityDeclSAXFunc"></a>unparsedEntityDeclSAXFunc ()</h3><pre class="programlisting">void (*unparsedEntityDeclSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000729 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
730 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
731 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
732 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *notationName);</pre><p>
733What to do when an unparsed entity declaration is parsed.</p><p>
734
William M. Brack2ad1dff2003-11-15 10:35:20 +0000735</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
736</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> The name of the entity
737</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i>:</span></td><td> The public ID of the entity
738</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i>:</span></td><td> The system ID of the entity
739</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i>:</span></td><td> the name of the notation
740</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="setDocumentLocatorSAXFunc"></a>setDocumentLocatorSAXFunc ()</h3><pre class="programlisting">void (*setDocumentLocatorSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000741 <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc);</pre><p>
742Receive the document locator at startup, actually xmlDefaultSAXLocator.
743Everything is available on the context, so this is useless in our case.</p><p>
744
William M. Brack2ad1dff2003-11-15 10:35:20 +0000745</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
746</td></tr><tr><td><span class="term"><i><tt>loc</tt></i>:</span></td><td> A SAX Locator
747</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="startDocumentSAXFunc"></a>startDocumentSAXFunc ()</h3><pre class="programlisting">void (*startDocumentSAXFunc) (void *ctx);</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000748Called when the document start being processed.</p><p>
749
William M. Brack2ad1dff2003-11-15 10:35:20 +0000750</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
751</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="endDocumentSAXFunc"></a>endDocumentSAXFunc ()</h3><pre class="programlisting">void (*endDocumentSAXFunc) (void *ctx);</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000752Called when the document end has been detected.</p><p>
753
William M. Brack2ad1dff2003-11-15 10:35:20 +0000754</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
755</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="startElementSAXFunc"></a>startElementSAXFunc ()</h3><pre class="programlisting">void (*startElementSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000756 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
757 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **atts);</pre><p>
758Called when an opening tag has been processed.</p><p>
759
William M. Brack2ad1dff2003-11-15 10:35:20 +0000760</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
761</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> The element name, including namespace prefix
762</td></tr><tr><td><span class="term"><i><tt>atts</tt></i>:</span></td><td> An array of name/value attributes pairs, NULL terminated
763</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="endElementSAXFunc"></a>endElementSAXFunc ()</h3><pre class="programlisting">void (*endElementSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000764 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
765Called when the end of an element has been detected.</p><p>
766
William M. Brack2ad1dff2003-11-15 10:35:20 +0000767</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
768</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> The element name
769</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="attributeSAXFunc"></a>attributeSAXFunc ()</h3><pre class="programlisting">void (*attributeSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000770 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
771 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
772Handle an attribute that has been read by the parser.
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000773The default handling is to convert the attribute into an
774DOM subtree and past it in a new xmlAttr element added to
Daniel Veillardd4330462003-04-29 12:40:16 +0000775the element.</p><p>
776
William M. Brack2ad1dff2003-11-15 10:35:20 +0000777</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
778</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> The attribute name, including namespace prefix
779</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td> The attribute value
780</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="referenceSAXFunc"></a>referenceSAXFunc ()</h3><pre class="programlisting">void (*referenceSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000781 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
782Called when an entity reference is detected.</p><p>
783
William M. Brack2ad1dff2003-11-15 10:35:20 +0000784</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
785</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> The entity name
786</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="charactersSAXFunc"></a>charactersSAXFunc ()</h3><pre class="programlisting">void (*charactersSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000787 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
788 int len);</pre><p>
789Receiving some chars from the parser.</p><p>
790
William M. Brack2ad1dff2003-11-15 10:35:20 +0000791</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
792</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td> a xmlChar string
793</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the number of xmlChar
794</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="ignorableWhitespaceSAXFunc"></a>ignorableWhitespaceSAXFunc ()</h3><pre class="programlisting">void (*ignorableWhitespaceSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000795 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
796 int len);</pre><p>
797Receiving some ignorable whitespaces from the parser.
798UNUSED: by default the DOM building will use characters.</p><p>
799
William M. Brack2ad1dff2003-11-15 10:35:20 +0000800</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
801</td></tr><tr><td><span class="term"><i><tt>ch</tt></i>:</span></td><td> a xmlChar string
802</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the number of xmlChar
803</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="processingInstructionSAXFunc"></a>processingInstructionSAXFunc ()</h3><pre class="programlisting">void (*processingInstructionSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000804 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *target,
805 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *data);</pre><p>
806A processing instruction has been parsed.</p><p>
807
William M. Brack2ad1dff2003-11-15 10:35:20 +0000808</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
809</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td> the target name
810</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td> the PI data's
811</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="commentSAXFunc"></a>commentSAXFunc ()</h3><pre class="programlisting">void (*commentSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000812 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
813A comment has been parsed.</p><p>
814
William M. Brack2ad1dff2003-11-15 10:35:20 +0000815</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
816</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td> the comment content
817</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="cdataBlockSAXFunc"></a>cdataBlockSAXFunc ()</h3><pre class="programlisting">void (*cdataBlockSAXFunc) (void *ctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000818 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
819 int len);</pre><p>
820Called when a pcdata block has been parsed.</p><p>
821
William M. Brack2ad1dff2003-11-15 10:35:20 +0000822</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
823</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td> The pcdata content
824</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the block length
825</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="warningSAXFunc"></a>warningSAXFunc ()</h3><pre class="programlisting">void (*warningSAXFunc) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000826 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000827 ...);</pre><p>
828Display and format a warning messages, callback.</p><p>
829
William M. Brack2ad1dff2003-11-15 10:35:20 +0000830</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> an XML parser context
831</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td> the message to display/transmit
832</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td> extra parameters for the message display
833</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="errorSAXFunc"></a>errorSAXFunc ()</h3><pre class="programlisting">void (*errorSAXFunc) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000834 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000835 ...);</pre><p>
836Display and format an error messages, callback.</p><p>
837
William M. Brack2ad1dff2003-11-15 10:35:20 +0000838</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> an XML parser context
839</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td> the message to display/transmit
840</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td> extra parameters for the message display
841</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="fatalErrorSAXFunc"></a>fatalErrorSAXFunc ()</h3><pre class="programlisting">void (*fatalErrorSAXFunc) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000842 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000843 ...);</pre><p>
844Display and format fatal error messages, callback.
William M. Brack2ad1dff2003-11-15 10:35:20 +0000845Note: so far <GTKDOCLINK HREF="fatalError">fatalError</GTKDOCLINK>() SAX callbacks are not used, <GTKDOCLINK HREF="error">error</GTKDOCLINK>()
Daniel Veillardd4330462003-04-29 12:40:16 +0000846 get all the callbacks for errors.</p><p>
847
William M. Brack2ad1dff2003-11-15 10:35:20 +0000848</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> an XML parser context
849</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td> the message to display/transmit
850</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td> extra parameters for the message display
851</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="isStandaloneSAXFunc"></a>isStandaloneSAXFunc ()</h3><pre class="programlisting">int (*isStandaloneSAXFunc) (void *ctx);</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000852Is this document tagged standalone?</p><p>
853
William M. Brack2ad1dff2003-11-15 10:35:20 +0000854</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
855</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>1 if true
856</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="hasInternalSubsetSAXFunc"></a>hasInternalSubsetSAXFunc ()</h3><pre class="programlisting">int (*hasInternalSubsetSAXFunc) (void *ctx);</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000857Does this document has an internal subset.</p><p>
858
William M. Brack2ad1dff2003-11-15 10:35:20 +0000859</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
860</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>1 if true
861</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="hasExternalSubsetSAXFunc"></a>hasExternalSubsetSAXFunc ()</h3><pre class="programlisting">int (*hasExternalSubsetSAXFunc) (void *ctx);</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000862Does this document has an external subset?</p><p>
863
William M. Brack2ad1dff2003-11-15 10:35:20 +0000864</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
865</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>1 if true
866</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="XML-SAX2-MAGIC-CAPS"></a>XML_SAX2_MAGIC</h3><pre class="programlisting">#define XML_SAX2_MAGIC 0xDEEDBEAF
867</pre><p>
868Special constant found in SAX2 blocks initialized fields</p><p>
869
870</p></div><hr><div class="refsect2"><h3><a name="startElementNsSAX2Func"></a>startElementNsSAX2Func ()</h3><pre class="programlisting">void (*startElementNsSAX2Func) (void *ctx,
871 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *localname,
872 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *prefix,
873 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URI,
874 int nb_namespaces,
875 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **namespaces,
876 int nb_attributes,
877 int nb_defaulted,
878 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **attributes);</pre><p>
879SAX2 callback when an element start has been detected by the parser.
880It provides the namespace informations for the element, as well as
881the new namespace declarations on the element.</p><p>
882
883</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
884</td></tr><tr><td><span class="term"><i><tt>localname</tt></i>:</span></td><td> the local name of the element
885</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td> the element namespace prefix if available
886</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td> the element namespace name if available
887</td></tr><tr><td><span class="term"><i><tt>nb_namespaces</tt></i>:</span></td><td> number of namespace definitions on that node
888</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td> pointer to the array of prefix/URI pairs namespace definitions
889</td></tr><tr><td><span class="term"><i><tt>nb_attributes</tt></i>:</span></td><td> the number of attributes on that node
890</td></tr><tr><td><span class="term"><i><tt>nb_defaulted</tt></i>:</span></td><td> the number of defaulted attributes. The defaulted
891 ones are at the end of the array
892</td></tr><tr><td><span class="term"><i><tt>attributes</tt></i>:</span></td><td> pointer to the array of (localname/prefix/URI/value/end)
893 attribute values.
894</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="endElementNsSAX2Func"></a>endElementNsSAX2Func ()</h3><pre class="programlisting">void (*endElementNsSAX2Func) (void *ctx,
895 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *localname,
896 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *prefix,
897 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URI);</pre><p>
898SAX2 callback when an element end has been detected by the parser.
899It provides the namespace informations for the element.</p><p>
900
901</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the user data (XML parser context)
902</td></tr><tr><td><span class="term"><i><tt>localname</tt></i>:</span></td><td> the local name of the element
903</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td> the element namespace prefix if available
904</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td> the element namespace name if available
905</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSAXHandler"></a>struct xmlSAXHandler</h3><pre class="programlisting">struct xmlSAXHandler {
906
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000907 internalSubsetSAXFunc internalSubset;
908 isStandaloneSAXFunc isStandalone;
909 hasInternalSubsetSAXFunc hasInternalSubset;
910 hasExternalSubsetSAXFunc hasExternalSubset;
911 resolveEntitySAXFunc resolveEntity;
912 getEntitySAXFunc getEntity;
913 entityDeclSAXFunc entityDecl;
914 notationDeclSAXFunc notationDecl;
915 attributeDeclSAXFunc attributeDecl;
916 elementDeclSAXFunc elementDecl;
917 unparsedEntityDeclSAXFunc unparsedEntityDecl;
918 setDocumentLocatorSAXFunc setDocumentLocator;
919 startDocumentSAXFunc startDocument;
920 endDocumentSAXFunc endDocument;
921 startElementSAXFunc startElement;
922 endElementSAXFunc endElement;
923 referenceSAXFunc reference;
924 charactersSAXFunc characters;
925 ignorableWhitespaceSAXFunc ignorableWhitespace;
926 processingInstructionSAXFunc processingInstruction;
927 commentSAXFunc comment;
928 warningSAXFunc warning;
929 errorSAXFunc error;
Daniel Veillardaec63562003-03-23 20:42:17 +0000930 fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000931 getParameterEntitySAXFunc getParameterEntity;
932 cdataBlockSAXFunc cdataBlock;
933 externalSubsetSAXFunc externalSubset;
William M. Brack2ad1dff2003-11-15 10:35:20 +0000934 unsigned int initialized;
935 /* The following fields are extensions available only on version 2 */
936 void *_private;
937 startElementNsSAX2Func startElementNs;
938 endElementNsSAX2Func endElementNs;
939 xmlStructuredErrorFunc serror;
Daniel Veillardd4330462003-04-29 12:40:16 +0000940};
941</pre><p>
942A SAX handler is bunch of callbacks called by the parser when processing
943of the input generate data or structure informations.</p><p>
944
William M. Brack2ad1dff2003-11-15 10:35:20 +0000945</p></div><hr><div class="refsect2"><h3><a name="xmlSAXHandlerV1"></a>struct xmlSAXHandlerV1</h3><pre class="programlisting">struct xmlSAXHandlerV1 {
946
947 internalSubsetSAXFunc internalSubset;
948 isStandaloneSAXFunc isStandalone;
949 hasInternalSubsetSAXFunc hasInternalSubset;
950 hasExternalSubsetSAXFunc hasExternalSubset;
951 resolveEntitySAXFunc resolveEntity;
952 getEntitySAXFunc getEntity;
953 entityDeclSAXFunc entityDecl;
954 notationDeclSAXFunc notationDecl;
955 attributeDeclSAXFunc attributeDecl;
956 elementDeclSAXFunc elementDecl;
957 unparsedEntityDeclSAXFunc unparsedEntityDecl;
958 setDocumentLocatorSAXFunc setDocumentLocator;
959 startDocumentSAXFunc startDocument;
960 endDocumentSAXFunc endDocument;
961 startElementSAXFunc startElement;
962 endElementSAXFunc endElement;
963 referenceSAXFunc reference;
964 charactersSAXFunc characters;
965 ignorableWhitespaceSAXFunc ignorableWhitespace;
966 processingInstructionSAXFunc processingInstruction;
967 commentSAXFunc comment;
968 warningSAXFunc warning;
969 errorSAXFunc error;
970 fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
971 getParameterEntitySAXFunc getParameterEntity;
972 cdataBlockSAXFunc cdataBlock;
973 externalSubsetSAXFunc externalSubset;
974 unsigned int initialized;
975};
976</pre><p>
977
978</p></div><hr><div class="refsect2"><h3><a name="xmlSAXHandlerV1Ptr"></a>xmlSAXHandlerV1Ptr</h3><pre class="programlisting">typedef xmlSAXHandlerV1 *xmlSAXHandlerV1Ptr;
979</pre><p>
980
981</p></div><hr><div class="refsect2"><h3><a name="xmlExternalEntityLoader"></a>xmlExternalEntityLoader ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (*xmlExternalEntityLoader)
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000982 (const char *URL,
983 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +0000984 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context);</pre><p>
985External entity loaders types.</p><p>
986
William M. Brack2ad1dff2003-11-15 10:35:20 +0000987</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> The System ID of the resource requested
988</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td> The Public ID of the resource requested
989</td></tr><tr><td><span class="term"><i><tt>context</tt></i>:</span></td><td> the XML parser context
990</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the entity input parser.
William M. Brack60f394e2003-11-16 06:25:42 +0000991</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlInitParser"></a>xmlInitParser ()</h3><pre class="programlisting">void xmlInitParser (void);</pre><p>
992Initialization function for the XML parser.
993This is not reentrant. Call once before processing in case of
994use in multithreaded programs.</p><p>
995
996</p></div><hr><div class="refsect2"><h3><a name="xmlCleanupParser"></a>xmlCleanupParser ()</h3><pre class="programlisting">void xmlCleanupParser (void);</pre><p>
997Cleanup function for the XML library. It tries to reclaim all
998parsing related global memory allocated for the library processing.
999It doesn't deallocate any document related memory. Calling this
1000function should not prevent reusing the library but one should
1001call <a href="libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a>() only when the process has
1002finished using the library or XML document built with it.</p><p>
1003
1004</p></div><hr><div class="refsect2"><h3><a name="xmlParserInputRead"></a>xmlParserInputRead ()</h3><pre class="programlisting">int xmlParserInputRead (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
1005 int len);</pre><p>
1006This function refresh the input for the parser. It doesn't try to
1007preserve pointers to the input buffer, and discard already read data</p><p>
1008
1009</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td> an XML parser input
1010</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> an indicative size for the lookahead
1011</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the number of xmlChars read, or -1 in case of error, 0 indicate the
1012end of this entity
1013</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParserInputGrow"></a>xmlParserInputGrow ()</h3><pre class="programlisting">int xmlParserInputGrow (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
1014 int len);</pre><p>
1015This function increase the input for the parser. It tries to
1016preserve pointers to the input buffer, and keep already read data</p><p>
1017
1018</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td> an XML parser input
1019</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> an indicative size for the lookahead
1020</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the number of xmlChars read, or -1 in case of error, 0 indicate the
1021end of this entity
1022</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrdup"></a>xmlStrdup ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrdup (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);</pre><p>
1023a strdup for array of xmlChar's. Since they are supposed to be
1024encoded in UTF-8 or an encoding with 8bit based chars, we assume
1025a termination mark of '0'.</p><p>
1026
1027</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> the input xmlChar *
1028</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>a new xmlChar * or NULL
1029</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrndup"></a>xmlStrndup ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrndup (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
1030 int len);</pre><p>
1031a strndup for array of xmlChar's</p><p>
1032
1033</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> the input xmlChar *
1034</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the len of <i><tt>cur</tt></i>
1035</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>a new xmlChar * or NULL
1036</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCharStrndup"></a>xmlCharStrndup ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlCharStrndup (const char *cur,
1037 int len);</pre><p>
1038a strndup for char's to xmlChar's</p><p>
1039
1040</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> the input char *
1041</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the len of <i><tt>cur</tt></i>
1042</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>a new xmlChar * or NULL
1043</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCharStrdup"></a>xmlCharStrdup ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlCharStrdup (const char *cur);</pre><p>
1044a strdup for char's to xmlChar's</p><p>
1045
1046</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> the input char *
1047</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>a new xmlChar * or NULL
1048</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrsub"></a>xmlStrsub ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrsub (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
1049 int start,
1050 int len);</pre><p>
1051Extract a substring of a given string</p><p>
1052
1053</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td> the xmlChar * array (haystack)
1054</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td> the index of the first char (zero based)
1055</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the length of the substring
1056</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the xmlChar * for the first occurrence or NULL.
1057</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrchr"></a>xmlStrchr ()</h3><pre class="programlisting">const <a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrchr (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
1058 <a href="libxml-tree.html#xmlChar">xmlChar</a> val);</pre><p>
1059a strchr for xmlChar's</p><p>
1060
1061</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td> the xmlChar * array
1062</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td> the xmlChar to search
1063</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the xmlChar * for the first occurrence or NULL.
1064</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrstr"></a>xmlStrstr ()</h3><pre class="programlisting">const <a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrstr (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
1065 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);</pre><p>
1066a strstr for xmlChar's</p><p>
1067
1068</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td> the xmlChar * array (haystack)
1069</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td> the xmlChar to search (needle)
1070</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the xmlChar * for the first occurrence or NULL.
1071</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrcasestr"></a>xmlStrcasestr ()</h3><pre class="programlisting">const <a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrcasestr (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
1072 <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);</pre><p>
1073a case-ignoring strstr for xmlChar's</p><p>
1074
1075</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td> the xmlChar * array (haystack)
1076</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td> the xmlChar to search (needle)
1077</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the xmlChar * for the first occurrence or NULL.
1078</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrcmp"></a>xmlStrcmp ()</h3><pre class="programlisting">int xmlStrcmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
1079 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
1080a strcmp for xmlChar's</p><p>
1081
1082</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td> the first xmlChar *
1083</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td> the second xmlChar *
1084</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the integer result of the comparison
1085</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrncmp"></a>xmlStrncmp ()</h3><pre class="programlisting">int xmlStrncmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
1086 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
1087 int len);</pre><p>
1088a strncmp for xmlChar's</p><p>
1089
1090</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td> the first xmlChar *
1091</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td> the second xmlChar *
1092</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the max comparison length
1093</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the integer result of the comparison
1094</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrcasecmp"></a>xmlStrcasecmp ()</h3><pre class="programlisting">int xmlStrcasecmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
1095 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
1096a strcasecmp for xmlChar's</p><p>
1097
1098</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td> the first xmlChar *
1099</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td> the second xmlChar *
1100</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the integer result of the comparison
1101</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrncasecmp"></a>xmlStrncasecmp ()</h3><pre class="programlisting">int xmlStrncasecmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
1102 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
1103 int len);</pre><p>
1104a strncasecmp for xmlChar's</p><p>
1105
1106</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td> the first xmlChar *
1107</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td> the second xmlChar *
1108</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the max comparison length
1109</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the integer result of the comparison
1110</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrEqual"></a>xmlStrEqual ()</h3><pre class="programlisting">int xmlStrEqual (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
1111 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
1112Check if both string are equal of have same content
1113Should be a bit more readable and faster than <a href="libxml-parser.html#xmlStrEqual">xmlStrEqual</a>()</p><p>
1114
1115</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td> the first xmlChar *
1116</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td> the second xmlChar *
1117</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>1 if they are equal, 0 if they are different
1118</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrQEqual"></a>xmlStrQEqual ()</h3><pre class="programlisting">int xmlStrQEqual (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *pref,
1119 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
1120 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str);</pre><p>
1121Check if a QName is Equal to a given string</p><p>
1122
1123</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td> the prefix of the QName
1124</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> the localname of the QName
1125</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td> the second xmlChar *
1126</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>1 if they are equal, 0 if they are different
1127</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrlen"></a>xmlStrlen ()</h3><pre class="programlisting">int xmlStrlen (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str);</pre><p>
1128length of a xmlChar's string</p><p>
1129
1130</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td> the xmlChar * array
1131</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the number of xmlChar contained in the ARRAY.
1132</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrcat"></a>xmlStrcat ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrcat (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
1133 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add);</pre><p>
1134a strcat for array of xmlChar's. Since they are supposed to be
1135encoded in UTF-8 or an encoding with 8bit based chars, we assume
1136a termination mark of '0'.</p><p>
1137
1138</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> the original xmlChar * array
1139</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td> the xmlChar * array added
1140</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>a new xmlChar * containing the concatenated string.
1141</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrncat"></a>xmlStrncat ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrncat (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
1142 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add,
1143 int len);</pre><p>
1144a strncat for array of xmlChar's, it will extend <i><tt>cur</tt></i> with the len
1145first bytes of <i><tt>add</tt></i>.</p><p>
1146
1147</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> the original xmlChar * array
1148</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td> the xmlChar * array added
1149</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the length of <i><tt>add</tt></i>
1150</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>a new xmlChar *, the original <i><tt>cur</tt></i> is reallocated if needed
1151and should not be freed
1152</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrPrintf"></a>xmlStrPrintf ()</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml-tree.html#xmlChar">xmlChar</a> *buf,
1153 int len,
1154 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *msg,
1155 ...);</pre><p>
1156Formats <i><tt>msg</tt></i> and places result into <i><tt>buf</tt></i>.</p><p>
1157
1158</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td> the result buffer.
1159</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the result buffer length.
1160</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td> the message with printf formatting.
1161</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td> extra parameters for the message.
1162</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the number of characters written to <i><tt>buf</tt></i> or -1 if an error occurs.
1163</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStrVPrintf"></a>xmlStrVPrintf ()</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml-tree.html#xmlChar">xmlChar</a> *buf,
1164 int len,
1165 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *msg,
1166 va_list ap);</pre><p>
1167Formats <i><tt>msg</tt></i> and places result into <i><tt>buf</tt></i>.</p><p>
1168
1169</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td> the result buffer.
1170</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the result buffer length.
1171</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td> the message with printf formatting.
1172</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td> extra parameters for the message.
1173</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the number of characters written to <i><tt>buf</tt></i> or -1 if an error occurs.
1174</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseDoc"></a>xmlParseDoc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseDoc (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);</pre><p>
1175parse an XML in-memory document and build a tree.</p><p>
1176
1177</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> a pointer to an array of xmlChar
1178</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1179</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseMemory"></a>xmlParseMemory ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseMemory (const char *buffer,
1180 int size);</pre><p>
1181parse an XML in-memory block and build a tree.</p><p>
1182
1183</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td> an pointer to a char array
1184</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td> the size of the array
1185</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1186</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseFile"></a>xmlParseFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseFile (const char *filename);</pre><p>
1187parse an XML file and build a tree. Automatic support for ZLIB/Compress
1188compressed document is provided by default if found at compile-time.</p><p>
1189
1190</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> the filename
1191</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree if the file was wellformed,
1192NULL otherwise.
1193</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSubstituteEntitiesDefault"></a>xmlSubstituteEntitiesDefault ()</h3><pre class="programlisting">int xmlSubstituteEntitiesDefault (int val);</pre><p>
1194Set and return the previous value for default entity support.
1195Initially the parser always keep entity references instead of substituting
1196entity values in the output. This function has to be used to change the
1197default parser behavior
1198SAX::<GTKDOCLINK HREF="substituteEntities">substituteEntities</GTKDOCLINK>() has to be used for changing that on a file by
1199file basis.</p><p>
1200
1201</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td> int 0 or 1
1202</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the last value for 0 for no substitution, 1 for substitution.
1203</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlKeepBlanksDefault"></a>xmlKeepBlanksDefault ()</h3><pre class="programlisting">int xmlKeepBlanksDefault (int val);</pre><p>
1204Set and return the previous value for default blanks text nodes support.
1205The 1.x version of the parser used an heuristic to try to detect
1206ignorable white spaces. As a result the SAX callback was generating
1207<a href="libxml-SAX2.html#xmlSAX2IgnorableWhitespace">xmlSAX2IgnorableWhitespace</a>() callbacks instead of <a href="libxml-SAX.html#characters">characters</a>() one, and when
1208using the DOM output text nodes containing those blanks were not generated.
1209The 2.x and later version will switch to the XML standard way and
1210<a href="libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a>() are only generated when running the parser in
1211validating mode and when the current element doesn't allow CDATA or
1212mixed content.
1213This function is provided as a way to force the standard behavior
1214on 1.X libs and to switch back to the old mode for compatibility when
1215running 1.X client code on 2.X . Upgrade of 1.X code should be done
1216by using <a href="libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a>() commodity function to detect the "empty"
1217nodes generated.
1218This value also affect autogeneration of indentation when saving code
1219if blanks sections are kept, indentation is not generated.</p><p>
1220
1221</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td> int 0 or 1
1222</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the last value for 0 for no substitution, 1 for substitution.
1223</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlStopParser"></a>xmlStopParser ()</h3><pre class="programlisting">void xmlStopParser (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1224Blocks further parser processing</p><p>
1225
1226</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1227</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlPedanticParserDefault"></a>xmlPedanticParserDefault ()</h3><pre class="programlisting">int xmlPedanticParserDefault (int val);</pre><p>
1228Set and return the previous value for enabling pedantic warnings.</p><p>
1229
1230</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td> int 0 or 1
1231</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the last value for 0 for no substitution, 1 for substitution.
1232</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlLineNumbersDefault"></a>xmlLineNumbersDefault ()</h3><pre class="programlisting">int xmlLineNumbersDefault (int val);</pre><p>
1233Set and return the previous value for enabling line numbers in elements
1234contents. This may break on old application and is turned off by default.</p><p>
1235
1236</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td> int 0 or 1
1237</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the last value for 0 for no substitution, 1 for substitution.
1238</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlRecoverDoc"></a>xmlRecoverDoc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverDoc (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);</pre><p>
1239parse an XML in-memory document and build a tree.
1240In the case the document is not Well Formed, a tree is built anyway</p><p>
1241
1242</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> a pointer to an array of xmlChar
1243</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1244</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlRecoverMemory"></a>xmlRecoverMemory ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverMemory (const char *buffer,
1245 int size);</pre><p>
1246parse an XML in-memory block and build a tree.
1247In the case the document is not Well Formed, a tree is built anyway</p><p>
1248
1249</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td> an pointer to a char array
1250</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td> the size of the array
1251</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1252</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlRecoverFile"></a>xmlRecoverFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverFile (const char *filename);</pre><p>
1253parse an XML file and build a tree. Automatic support for ZLIB/Compress
1254compressed document is provided by default if found at compile-time.
1255In the case the document is not Well Formed, a tree is built anyway</p><p>
1256
1257</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> the filename
1258</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1259</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseDocument"></a>xmlParseDocument ()</h3><pre class="programlisting">int xmlParseDocument (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1260parse an XML document (and build a tree if using the standard SAX
1261interface).
1262</p><p>
1263[1] document ::= prolog element Misc*
1264</p><p>
1265[22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</p><p>
1266
1267</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1268</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0, -1 in case of error. the parser context is augmented
1269 as a result of the parsing.
1270</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseExtParsedEnt"></a>xmlParseExtParsedEnt ()</h3><pre class="programlisting">int xmlParseExtParsedEnt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1271parse a general parsed entity
1272An external general parsed entity is well-formed if it matches the
1273production labeled extParsedEnt.
1274</p><p>
1275[78] extParsedEnt ::= TextDecl? content</p><p>
1276
1277</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1278</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0, -1 in case of error. the parser context is augmented
1279 as a result of the parsing.
1280</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSAXParseDoc"></a>xmlSAXParseDoc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseDoc (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1281 <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
1282 int recovery);</pre><p>
1283parse an XML in-memory document and build a tree.
1284It use the given SAX function block to handle the parsing callback.
1285If sax is NULL, fallback to the default DOM tree building routines.</p><p>
1286
1287</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler block
1288</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> a pointer to an array of xmlChar
1289</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td> work in recovery mode, i.e. tries to read no Well Formed
1290 documents
1291</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1292</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSAXUserParseFile"></a>xmlSAXUserParseFile ()</h3><pre class="programlisting">int xmlSAXUserParseFile (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1293 void *user_data,
1294 const char *filename);</pre><p>
1295parse an XML file and call the given SAX handler routines.
1296Automatic support for ZLIB/Compress compressed document is provided</p><p>
1297
1298</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> a SAX handler
1299</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td> The user data returned on SAX callbacks
1300</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> a file name
1301</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0 in case of success or a error number otherwise
1302</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSAXUserParseMemory"></a>xmlSAXUserParseMemory ()</h3><pre class="programlisting">int xmlSAXUserParseMemory (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1303 void *user_data,
1304 const char *buffer,
1305 int size);</pre><p>
1306A better SAX parsing routine.
1307parse an XML in-memory buffer and call the given SAX handler routines.</p><p>
1308
1309</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> a SAX handler
1310</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td> The user data returned on SAX callbacks
1311</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td> an in-memory XML document input
1312</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td> the length of the XML document in bytes
1313</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0 in case of success or a error number otherwise
1314</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSAXParseMemory"></a>xmlSAXParseMemory ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseMemory (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1315 const char *buffer,
1316 int size,
1317 int recovery);</pre><p>
1318parse an XML in-memory block and use the given SAX function block
1319to handle the parsing callback. If sax is NULL, fallback to the default
1320DOM tree building routines.</p><p>
1321
1322</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler block
1323</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td> an pointer to a char array
1324</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td> the size of the array
1325</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td> work in recovery mode, i.e. tries to read not Well Formed
1326 documents
1327</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1328</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSAXParseMemoryWithData"></a>xmlSAXParseMemoryWithData ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseMemoryWithData (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1329 const char *buffer,
1330 int size,
1331 int recovery,
1332 void *data);</pre><p>
1333parse an XML in-memory block and use the given SAX function block
1334to handle the parsing callback. If sax is NULL, fallback to the default
1335DOM tree building routines.
1336</p><p>
1337User data (void *) is stored within the parser context in the
1338context's _private member, so it is available nearly everywhere in libxml</p><p>
1339
1340</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler block
1341</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td> an pointer to a char array
1342</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td> the size of the array
1343</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td> work in recovery mode, i.e. tries to read no Well Formed
1344 documents
1345</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td> the userdata
1346</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1347</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSAXParseFile"></a>xmlSAXParseFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseFile (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1348 const char *filename,
1349 int recovery);</pre><p>
1350parse an XML file and build a tree. Automatic support for ZLIB/Compress
1351compressed document is provided by default if found at compile-time.
1352It use the given SAX function block to handle the parsing callback.
1353If sax is NULL, fallback to the default DOM tree building routines.</p><p>
1354
1355</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler block
1356</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> the filename
1357</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td> work in recovery mode, i.e. tries to read no Well Formed
1358 documents
1359</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1360</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSAXParseFileWithData"></a>xmlSAXParseFileWithData ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseFileWithData (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1361 const char *filename,
1362 int recovery,
1363 void *data);</pre><p>
1364parse an XML file and build a tree. Automatic support for ZLIB/Compress
1365compressed document is provided by default if found at compile-time.
1366It use the given SAX function block to handle the parsing callback.
1367If sax is NULL, fallback to the default DOM tree building routines.
1368</p><p>
1369User data (void *) is stored within the parser context in the
1370context's _private member, so it is available nearly everywhere in libxml</p><p>
1371
1372</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler block
1373</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> the filename
1374</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i>:</span></td><td> work in recovery mode, i.e. tries to read no Well Formed
1375 documents
1376</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td> the userdata
1377</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1378</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSAXParseEntity"></a>xmlSAXParseEntity ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseEntity (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1379 const char *filename);</pre><p>
1380parse an XML external entity out of context and build a tree.
1381It use the given SAX function block to handle the parsing callback.
1382If sax is NULL, fallback to the default DOM tree building routines.
1383</p><p>
1384[78] extParsedEnt ::= TextDecl? content
1385</p><p>
1386This correspond to a "Well Balanced" chunk</p><p>
1387
1388</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler block
1389</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> the filename
1390</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1391</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseEntity"></a>xmlParseEntity ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseEntity (const char *filename);</pre><p>
1392parse an XML external entity out of context and build a tree.
1393</p><p>
1394[78] extParsedEnt ::= TextDecl? content
1395</p><p>
1396This correspond to a "Well Balanced" chunk</p><p>
1397
1398</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> the filename
1399</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1400</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseDTD"></a>xmlParseDTD ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlParseDTD (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
1401 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
1402Load and parse an external subset.</p><p>
1403
1404</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td> a NAME* containing the External ID of the DTD
1405</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td> a NAME* containing the URL to the DTD
1406</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting xmlDtdPtr or NULL in case of error.
1407</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSAXParseDTD"></a>xmlSAXParseDTD ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlSAXParseDTD (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1408 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
1409 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
1410Load and parse an external subset.</p><p>
1411
1412</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler block
1413</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td> a NAME* containing the External ID of the DTD
1414</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td> a NAME* containing the URL to the DTD
1415</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting xmlDtdPtr or NULL in case of error.
1416</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlIOParseDTD"></a>xmlIOParseDTD ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlIOParseDTD (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1417 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
1418 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1419Load and parse a DTD</p><p>
1420
1421</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler block or NULL
1422</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td> an Input Buffer
1423</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td> the charset encoding if known
1424</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting xmlDtdPtr or NULL in case of error.
1425<i><tt>input</tt></i> will be freed at parsing end.
1426</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseBalancedChunkMemory"></a>xmlParseBalancedChunkMemory ()</h3><pre class="programlisting">int xmlParseBalancedChunkMemory (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
1427 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1428 void *user_data,
1429 int depth,
1430 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
1431 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1432Parse a well-balanced chunk of an XML document
1433called by the parser
1434The allowed sequence for the Well Balanced Chunk is the one defined by
1435the content production in the XML grammar:
1436</p><p>
1437[43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p><p>
1438
1439</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td> the document the chunk pertains to
1440</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler bloc (possibly NULL)
1441</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td> The user data returned on SAX callbacks (possibly NULL)
1442</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td> Used for loop detection, use 0
1443</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td> the input string in UTF8 or ISO-Latin (zero terminated)
1444</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td> the return value for the set of parsed nodes
1445</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0 if the chunk is well balanced, -1 in case of args problem and
1446 the parser error code otherwise
1447</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseBalancedChunkMemoryRecover"></a>xmlParseBalancedChunkMemoryRecover ()</h3><pre class="programlisting">int xmlParseBalancedChunkMemoryRecover
1448 (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
1449 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1450 void *user_data,
1451 int depth,
1452 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
1453 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst,
1454 int recover);</pre><p>
1455Parse a well-balanced chunk of an XML document
1456called by the parser
1457The allowed sequence for the Well Balanced Chunk is the one defined by
1458the content production in the XML grammar:
1459</p><p>
1460[43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p><p>
1461
1462</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td> the document the chunk pertains to
1463</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler bloc (possibly NULL)
1464</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td> The user data returned on SAX callbacks (possibly NULL)
1465</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td> Used for loop detection, use 0
1466</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td> the input string in UTF8 or ISO-Latin (zero terminated)
1467</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td> the return value for the set of parsed nodes
1468</td></tr><tr><td><span class="term"><i><tt>recover</tt></i>:</span></td><td> return nodes even if the data is broken (use 0)
1469</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0 if the chunk is well balanced, -1 in case of args problem and
1470 the parser error code otherwise
1471
1472In case recover is set to 1, the nodelist will not be empty even if
1473the parsed chunk is not well balanced.
1474</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseExternalEntity"></a>xmlParseExternalEntity ()</h3><pre class="programlisting">int xmlParseExternalEntity (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
1475 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1476 void *user_data,
1477 int depth,
1478 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
1479 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
1480 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1481Parse an external general entity
1482An external general parsed entity is well-formed if it matches the
1483production labeled extParsedEnt.
1484</p><p>
1485[78] extParsedEnt ::= TextDecl? content</p><p>
1486
1487</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td> the document the chunk pertains to
1488</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> the SAX handler bloc (possibly NULL)
1489</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td> The user data returned on SAX callbacks (possibly NULL)
1490</td></tr><tr><td><span class="term"><i><tt>depth</tt></i>:</span></td><td> Used for loop detection, use 0
1491</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the URL for the entity to load
1492</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td> the System ID for the entity to load
1493</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td> the return value for the set of parsed nodes
1494</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0 if the entity is well formed, -1 in case of args problem and
1495 the parser error code otherwise
1496</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseCtxtExternalEntity"></a>xmlParseCtxtExternalEntity ()</h3><pre class="programlisting">int xmlParseCtxtExternalEntity (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx,
1497 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
1498 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
1499 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1500Parse an external general entity within an existing parsing context
1501An external general parsed entity is well-formed if it matches the
1502production labeled extParsedEnt.
1503</p><p>
1504[78] extParsedEnt ::= TextDecl? content</p><p>
1505
1506</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td> the existing parsing context
1507</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the URL for the entity to load
1508</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td> the System ID for the entity to load
1509</td></tr><tr><td><span class="term"><i><tt>lst</tt></i>:</span></td><td> the return value for the set of parsed nodes
1510</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0 if the entity is well formed, -1 in case of args problem and
1511 the parser error code otherwise
1512</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlNewParserCtxt"></a>xmlNewParserCtxt ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlNewParserCtxt (void);</pre><p>
1513Allocate and initialize a new parser context.</p><p>
1514
1515</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the xmlParserCtxtPtr or NULL
1516</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlInitParserCtxt"></a>xmlInitParserCtxt ()</h3><pre class="programlisting">int xmlInitParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1517Initialize a parser context</p><p>
1518
1519</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an HTML parser context
1520</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0 in case of success and -1 in case of error
1521</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlClearParserCtxt"></a>xmlClearParserCtxt ()</h3><pre class="programlisting">void xmlClearParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1522Clear (release owned resources) and reinitialize a parser context</p><p>
1523
1524</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1525</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlFreeParserCtxt"></a>xmlFreeParserCtxt ()</h3><pre class="programlisting">void xmlFreeParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1526Free all the memory used by a parser context. However the parsed
1527document in ctxt-&gt;myDoc is not freed.</p><p>
1528
1529</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1530</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSetupParserForBuffer"></a>xmlSetupParserForBuffer ()</h3><pre class="programlisting">void xmlSetupParserForBuffer (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1531 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *buffer,
1532 const char *filename);</pre><p>
1533Setup the parser context to parse a new buffer; Clears any prior
1534contents from the parser context. The buffer parameter must not be
1535NULL, but the filename parameter can be</p><p>
1536
1537</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1538</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td> a xmlChar * buffer
1539</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> a file name
1540</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCreateDocParserCtxt"></a>xmlCreateDocParserCtxt ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateDocParserCtxt (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);</pre><p>
1541Creates a parser context for an XML in-memory document.</p><p>
1542
1543</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> a pointer to an array of xmlChar
1544</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the new parser context or NULL
1545</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlGetFeaturesList"></a>xmlGetFeaturesList ()</h3><pre class="programlisting">int xmlGetFeaturesList (int *len,
1546 const char **result);</pre><p>
1547Copy at most *<i><tt>len</tt></i> feature names into the <i><tt>result</tt></i> array</p><p>
1548
1549</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td> the length of the features name array (input/output)
1550</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td> an array of string to be filled with the features name.
1551</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>-1 in case or error, or the total number of features,
1552 len is updated with the number of strings copied,
1553 strings must not be deallocated
1554</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlGetFeature"></a>xmlGetFeature ()</h3><pre class="programlisting">int xmlGetFeature (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1555 const char *name,
1556 void *result);</pre><p>
1557Read the current value of one feature of this parser instance</p><p>
1558
1559</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML/HTML parser context
1560</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> the feature name
1561</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td> location to store the result
1562</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>-1 in case or error, 0 otherwise
1563</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSetFeature"></a>xmlSetFeature ()</h3><pre class="programlisting">int xmlSetFeature (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1564 const char *name,
1565 void *value);</pre><p>
1566Change the current value of one feature of this parser instance</p><p>
1567
1568</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML/HTML parser context
1569</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td> the feature name
1570</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td> pointer to the location of the new value
1571</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>-1 in case or error, 0 otherwise
1572</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCreatePushParserCtxt"></a>xmlCreatePushParserCtxt ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreatePushParserCtxt (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1573 void *user_data,
1574 const char *chunk,
1575 int size,
1576 const char *filename);</pre><p>
1577Create a parser context for using the XML parser in push mode.
1578If <i><tt>buffer</tt></i> and <i><tt>size</tt></i> are non-NULL, the data is used to detect
1579the encoding. The remaining characters will be parsed so they
1580don't need to be fed in again through xmlParseChunk.
1581To allow content encoding detection, <i><tt>size</tt></i> should be &gt;= 4
1582The value of <i><tt>filename</tt></i> is used for fetching external entities
1583and error/warning reports.</p><p>
1584
1585</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> a SAX handler
1586</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td> The user data returned on SAX callbacks
1587</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td> a pointer to an array of chars
1588</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td> number of chars in the array
1589</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> an optional file name or URI
1590</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the new parser context or NULL
1591</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParseChunk"></a>xmlParseChunk ()</h3><pre class="programlisting">int xmlParseChunk (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1592 const char *chunk,
1593 int size,
1594 int terminate);</pre><p>
1595Parse a Chunk of memory</p><p>
1596
1597</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1598</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td> an char array
1599</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td> the size in byte of the chunk
1600</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td> last chunk indicator
1601</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>zero if no error, the xmlParserErrors otherwise.
1602</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCreateIOParserCtxt"></a>xmlCreateIOParserCtxt ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateIOParserCtxt (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1603 void *user_data,
1604 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
1605 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
1606 void *ioctx,
1607 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1608Create a parser context for using the XML parser with an existing
1609I/O stream</p><p>
1610
1611</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td> a SAX handler
1612</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i>:</span></td><td> The user data returned on SAX callbacks
1613</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td> an I/O read function
1614</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td> an I/O close function
1615</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td> an I/O handler
1616</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td> the charset encoding if known
1617</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the new parser context or NULL
1618</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlNewIOInputStream"></a>xmlNewIOInputStream ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewIOInputStream (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1619 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
1620 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1621Create a new input stream structure encapsulating the <i><tt>input</tt></i> into
1622a stream suitable for the parser.</p><p>
1623
1624</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1625</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td> an I/O Input
1626</td></tr><tr><td><span class="term"><i><tt>enc</tt></i>:</span></td><td> the charset encoding if known
1627</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the new input stream or NULL
1628</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParserFindNodeInfo"></a>xmlParserFindNodeInfo ()</h3><pre class="programlisting">const <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a>* xmlParserFindNodeInfo
1629 (const <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1630 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);</pre><p>
1631Find the parser node info struct for a given node</p><p>
1632
1633</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>
1634</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td> an XML node within the tree
1635</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>an xmlParserNodeInfo block pointer or NULL
1636</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlInitNodeInfoSeq"></a>xmlInitNodeInfoSeq ()</h3><pre class="programlisting">void xmlInitNodeInfoSeq (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);</pre><p>
1637-- Initialize (set to initial state) node info sequence</p><p>
1638
1639</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>seq</tt></i>:</span></td><td> a node info sequence pointer
1640</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlClearNodeInfoSeq"></a>xmlClearNodeInfoSeq ()</h3><pre class="programlisting">void xmlClearNodeInfoSeq (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);</pre><p>
1641-- Clear (release memory and reinitialize) node
1642 info sequence</p><p>
1643
1644</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>seq</tt></i>:</span></td><td> a node info sequence pointer
1645</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParserAddNodeInfo"></a>xmlParserAddNodeInfo ()</h3><pre class="programlisting">void xmlParserAddNodeInfo (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1646 const <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info);</pre><p>
1647Insert node info record into the sorted sequence</p><p>
1648
1649</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1650</td></tr><tr><td><span class="term"><i><tt>info</tt></i>:</span></td><td> a node info sequence pointer
1651</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlSetExternalEntityLoader"></a>xmlSetExternalEntityLoader ()</h3><pre class="programlisting">void xmlSetExternalEntityLoader (<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> f);</pre><p>
1652Changes the defaultexternal entity resolver function for the application</p><p>
1653
1654</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td> the new entity resolver function
1655</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlGetExternalEntityLoader"></a>xmlGetExternalEntityLoader ()</h3><pre class="programlisting"><a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> xmlGetExternalEntityLoader
1656 (void);</pre><p>
1657Get the default external entity resolver function for the application</p><p>
1658
1659</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the xmlExternalEntityLoader function pointer
1660</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlLoadExternalEntity"></a>xmlLoadExternalEntity ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlLoadExternalEntity (const char *URL,
1661 const char *ID,
1662 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1663Load an external entity, note that the use of this function for
1664unparsed entities may generate problems
1665TODO: a more generic External entity API must be designed</p><p>
1666
1667</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the URL for the entity to load
1668</td></tr><tr><td><span class="term"><i><tt>ID</tt></i>:</span></td><td> the Public ID for the entity to load
1669</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> the context in which the entity is called or NULL
1670</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the xmlParserInputPtr or NULL
William M. Brack2ad1dff2003-11-15 10:35:20 +00001671</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlParserOption"></a>enum xmlParserOption</h3><pre class="programlisting">typedef enum {
1672 XML_PARSE_RECOVER = 1&lt;&lt;0, /* recover on errors */
1673 XML_PARSE_NOENT = 1&lt;&lt;1, /* substitute entities */
1674 XML_PARSE_DTDLOAD = 1&lt;&lt;2, /* load the external subset */
1675 XML_PARSE_DTDATTR = 1&lt;&lt;3, /* default DTD attributes */
1676 XML_PARSE_DTDVALID = 1&lt;&lt;4, /* validate with the DTD */
1677 XML_PARSE_NOERROR = 1&lt;&lt;5, /* suppress error reports */
1678 XML_PARSE_NOWARNING = 1&lt;&lt;6, /* suppress warning reports */
1679 XML_PARSE_PEDANTIC = 1&lt;&lt;7, /* pedantic error reporting */
1680 XML_PARSE_NOBLANKS = 1&lt;&lt;8, /* remove blank nodes */
1681 XML_PARSE_SAX1 = 1&lt;&lt;9, /* use the SAX1 interface internally */
1682 XML_PARSE_XINCLUDE = 1&lt;&lt;10,/* Implement XInclude substitition */
1683 XML_PARSE_NONET = 1&lt;&lt;11,/* Forbid network access */
1684 XML_PARSE_NODICT = 1&lt;&lt;12,/* Do not reuse the context dictionnary */
1685 XML_PARSE_NSCLEAN = 1&lt;&lt;13,/* remove redundant namespaces declarations */
1686 XML_PARSE_NOCDATA = 1&lt;&lt;14 /* merge CDATA as text nodes */
1687} xmlParserOption;
1688</pre><p>
1689This is the set of XML parser options that can be passed down
William M. Brack60f394e2003-11-16 06:25:42 +00001690to the <a href="libxml-parser.html#xmlReadDoc">xmlReadDoc</a>() and similar calls.</p><p>
Daniel Veillardd4330462003-04-29 12:40:16 +00001691
William M. Brack60f394e2003-11-16 06:25:42 +00001692</p></div><hr><div class="refsect2"><h3><a name="xmlCtxtReset"></a>xmlCtxtReset ()</h3><pre class="programlisting">void xmlCtxtReset (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1693Reset a parser context</p><p>
1694
1695</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1696</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCtxtResetPush"></a>xmlCtxtResetPush ()</h3><pre class="programlisting">int xmlCtxtResetPush (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1697 const char *chunk,
1698 int size,
1699 const char *filename,
1700 const char *encoding);</pre><p>
1701Reset a push parser context</p><p>
1702
1703</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1704</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td> a pointer to an array of chars
1705</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td> number of chars in the array
1706</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> an optional file name or URI
1707</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1708</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0 in case of success and 1 in case of error
1709</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCtxtUseOptions"></a>xmlCtxtUseOptions ()</h3><pre class="programlisting">int xmlCtxtUseOptions (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1710 int options);</pre><p>
1711Applies the options to the parser context</p><p>
1712
1713</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1714</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1715</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>0 in case of success, the set of unknown or unimplemented options
1716 in case of error.
1717</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlReadDoc"></a>xmlReadDoc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadDoc (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
1718 const char *URL,
1719 const char *encoding,
1720 int options);</pre><p>
1721parse an XML in-memory document and build a tree.</p><p>
1722
1723</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> a pointer to a zero terminated string
1724</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the base URL to use for the document
1725</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1726</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1727</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1728</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlReadFile"></a>xmlReadFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadFile (const char *URL,
1729 const char *encoding,
1730 int options);</pre><p>
1731parse an XML file from the filesystem or the network.</p><p>
1732
1733</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>
1734</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1735</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1736</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1737</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlReadMemory"></a>xmlReadMemory ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadMemory (const char *buffer,
1738 int size,
1739 const char *URL,
1740 const char *encoding,
1741 int options);</pre><p>
1742parse an XML in-memory document and build a tree.</p><p>
1743
1744</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td> a pointer to a char array
1745</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td> the size of the array
1746</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the base URL to use for the document
1747</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1748</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1749</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1750</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlReadFd"></a>xmlReadFd ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadFd (int fd,
1751 const char *URL,
1752 const char *encoding,
1753 int options);</pre><p>
1754parse an XML from a file descriptor and build a tree.</p><p>
1755
1756</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td> an open file descriptor
1757</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the base URL to use for the document
1758</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1759</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1760</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1761</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlReadIO"></a>xmlReadIO ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlReadIO (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
1762 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
1763 void *ioctx,
1764 const char *URL,
1765 const char *encoding,
1766 int options);</pre><p>
1767parse an XML document from I/O functions and source and build a tree.</p><p>
1768
1769</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td> an I/O read function
1770</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td> an I/O close function
1771</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td> an I/O handler
1772</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the base URL to use for the document
1773</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1774</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1775</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1776</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCtxtReadDoc"></a>xmlCtxtReadDoc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadDoc (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1777 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
1778 const char *URL,
1779 const char *encoding,
1780 int options);</pre><p>
1781parse an XML in-memory document and build a tree.
1782This reuses the existing <i><tt>ctxt</tt></i> parser context</p><p>
1783
1784</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1785</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td> a pointer to a zero terminated string
1786</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the base URL to use for the document
1787</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1788</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1789</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1790</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCtxtReadFile"></a>xmlCtxtReadFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadFile (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1791 const char *filename,
1792 const char *encoding,
1793 int options);</pre><p>
1794parse an XML file from the filesystem or the network.
1795This reuses the existing <i><tt>ctxt</tt></i> parser context</p><p>
1796
1797</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1798</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td> a file or URL
1799</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1800</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1801</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1802</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCtxtReadMemory"></a>xmlCtxtReadMemory ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadMemory (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1803 const char *buffer,
1804 int size,
1805 const char *URL,
1806 const char *encoding,
1807 int options);</pre><p>
1808parse an XML in-memory document and build a tree.
1809This reuses the existing <i><tt>ctxt</tt></i> parser context</p><p>
1810
1811</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1812</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td> a pointer to a char array
1813</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td> the size of the array
1814</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the base URL to use for the document
1815</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1816</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1817</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1818</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCtxtReadFd"></a>xmlCtxtReadFd ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadFd (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1819 int fd,
1820 const char *URL,
1821 const char *encoding,
1822 int options);</pre><p>
1823parse an XML from a file descriptor and build a tree.
1824This reuses the existing <i><tt>ctxt</tt></i> parser context</p><p>
1825
1826</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1827</td></tr><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td> an open file descriptor
1828</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the base URL to use for the document
1829</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1830</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1831</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1832</td></tr></tbody></table></div></div><hr><div class="refsect2"><h3><a name="xmlCtxtReadIO"></a>xmlCtxtReadIO ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlCtxtReadIO (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1833 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
1834 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
1835 void *ioctx,
1836 const char *URL,
1837 const char *encoding,
1838 int options);</pre><p>
1839parse an XML document from I/O functions and source and build a tree.
1840This reuses the existing <i><tt>ctxt</tt></i> parser context</p><p>
1841
1842</p><div class="variablelist"><table border="0"><col align="left"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td> an XML parser context
1843</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td> an I/O read function
1844</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td> an I/O close function
1845</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td> an I/O handler
1846</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td> the base URL to use for the document
1847</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td> the document encoding, or NULL
1848</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td> a combination of xmlParserOption(s)
1849</td></tr><tr><td><span class="term"><span class="emphasis"><i>Returns</i></span> :</span></td><td>the resulting document tree
1850</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="libxml-threads.html"><b>&lt;&lt; threads</b></a></td><td align="right"><a accesskey="n" href="libxml-c14n.html"><b>c14n &gt;&gt;</b></a></td></tr></table></body></html>