blob: c9ee40df4fce668fe96d385fd96cbab0f8289558 [file] [log] [blame]
Daniel Veillardd4330462003-04-29 12:40:16 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<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.58.1"><style xmlns="http://www.w3.org/TR/xhtml1/transitional" type="text/css">
3 .synopsis, .classsynopsis {
4 background: #eeeeee;
5 border: solid 1px #aaaaaa;
6 padding: 0.5em;
7 }
8 .programlisting {
9 background: #eeeeff;
10 border: solid 1px #aaaaff;
11 padding: 0.5em;
12 }
13 .variablelist {
14 padding: 4px;
15 margin-left: 3em;
16 }
17 .navigation {
18 background: #ffeeee;
19 border: solid 1px #ffaaaa;
20 margin-top: 0.5em;
21 margin-bottom: 0.5em;
22 }
23 .navigation a {
24 color: #770000;
25 }
26 .navigation a:visited {
27 color: #550000;
28 }
29 .navigation .title {
30 font-size: 200%;
31 }
32 </style><link rel="home" href="index.html" title="Gnome XML Library Reference Manual"><link rel="up" href="libxml-lib.html" title="Libxml Library Reference"><link rel="previous" href="libxml-lib.html" title="Libxml Library Reference"><link rel="next" href="libxml-xmlreader.html" title="xmlreader"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-lib.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></img></a></td><td><a accesskey="u" href="libxml-lib.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></img></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></img></a></td><th width="100%" align="center">Gnome XML Library Reference Manual</th><td><a accesskey="n" href="libxml-xmlreader.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></img></a></td></tr></table><div class="refentry" lang="en"><a name="libxml-parser"></a><div class="titlepage"></div><div class="refnamediv"><h2>parser</h2><p>parser &#8212; </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
Daniel Veillard35925471999-02-25 08:46:07 +000033
Daniel Veillardd4330462003-04-29 12:40:16 +000034
35
36#define <a href="libxml-parser.html#XML-DEFAULT-VERSION-CAPS">XML_DEFAULT_VERSION</a>
37void (<a href="libxml-parser.html#xmlParserInputDeallocate">*xmlParserInputDeallocate</a>) (<a href="libxml-tree.html#xmlChar">xmlChar</a> *str);
38struct <a href="libxml-parser.html#xmlParserInput">xmlParserInput</a>;
39struct <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a>;
40typedef <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a>;
41struct <a href="libxml-parser.html#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a>;
42typedef <a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a>;
43enum <a href="libxml-parser.html#xmlParserInputState">xmlParserInputState</a>;
44#define <a href="libxml-parser.html#XML-DETECT-IDS-CAPS">XML_DETECT_IDS</a>
45#define <a href="libxml-parser.html#XML-COMPLETE-ATTRS-CAPS">XML_COMPLETE_ATTRS</a>
46#define <a href="libxml-parser.html#XML-SKIP-IDS-CAPS">XML_SKIP_IDS</a>
47struct <a href="libxml-parser.html#xmlParserCtxt">xmlParserCtxt</a>;
48struct <a href="libxml-parser.html#xmlSAXLocator">xmlSAXLocator</a>;
49<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (<a href="libxml-parser.html#resolveEntitySAXFunc">*resolveEntitySAXFunc</a>) (void *ctx,
50 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
51 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);
52void (<a href="libxml-parser.html#internalSubsetSAXFunc">*internalSubsetSAXFunc</a>) (void *ctx,
53 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
54 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
55 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
56void (<a href="libxml-parser.html#externalSubsetSAXFunc">*externalSubsetSAXFunc</a>) (void *ctx,
57 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
58 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
59 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
60<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (<a href="libxml-parser.html#getEntitySAXFunc">*getEntitySAXFunc</a>) (void *ctx,
61 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
62<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (<a href="libxml-parser.html#getParameterEntitySAXFunc">*getParameterEntitySAXFunc</a>) (void *ctx,
63 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
64void (<a href="libxml-parser.html#entityDeclSAXFunc">*entityDeclSAXFunc</a>) (void *ctx,
65 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +000066 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +000067 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
68 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
69 <a href="libxml-tree.html#xmlChar">xmlChar</a> *content);
70void (<a href="libxml-parser.html#notationDeclSAXFunc">*notationDeclSAXFunc</a>) (void *ctx,
71 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
72 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
73 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);
74void (<a href="libxml-parser.html#attributeDeclSAXFunc">*attributeDeclSAXFunc</a>) (void *ctx,
75 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
76 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *fullname,
Daniel Veillard5099ae81999-04-21 20:12:07 +000077 int type,
78 int def,
Daniel Veillardd4330462003-04-29 12:40:16 +000079 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *defaultValue,
80 <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);
81void (<a href="libxml-parser.html#elementDeclSAXFunc">*elementDeclSAXFunc</a>) (void *ctx,
82 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +000083 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +000084 <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);
85void (<a href="libxml-parser.html#unparsedEntityDeclSAXFunc">*unparsedEntityDeclSAXFunc</a>) (void *ctx,
86 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
87 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
88 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
89 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *notationName);
90void (<a href="libxml-parser.html#setDocumentLocatorSAXFunc">*setDocumentLocatorSAXFunc</a>) (void *ctx,
91 <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc);
92void (<a href="libxml-parser.html#startDocumentSAXFunc">*startDocumentSAXFunc</a>) (void *ctx);
93void (<a href="libxml-parser.html#endDocumentSAXFunc">*endDocumentSAXFunc</a>) (void *ctx);
94void (<a href="libxml-parser.html#startElementSAXFunc">*startElementSAXFunc</a>) (void *ctx,
95 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
96 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **atts);
97void (<a href="libxml-parser.html#endElementSAXFunc">*endElementSAXFunc</a>) (void *ctx,
98 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
99void (<a href="libxml-parser.html#attributeSAXFunc">*attributeSAXFunc</a>) (void *ctx,
100 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
101 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
102void (<a href="libxml-parser.html#referenceSAXFunc">*referenceSAXFunc</a>) (void *ctx,
103 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
104void (<a href="libxml-parser.html#charactersSAXFunc">*charactersSAXFunc</a>) (void *ctx,
105 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
Daniel Veillard35925471999-02-25 08:46:07 +0000106 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000107void (<a href="libxml-parser.html#ignorableWhitespaceSAXFunc">*ignorableWhitespaceSAXFunc</a>) (void *ctx,
108 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
Daniel Veillard35925471999-02-25 08:46:07 +0000109 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000110void (<a href="libxml-parser.html#processingInstructionSAXFunc">*processingInstructionSAXFunc</a>) (void *ctx,
111 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *target,
112 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *data);
113void (<a href="libxml-parser.html#commentSAXFunc">*commentSAXFunc</a>) (void *ctx,
114 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
115void (<a href="libxml-parser.html#cdataBlockSAXFunc">*cdataBlockSAXFunc</a>) (void *ctx,
116 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
Daniel Veillardb05deb71999-08-10 19:04:08 +0000117 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000118void (<a href="libxml-parser.html#warningSAXFunc">*warningSAXFunc</a>) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000119 const char *msg,
120 ...);
Daniel Veillardd4330462003-04-29 12:40:16 +0000121void (<a href="libxml-parser.html#errorSAXFunc">*errorSAXFunc</a>) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000122 const char *msg,
123 ...);
Daniel Veillardd4330462003-04-29 12:40:16 +0000124void (<a href="libxml-parser.html#fatalErrorSAXFunc">*fatalErrorSAXFunc</a>) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000125 const char *msg,
126 ...);
Daniel Veillardd4330462003-04-29 12:40:16 +0000127int (<a href="libxml-parser.html#isStandaloneSAXFunc">*isStandaloneSAXFunc</a>) (void *ctx);
128int (<a href="libxml-parser.html#hasInternalSubsetSAXFunc">*hasInternalSubsetSAXFunc</a>) (void *ctx);
129int (<a href="libxml-parser.html#hasExternalSubsetSAXFunc">*hasExternalSubsetSAXFunc</a>) (void *ctx);
130struct <a href="libxml-parser.html#xmlSAXHandler">xmlSAXHandler</a>;
131<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (<a href="libxml-parser.html#xmlExternalEntityLoader">*xmlExternalEntityLoader</a>)
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000132 (const char *URL,
133 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +0000134 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context);
135void <a href="libxml-parser.html#xmlInitParser">xmlInitParser</a> (void);
136void <a href="libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a> (void);
137int <a href="libxml-parser.html#xmlParserInputRead">xmlParserInputRead</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
Daniel Veillarde2d034d1999-07-27 19:52:06 +0000138 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000139int <a href="libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
Daniel Veillarde2d034d1999-07-27 19:52:06 +0000140 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000141<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);
142<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,
Daniel Veillard35925471999-02-25 08:46:07 +0000143 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000144<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlCharStrndup">xmlCharStrndup</a> (const char *cur,
Daniel Veillarda41123c2001-04-22 19:31:20 +0000145 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000146<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlCharStrdup">xmlCharStrdup</a> (const char *cur);
147<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,
Daniel Veillard1566d3a1999-07-15 14:24:29 +0000148 int start,
149 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000150const <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,
151 <a href="libxml-tree.html#xmlChar">xmlChar</a> val);
152const <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,
153 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);
154const <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,
155 <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);
156int <a href="libxml-parser.html#xmlStrcmp">xmlStrcmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
157 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);
158int <a href="libxml-parser.html#xmlStrncmp">xmlStrncmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
159 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
Daniel Veillard35925471999-02-25 08:46:07 +0000160 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000161int <a href="libxml-parser.html#xmlStrcasecmp">xmlStrcasecmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
162 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);
163int <a href="libxml-parser.html#xmlStrncasecmp">xmlStrncasecmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
164 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000165 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000166int <a href="libxml-parser.html#xmlStrEqual">xmlStrEqual</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
167 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);
168int <a href="libxml-parser.html#xmlStrlen">xmlStrlen</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str);
169<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,
170 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add);
171<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,
172 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add,
Daniel Veillard35925471999-02-25 08:46:07 +0000173 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000174<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);
175<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlParseMemory">xmlParseMemory</a> (const char *buffer,
Daniel Veillard35925471999-02-25 08:46:07 +0000176 int size);
Daniel Veillardd4330462003-04-29 12:40:16 +0000177<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlParseFile">xmlParseFile</a> (const char *filename);
178int <a href="libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a> (int val);
179int <a href="libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a> (int val);
180void <a href="libxml-parser.html#xmlStopParser">xmlStopParser</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
181int <a href="libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a> (int val);
182int <a href="libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a> (int val);
183<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);
184<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlRecoverMemory">xmlRecoverMemory</a> (const char *buffer,
Daniel Veillard35925471999-02-25 08:46:07 +0000185 int size);
Daniel Veillardd4330462003-04-29 12:40:16 +0000186<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a> (const char *filename);
187int <a href="libxml-parser.html#xmlParseDocument">xmlParseDocument</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
188int <a href="libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
189<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,
190 <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
Daniel Veillard35925471999-02-25 08:46:07 +0000191 int recovery);
Daniel Veillardd4330462003-04-29 12:40:16 +0000192int <a href="libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000193 void *user_data,
194 const char *filename);
Daniel Veillardd4330462003-04-29 12:40:16 +0000195int <a href="libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000196 void *user_data,
Daniel Veillardbed7b052001-05-19 14:59:49 +0000197 const char *buffer,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000198 int size);
Daniel Veillardd4330462003-04-29 12:40:16 +0000199<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,
Daniel Veillarde7ead2d2001-08-22 23:44:09 +0000200 const char *buffer,
Daniel Veillard35925471999-02-25 08:46:07 +0000201 int size,
202 int recovery);
Daniel Veillardd4330462003-04-29 12:40:16 +0000203<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,
Daniel Veillardaec63562003-03-23 20:42:17 +0000204 const char *buffer,
205 int size,
206 int recovery,
207 void *data);
Daniel Veillardd4330462003-04-29 12:40:16 +0000208<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,
Daniel Veillard35925471999-02-25 08:46:07 +0000209 const char *filename,
210 int recovery);
Daniel Veillardd4330462003-04-29 12:40:16 +0000211<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,
Daniel Veillard60087f32001-10-10 09:45:09 +0000212 const char *filename,
213 int recovery,
214 void *data);
Daniel Veillardd4330462003-04-29 12:40:16 +0000215<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,
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000216 const char *filename);
Daniel Veillardd4330462003-04-29 12:40:16 +0000217<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlParseEntity">xmlParseEntity</a> (const char *filename);
218<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,
219 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
220<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,
221 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
222 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
223<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,
224 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
225 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
226int <a href="libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
227 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000228 void *user_data,
229 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +0000230 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
231 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);
232int <a href="libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a>
233 (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
234 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard2ace1952002-09-26 12:28:02 +0000235 void *user_data,
236 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +0000237 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
238 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst,
Daniel Veillard2ace1952002-09-26 12:28:02 +0000239 int recover);
Daniel Veillardd4330462003-04-29 12:40:16 +0000240int <a href="libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
241 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000242 void *user_data,
243 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +0000244 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
245 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
246 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);
247int <a href="libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx,
248 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
249 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
250 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);
251int <a href="libxml-parser.html#xmlInitParserCtxt">xmlInitParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
252void <a href="libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
253void <a href="libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
254void <a href="libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
255 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *buffer,
Daniel Veillard35925471999-02-25 08:46:07 +0000256 const char *filename);
Daniel Veillardd4330462003-04-29 12:40:16 +0000257<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> <a href="libxml-parser.html#xmlCreateDocParserCtxt">xmlCreateDocParserCtxt</a> (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);
258int <a href="libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a> (int *len,
Daniel Veillard7c29ce22000-08-12 21:20:53 +0000259 const char **result);
Daniel Veillardd4330462003-04-29 12:40:16 +0000260int <a href="libxml-parser.html#xmlGetFeature">xmlGetFeature</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard7c29ce22000-08-12 21:20:53 +0000261 const char *name,
262 void *result);
Daniel Veillardd4330462003-04-29 12:40:16 +0000263int <a href="libxml-parser.html#xmlSetFeature">xmlSetFeature</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard7c29ce22000-08-12 21:20:53 +0000264 const char *name,
265 void *value);
Daniel Veillardd4330462003-04-29 12:40:16 +0000266<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,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000267 void *user_data,
268 const char *chunk,
269 int size,
270 const char *filename);
Daniel Veillardd4330462003-04-29 12:40:16 +0000271int <a href="libxml-parser.html#xmlParseChunk">xmlParseChunk</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000272 const char *chunk,
273 int size,
274 int terminate);
Daniel Veillardd4330462003-04-29 12:40:16 +0000275<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,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000276 void *user_data,
Daniel Veillardd4330462003-04-29 12:40:16 +0000277 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
278 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000279 void *ioctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000280 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
281<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,
282 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
283 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
284const <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a>* <a href="libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a>
285 (const <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
286 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);
287void <a href="libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a> (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);
288void <a href="libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a> (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);
289unsigned <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="long">long</GTKDOCLINK> <a href="libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a> (const <a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq,
290 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);
291void <a href="libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
292 const <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info);
293void <a href="libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a> (<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> f);
294<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> <a href="libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a>
Daniel Veillard6bd26dc1999-09-03 14:28:40 +0000295 (void);
Daniel Veillardd4330462003-04-29 12:40:16 +0000296<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a> (const char *URL,
Daniel Veillard6bd26dc1999-09-03 14:28:40 +0000297 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +0000298 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
299</pre></div><div class="refsect1" lang="en"><h2>Description</h2><p>
300
301</p></div><div class="refsect1" lang="en"><h2>Details</h2><div class="refsect2" lang="en"><h3><a name="XML-DEFAULT-VERSION-CAPS"></a>XML_DEFAULT_VERSION</h3><pre class="programlisting">#define XML_DEFAULT_VERSION &quot;1.0&quot;
302</pre><p>
303The default version of XML used: 1.0</p><p>
304
305</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputDeallocate"></a>xmlParserInputDeallocate ()</h3><pre class="programlisting">void (*xmlParserInputDeallocate) (<a href="libxml-tree.html#xmlChar">xmlChar</a> *str);</pre><p>
306Callback for freeing some parser input allocations.</p><p>
307
308</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> the string to deallocate
309</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInput"></a>struct xmlParserInput</h3><pre class="programlisting">struct xmlParserInput {
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000310 /* Input buffer */
311 xmlParserInputBufferPtr buf; /* UTF-8 encoded buffer */
312
313 const char *filename; /* The file analyzed, if any */
Daniel Veillard60087f32001-10-10 09:45:09 +0000314 const char *directory; /* the directory/base of the file */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000315 const xmlChar *base; /* Base of the array to parse */
316 const xmlChar *cur; /* Current char being parsed */
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000317 const xmlChar *end; /* end of the array to parse */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000318 int length; /* length if known */
319 int line; /* Current line */
320 int col; /* Current column */
Daniel Veillardd4330462003-04-29 12:40:16 +0000321 /*
322 * NOTE: consumed is only tested for equality in the parser code,
323 * so even if there is an overflow this should not give troubles
324 * for parsing very large instances.
325 */
326 unsigned long consumed; /* How many xmlChars already consumed */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000327 xmlParserInputDeallocate free; /* function to deallocate the base */
328 const xmlChar *encoding; /* the encoding string for entity */
329 const xmlChar *version; /* the version string for entity */
330 int standalone; /* Was that entity marked standalone */
Daniel Veillardd4330462003-04-29 12:40:16 +0000331};
332</pre><p>
333An xmlParserInput is an input flow for the XML processor.
Daniel Veillarde7ead2d2001-08-22 23:44:09 +0000334Each entity parsed is associated an xmlParserInput (except the
335few predefined ones). This is the case both for internal entities
336- in which case the flow is already completely in memory - or
337external entities - in which case we use the buf structure for
Daniel Veillardd4330462003-04-29 12:40:16 +0000338progressive reading and I18N conversions to the internal UTF-8 format.</p><p>
339
340</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserNodeInfo"></a>struct xmlParserNodeInfo</h3><pre class="programlisting">struct xmlParserNodeInfo {
Daniel Veillard71b656e2000-01-05 14:46:17 +0000341 const struct _xmlNode* node;
Daniel Veillard3bbbe6f2001-05-03 11:15:37 +0000342 /* Position &amp; line # that text that created the node begins &amp; ends on */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000343 unsigned long begin_pos;
344 unsigned long begin_line;
345 unsigned long end_pos;
346 unsigned long end_line;
Daniel Veillardd4330462003-04-29 12:40:16 +0000347};
348</pre><p>
349The parser can be asked to collect Node informations, i.e. at what
Daniel Veillarde7ead2d2001-08-22 23:44:09 +0000350place in the file they were detected.
Daniel Veillardd4330462003-04-29 12:40:16 +0000351NOTE: This is off by default and not very well tested.</p><p>
352
353</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserNodeInfoPtr"></a>xmlParserNodeInfoPtr</h3><pre class="programlisting">typedef xmlParserNodeInfo *xmlParserNodeInfoPtr;
354</pre><p>
355
356</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserNodeInfoSeq"></a>struct xmlParserNodeInfoSeq</h3><pre class="programlisting">struct xmlParserNodeInfoSeq {
Daniel Veillard71b656e2000-01-05 14:46:17 +0000357 unsigned long maximum;
358 unsigned long length;
359 xmlParserNodeInfo* buffer;
Daniel Veillardd4330462003-04-29 12:40:16 +0000360};
361</pre><p>
362
363</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserNodeInfoSeqPtr"></a>xmlParserNodeInfoSeqPtr</h3><pre class="programlisting">typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr;
364</pre><p>
365
366</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputState"></a>enum xmlParserInputState</h3><pre class="programlisting">typedef enum {
Daniel Veillardbe849cf1999-12-28 16:43:59 +0000367 XML_PARSER_EOF = -1, /* nothing is to be parsed */
368 XML_PARSER_START = 0, /* nothing has been parsed */
369 XML_PARSER_MISC, /* Misc* before int subset */
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000370 XML_PARSER_PI, /* Within a processing instruction */
Daniel Veillardbe849cf1999-12-28 16:43:59 +0000371 XML_PARSER_DTD, /* within some DTD content */
372 XML_PARSER_PROLOG, /* Misc* after internal subset */
373 XML_PARSER_COMMENT, /* within a comment */
374 XML_PARSER_START_TAG, /* within a start tag */
375 XML_PARSER_CONTENT, /* within the content */
376 XML_PARSER_CDATA_SECTION, /* within a CDATA section */
377 XML_PARSER_END_TAG, /* within a closing tag */
378 XML_PARSER_ENTITY_DECL, /* within an entity declaration */
379 XML_PARSER_ENTITY_VALUE, /* within an entity value in a decl */
380 XML_PARSER_ATTRIBUTE_VALUE, /* within an attribute value */
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000381 XML_PARSER_SYSTEM_LITERAL, /* within a SYSTEM value */
Daniel Veillard28929b22000-11-13 18:22:49 +0000382 XML_PARSER_EPILOG, /* the Misc* after the last end tag */
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000383 XML_PARSER_IGNORE, /* within an IGNORED section */
384 XML_PARSER_PUBLIC_LITERAL /* within a PUBLIC value */
Daniel Veillardd4330462003-04-29 12:40:16 +0000385} xmlParserInputState;
386</pre><p>
387The parser is now working also as a state based parser.
388The recursive one use the state info for entities processing.</p><p>
389
390</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="XML-DETECT-IDS-CAPS"></a>XML_DETECT_IDS</h3><pre class="programlisting">#define XML_DETECT_IDS 2
391</pre><p>
392Bit in the loadsubset context field to tell to do ID/REFs lookups.
393Use it to initialize xmlLoadExtDtdDefaultValue.</p><p>
394
395</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="XML-COMPLETE-ATTRS-CAPS"></a>XML_COMPLETE_ATTRS</h3><pre class="programlisting">#define XML_COMPLETE_ATTRS 4
396</pre><p>
397Bit in the loadsubset context field to tell to do complete the
Daniel Veillard19274092002-03-25 16:48:03 +0000398elements attributes lists with the ones defaulted from the DTDs.
Daniel Veillardd4330462003-04-29 12:40:16 +0000399Use it to initialize xmlLoadExtDtdDefaultValue.</p><p>
400
401</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="XML-SKIP-IDS-CAPS"></a>XML_SKIP_IDS</h3><pre class="programlisting">#define XML_SKIP_IDS 8
402</pre><p>
403Bit in the loadsubset context field to tell to not do ID/REFs registration.
404Used to initialize xmlLoadExtDtdDefaultValue in some special cases.</p><p>
405
406</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserCtxt"></a>struct xmlParserCtxt</h3><pre class="programlisting">struct xmlParserCtxt {
Daniel Veillard71b656e2000-01-05 14:46:17 +0000407 struct _xmlSAXHandler *sax; /* The SAX handler */
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000408 void *userData; /* For SAX interface only, used by DOM build */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000409 xmlDocPtr myDoc; /* the document being built */
410 int wellFormed; /* is the document well formed */
411 int replaceEntities; /* shall we replace entities ? */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000412 const xmlChar *version; /* the XML version string */
413 const xmlChar *encoding; /* the declared encoding, if any */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000414 int standalone; /* standalone document */
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000415 int html; /* an HTML(1)/Docbook(2) document */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000416
417 /* Input stream stack */
418 xmlParserInputPtr input; /* Current input stream */
419 int inputNr; /* Number of current input streams */
420 int inputMax; /* Max number of input streams */
421 xmlParserInputPtr *inputTab; /* stack of inputs */
422
423 /* Node analysis stack only used for DOM building */
424 xmlNodePtr node; /* Current parsed Node */
425 int nodeNr; /* Depth of the parsing stack */
426 int nodeMax; /* Max depth of the parsing stack */
427 xmlNodePtr *nodeTab; /* array of nodes */
428
429 int record_info; /* Whether node info should be kept */
430 xmlParserNodeInfoSeq node_seq; /* info about each node parsed */
431
432 int errNo; /* error code */
433
434 int hasExternalSubset; /* reference and external subset */
435 int hasPErefs; /* the internal subset has PE refs */
436 int external; /* are we parsing an external entity */
437
438 int valid; /* is the document valid */
439 int validate; /* shall we try to validate ? */
440 xmlValidCtxt vctxt; /* The validity context */
441
442 xmlParserInputState instate; /* current type of input */
443 int token; /* next char look-ahead */
444
445 char *directory; /* the data directory */
446
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000447 /* Node name stack */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000448 xmlChar *name; /* Current parsed Node */
449 int nameNr; /* Depth of the parsing stack */
450 int nameMax; /* Max depth of the parsing stack */
451 xmlChar * *nameTab; /* array of nodes */
452
453 long nbChars; /* number of xmlChar processed */
454 long checkIndex; /* used by progressive parsing lookup */
Daniel Veillardf6868712000-01-05 14:58:38 +0000455 int keepBlanks; /* ugly but ... */
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000456 int disableSAX; /* SAX callbacks are disabled */
457 int inSubset; /* Parsing is in int 1/ext 2 subset */
458 xmlChar * intSubName; /* name of subset */
459 xmlChar * extSubURI; /* URI of external subset */
460 xmlChar * extSubSystem; /* SYSTEM ID of external subset */
461
462 /* xml:space values */
463 int * space; /* Should the parser preserve spaces */
464 int spaceNr; /* Depth of the parsing stack */
465 int spaceMax; /* Max depth of the parsing stack */
466 int * spaceTab; /* array of space infos */
467
468 int depth; /* to prevent entity substitution loops */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000469 xmlParserInputPtr entity; /* used to check entities boundaries */
470 int charset; /* encoding of the in-memory content
471 actually an xmlCharEncoding */
472 int nodelen; /* Those two fields are there to */
473 int nodemem; /* Speed up large node parsing */
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000474 int pedantic; /* signal pedantic warnings */
475 void *_private; /* For user data, libxml won't touch it */
Daniel Veillardd194dd22001-02-14 10:37:43 +0000476
477 int loadsubset; /* should the external subset be loaded */
Daniel Veillarde7ead2d2001-08-22 23:44:09 +0000478 int linenumbers; /* set line number in element content */
479 void *catalogs; /* document's own catalog */
Daniel Veillardaec63562003-03-23 20:42:17 +0000480 int recovery; /* run in recovery mode */
Daniel Veillardd4330462003-04-29 12:40:16 +0000481 int progressive; /* is this a progressive parsing */
482};
483</pre><p>
484The parser context.
Daniel Veillard19274092002-03-25 16:48:03 +0000485NOTE This doesn't completely define the parser state, the (current ?)
Daniel Veillardaec63562003-03-23 20:42:17 +0000486 design of the parser uses recursive function calls since this allow
487 and easy mapping from the production rules of the specification
488 to the actual code. The drawback is that the actual function call
489 also reflect the parser state. However most of the parsing routines
490 takes as the only argument the parser context pointer, so migrating
Daniel Veillardd4330462003-04-29 12:40:16 +0000491 to a state based parser for progressive parsing shouldn't be too hard.</p><p>
492
493</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXLocator"></a>struct xmlSAXLocator</h3><pre class="programlisting">struct xmlSAXLocator {
Daniel Veillard71b656e2000-01-05 14:46:17 +0000494 const xmlChar *(*getPublicId)(void *ctx);
495 const xmlChar *(*getSystemId)(void *ctx);
496 int (*getLineNumber)(void *ctx);
497 int (*getColumnNumber)(void *ctx);
Daniel Veillardd4330462003-04-29 12:40:16 +0000498};
499</pre><p>
500A SAX Locator.</p><p>
501
502</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="resolveEntitySAXFunc"></a>resolveEntitySAXFunc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (*resolveEntitySAXFunc) (void *ctx,
503 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
504 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);</pre><p>
505Callback:
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000506The entity loader, to control the loading of external entities,
507the application can either:
Daniel Veillardd4330462003-04-29 12:40:16 +0000508 - override this <a href="libxml-SAX.html#resolveEntity">resolveEntity</a>() callback in the SAX block
509 - or better use the <a href="libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a>() function to
510 set up it's own entity resolution routine</p><p>
511
512</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
513</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
514</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
515</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlParserInputPtr if inlined or NULL for DOM behaviour.
516</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="internalSubsetSAXFunc"></a>internalSubsetSAXFunc ()</h3><pre class="programlisting">void (*internalSubsetSAXFunc) (void *ctx,
517 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
518 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
519 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
520Callback on internal subset declaration.</p><p>
521
522</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
523</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the root element name
524</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> the external ID
525</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> the SYSTEM ID (e.g. filename or URL)
526</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="externalSubsetSAXFunc"></a>externalSubsetSAXFunc ()</h3><pre class="programlisting">void (*externalSubsetSAXFunc) (void *ctx,
527 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
528 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
529 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
530Callback on external subset declaration.</p><p>
531
532</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
533</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the root element name
534</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> the external ID
535</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> the SYSTEM ID (e.g. filename or URL)
536</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="getEntitySAXFunc"></a>getEntitySAXFunc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (*getEntitySAXFunc) (void *ctx,
537 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
538Get an entity by name.</p><p>
539
540</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
541</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The entity name
542</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlEntityPtr if found.
543</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="getParameterEntitySAXFunc"></a>getParameterEntitySAXFunc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (*getParameterEntitySAXFunc) (void *ctx,
544 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
545Get a parameter entity by name.</p><p>
546
547</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
548</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The entity name
549</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlEntityPtr if found.
550</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="entityDeclSAXFunc"></a>entityDeclSAXFunc ()</h3><pre class="programlisting">void (*entityDeclSAXFunc) (void *ctx,
551 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000552 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +0000553 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
554 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
555 <a href="libxml-tree.html#xmlChar">xmlChar</a> *content);</pre><p>
556An entity definition has been parsed.</p><p>
557
558</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
559</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the entity name
560</td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td> the entity type
561</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
562</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
563</td></tr><tr><td><span class="term"><i><tt>content</tt></i> :</span></td><td> the entity value (without processing).
564</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="notationDeclSAXFunc"></a>notationDeclSAXFunc ()</h3><pre class="programlisting">void (*notationDeclSAXFunc) (void *ctx,
565 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
566 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
567 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);</pre><p>
568What to do when a notation declaration has been parsed.</p><p>
569
570</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
571</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The name of the notation
572</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
573</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
574</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="attributeDeclSAXFunc"></a>attributeDeclSAXFunc ()</h3><pre class="programlisting">void (*attributeDeclSAXFunc) (void *ctx,
575 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
576 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *fullname,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000577 int type,
578 int def,
Daniel Veillardd4330462003-04-29 12:40:16 +0000579 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *defaultValue,
580 <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);</pre><p>
581An attribute definition has been parsed.</p><p>
582
583</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
584</td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td> the name of the element
585</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i> :</span></td><td> the attribute name
586</td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td> the attribute type
587</td></tr><tr><td><span class="term"><i><tt>def</tt></i> :</span></td><td> the type of default value
588</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i> :</span></td><td> the attribute default value
589</td></tr><tr><td><span class="term"><i><tt>tree</tt></i> :</span></td><td> the tree of enumerated value set
590</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="elementDeclSAXFunc"></a>elementDeclSAXFunc ()</h3><pre class="programlisting">void (*elementDeclSAXFunc) (void *ctx,
591 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000592 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +0000593 <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);</pre><p>
594An element definition has been parsed.</p><p>
595
596</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
597</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the element name
598</td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td> the element type
599</td></tr><tr><td><span class="term"><i><tt>content</tt></i> :</span></td><td> the element value tree
600</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="unparsedEntityDeclSAXFunc"></a>unparsedEntityDeclSAXFunc ()</h3><pre class="programlisting">void (*unparsedEntityDeclSAXFunc) (void *ctx,
601 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
602 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
603 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
604 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *notationName);</pre><p>
605What to do when an unparsed entity declaration is parsed.</p><p>
606
607</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
608</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The name of the entity
609</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
610</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
611</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i> :</span></td><td> the name of the notation
612</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="setDocumentLocatorSAXFunc"></a>setDocumentLocatorSAXFunc ()</h3><pre class="programlisting">void (*setDocumentLocatorSAXFunc) (void *ctx,
613 <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc);</pre><p>
614Receive the document locator at startup, actually xmlDefaultSAXLocator.
615Everything is available on the context, so this is useless in our case.</p><p>
616
617</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
618</td></tr><tr><td><span class="term"><i><tt>loc</tt></i> :</span></td><td> A SAX Locator
619</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="startDocumentSAXFunc"></a>startDocumentSAXFunc ()</h3><pre class="programlisting">void (*startDocumentSAXFunc) (void *ctx);</pre><p>
620Called when the document start being processed.</p><p>
621
622</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
623</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="endDocumentSAXFunc"></a>endDocumentSAXFunc ()</h3><pre class="programlisting">void (*endDocumentSAXFunc) (void *ctx);</pre><p>
624Called when the document end has been detected.</p><p>
625
626</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
627</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="startElementSAXFunc"></a>startElementSAXFunc ()</h3><pre class="programlisting">void (*startElementSAXFunc) (void *ctx,
628 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
629 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **atts);</pre><p>
630Called when an opening tag has been processed.</p><p>
631
632</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
633</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The element name, including namespace prefix
634</td></tr><tr><td><span class="term"><i><tt>atts</tt></i> :</span></td><td> An array of name/value attributes pairs, NULL terminated
635</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="endElementSAXFunc"></a>endElementSAXFunc ()</h3><pre class="programlisting">void (*endElementSAXFunc) (void *ctx,
636 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
637Called when the end of an element has been detected.</p><p>
638
639</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
640</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The element name
641</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="attributeSAXFunc"></a>attributeSAXFunc ()</h3><pre class="programlisting">void (*attributeSAXFunc) (void *ctx,
642 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
643 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
644Handle an attribute that has been read by the parser.
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000645The default handling is to convert the attribute into an
646DOM subtree and past it in a new xmlAttr element added to
Daniel Veillardd4330462003-04-29 12:40:16 +0000647the element.</p><p>
648
649</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
650</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The attribute name, including namespace prefix
651</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> The attribute value
652</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="referenceSAXFunc"></a>referenceSAXFunc ()</h3><pre class="programlisting">void (*referenceSAXFunc) (void *ctx,
653 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
654Called when an entity reference is detected.</p><p>
655
656</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
657</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The entity name
658</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="charactersSAXFunc"></a>charactersSAXFunc ()</h3><pre class="programlisting">void (*charactersSAXFunc) (void *ctx,
659 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
660 int len);</pre><p>
661Receiving some chars from the parser.</p><p>
662
663</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
664</td></tr><tr><td><span class="term"><i><tt>ch</tt></i> :</span></td><td> a xmlChar string
665</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the number of xmlChar
666</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="ignorableWhitespaceSAXFunc"></a>ignorableWhitespaceSAXFunc ()</h3><pre class="programlisting">void (*ignorableWhitespaceSAXFunc) (void *ctx,
667 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
668 int len);</pre><p>
669Receiving some ignorable whitespaces from the parser.
670UNUSED: by default the DOM building will use characters.</p><p>
671
672</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
673</td></tr><tr><td><span class="term"><i><tt>ch</tt></i> :</span></td><td> a xmlChar string
674</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the number of xmlChar
675</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="processingInstructionSAXFunc"></a>processingInstructionSAXFunc ()</h3><pre class="programlisting">void (*processingInstructionSAXFunc) (void *ctx,
676 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *target,
677 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *data);</pre><p>
678A processing instruction has been parsed.</p><p>
679
680</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
681</td></tr><tr><td><span class="term"><i><tt>target</tt></i> :</span></td><td> the target name
682</td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the PI data's
683</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="commentSAXFunc"></a>commentSAXFunc ()</h3><pre class="programlisting">void (*commentSAXFunc) (void *ctx,
684 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
685A comment has been parsed.</p><p>
686
687</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
688</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> the comment content
689</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="cdataBlockSAXFunc"></a>cdataBlockSAXFunc ()</h3><pre class="programlisting">void (*cdataBlockSAXFunc) (void *ctx,
690 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
691 int len);</pre><p>
692Called when a pcdata block has been parsed.</p><p>
693
694</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
695</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> The pcdata content
696</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the block length
697</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="warningSAXFunc"></a>warningSAXFunc ()</h3><pre class="programlisting">void (*warningSAXFunc) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000698 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000699 ...);</pre><p>
700Display and format a warning messages, callback.</p><p>
701
702</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> an XML parser context
703</td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td> the message to display/transmit
704</td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td> extra parameters for the message display
705</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="errorSAXFunc"></a>errorSAXFunc ()</h3><pre class="programlisting">void (*errorSAXFunc) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000706 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000707 ...);</pre><p>
708Display and format an error messages, callback.</p><p>
709
710</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> an XML parser context
711</td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td> the message to display/transmit
712</td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td> extra parameters for the message display
713</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="fatalErrorSAXFunc"></a>fatalErrorSAXFunc ()</h3><pre class="programlisting">void (*fatalErrorSAXFunc) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000714 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000715 ...);</pre><p>
716Display and format fatal error messages, callback.
717Note: so far <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="fatalError">fatalError</GTKDOCLINK>() SAX callbacks are not used, <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="error">error</GTKDOCLINK>()
718 get all the callbacks for errors.</p><p>
719
720</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> an XML parser context
721</td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td> the message to display/transmit
722</td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td> extra parameters for the message display
723</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="isStandaloneSAXFunc"></a>isStandaloneSAXFunc ()</h3><pre class="programlisting">int (*isStandaloneSAXFunc) (void *ctx);</pre><p>
724Is this document tagged standalone?</p><p>
725
726</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
727</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if true
728</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="hasInternalSubsetSAXFunc"></a>hasInternalSubsetSAXFunc ()</h3><pre class="programlisting">int (*hasInternalSubsetSAXFunc) (void *ctx);</pre><p>
729Does this document has an internal subset.</p><p>
730
731</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
732</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if true
733</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="hasExternalSubsetSAXFunc"></a>hasExternalSubsetSAXFunc ()</h3><pre class="programlisting">int (*hasExternalSubsetSAXFunc) (void *ctx);</pre><p>
734Does this document has an external subset?</p><p>
735
736</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
737</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if true
738</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXHandler"></a>struct xmlSAXHandler</h3><pre class="programlisting">struct xmlSAXHandler {
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000739 internalSubsetSAXFunc internalSubset;
740 isStandaloneSAXFunc isStandalone;
741 hasInternalSubsetSAXFunc hasInternalSubset;
742 hasExternalSubsetSAXFunc hasExternalSubset;
743 resolveEntitySAXFunc resolveEntity;
744 getEntitySAXFunc getEntity;
745 entityDeclSAXFunc entityDecl;
746 notationDeclSAXFunc notationDecl;
747 attributeDeclSAXFunc attributeDecl;
748 elementDeclSAXFunc elementDecl;
749 unparsedEntityDeclSAXFunc unparsedEntityDecl;
750 setDocumentLocatorSAXFunc setDocumentLocator;
751 startDocumentSAXFunc startDocument;
752 endDocumentSAXFunc endDocument;
753 startElementSAXFunc startElement;
754 endElementSAXFunc endElement;
755 referenceSAXFunc reference;
756 charactersSAXFunc characters;
757 ignorableWhitespaceSAXFunc ignorableWhitespace;
758 processingInstructionSAXFunc processingInstruction;
759 commentSAXFunc comment;
760 warningSAXFunc warning;
761 errorSAXFunc error;
Daniel Veillardaec63562003-03-23 20:42:17 +0000762 fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000763 getParameterEntitySAXFunc getParameterEntity;
764 cdataBlockSAXFunc cdataBlock;
765 externalSubsetSAXFunc externalSubset;
Daniel Veillard52dcab32001-10-30 12:51:17 +0000766 int initialized;
Daniel Veillardd4330462003-04-29 12:40:16 +0000767};
768</pre><p>
769A SAX handler is bunch of callbacks called by the parser when processing
770of the input generate data or structure informations.</p><p>
771
772</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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 +0000773 (const char *URL,
774 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +0000775 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context);</pre><p>
776External entity loaders types.</p><p>
777
778</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> The System ID of the resource requested
779</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> The Public ID of the resource requested
780</td></tr><tr><td><span class="term"><i><tt>context</tt></i> :</span></td><td> the XML parser context
781</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the entity input parser.
782</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlInitParser"></a>xmlInitParser ()</h3><pre class="programlisting">void xmlInitParser (void);</pre><p>
783Initialization function for the XML parser.
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000784This is not reentrant. Call once before processing in case of
Daniel Veillardd4330462003-04-29 12:40:16 +0000785use in multithreaded programs.</p><p>
786
787</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCleanupParser"></a>xmlCleanupParser ()</h3><pre class="programlisting">void xmlCleanupParser (void);</pre><p>
788Cleanup function for the XML parser. It tries to reclaim all
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000789parsing related global memory allocated for the parser processing.
790It doesn't deallocate any document related memory. Calling this
Daniel Veillardaec63562003-03-23 20:42:17 +0000791function should not prevent reusing the parser.
Daniel Veillardd4330462003-04-29 12:40:16 +0000792One should call <a href="libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a>() only when the process has
793finished using the library or XML document built with it.</p><p>
794
795</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputRead"></a>xmlParserInputRead ()</h3><pre class="programlisting">int xmlParserInputRead (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
796 int len);</pre><p>
797This function refresh the input for the parser. It doesn't try to
798preserve pointers to the input buffer, and discard already read data</p><p>
799
800</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>in</tt></i> :</span></td><td> an XML parser input
801</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> an indicative size for the lookahead
802</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of xmlChars read, or -1 in case of error, 0 indicate the
803end of this entity
804</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputGrow"></a>xmlParserInputGrow ()</h3><pre class="programlisting">int xmlParserInputGrow (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
805 int len);</pre><p>
806This function increase the input for the parser. It tries to
807preserve pointers to the input buffer, and keep already read data</p><p>
808
809</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>in</tt></i> :</span></td><td> an XML parser input
810</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> an indicative size for the lookahead
811</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of xmlChars read, or -1 in case of error, 0 indicate the
812end of this entity
813</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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>
814a strdup for array of xmlChar's. Since they are supposed to be
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000815encoded in UTF-8 or an encoding with 8bit based chars, we assume
Daniel Veillardd4330462003-04-29 12:40:16 +0000816a termination mark of '0'.</p><p>
817
818</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the input xmlChar *
819</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar * or NULL
820</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
821 int len);</pre><p>
822a strndup for array of xmlChar's</p><p>
823
824</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the input xmlChar *
825</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the len of <i><tt>cur</tt></i>
826</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar * or NULL
827</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCharStrndup"></a>xmlCharStrndup ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlCharStrndup (const char *cur,
828 int len);</pre><p>
829a strndup for char's to xmlChar's</p><p>
830
831</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the input char *
832</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the len of <i><tt>cur</tt></i>
833</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar * or NULL
834</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCharStrdup"></a>xmlCharStrdup ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlCharStrdup (const char *cur);</pre><p>
835a strdup for char's to xmlChar's</p><p>
836
837</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the input char *
838</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar * or NULL
839</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
Daniel Veillard1566d3a1999-07-15 14:24:29 +0000840 int start,
Daniel Veillardd4330462003-04-29 12:40:16 +0000841 int len);</pre><p>
842Extract a substring of a given string</p><p>
843
844</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> the xmlChar * array (haystack)
845</td></tr><tr><td><span class="term"><i><tt>start</tt></i> :</span></td><td> the index of the first char (zero based)
846</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the length of the substring
847</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlChar * for the first occurrence or NULL.
848</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
849 <a href="libxml-tree.html#xmlChar">xmlChar</a> val);</pre><p>
850a strchr for xmlChar's</p><p>
851
852</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> the xmlChar * array
853</td></tr><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> the xmlChar to search
854</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlChar * for the first occurrence or NULL.
855</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
856 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);</pre><p>
857a strstr for xmlChar's</p><p>
858
859</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> the xmlChar * array (haystack)
860</td></tr><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> the xmlChar to search (needle)
861</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlChar * for the first occurrence or NULL.
862</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
863 <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);</pre><p>
864a case-ignoring strstr for xmlChar's</p><p>
865
866</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> the xmlChar * array (haystack)
867</td></tr><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> the xmlChar to search (needle)
868</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlChar * for the first occurrence or NULL.
869</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrcmp"></a>xmlStrcmp ()</h3><pre class="programlisting">int xmlStrcmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
870 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
871a strcmp for xmlChar's</p><p>
872
873</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str1</tt></i> :</span></td><td> the first xmlChar *
874</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
875</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the integer result of the comparison
876</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrncmp"></a>xmlStrncmp ()</h3><pre class="programlisting">int xmlStrncmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
877 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
878 int len);</pre><p>
879a strncmp for xmlChar's</p><p>
880
881</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str1</tt></i> :</span></td><td> the first xmlChar *
882</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
883</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the max comparison length
884</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the integer result of the comparison
885</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrcasecmp"></a>xmlStrcasecmp ()</h3><pre class="programlisting">int xmlStrcasecmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
886 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
887a strcasecmp for xmlChar's</p><p>
888
889</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str1</tt></i> :</span></td><td> the first xmlChar *
890</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
891</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the integer result of the comparison
892</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrncasecmp"></a>xmlStrncasecmp ()</h3><pre class="programlisting">int xmlStrncasecmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
893 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
894 int len);</pre><p>
895a strncasecmp for xmlChar's</p><p>
896
897</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str1</tt></i> :</span></td><td> the first xmlChar *
898</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
899</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the max comparison length
900</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the integer result of the comparison
901</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrEqual"></a>xmlStrEqual ()</h3><pre class="programlisting">int xmlStrEqual (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
902 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
903Check if both string are equal of have same content
904Should be a bit more readable and faster than <a href="libxml-parser.html#xmlStrEqual">xmlStrEqual</a>()</p><p>
905
906</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str1</tt></i> :</span></td><td> the first xmlChar *
907</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
908</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if they are equal, 0 if they are different
909</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrlen"></a>xmlStrlen ()</h3><pre class="programlisting">int xmlStrlen (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str);</pre><p>
910length of a xmlChar's string</p><p>
911
912</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> the xmlChar * array
913</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of xmlChar contained in the ARRAY.
914</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
915 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add);</pre><p>
916a strcat for array of xmlChar's. Since they are supposed to be
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000917encoded in UTF-8 or an encoding with 8bit based chars, we assume
Daniel Veillardd4330462003-04-29 12:40:16 +0000918a termination mark of '0'.</p><p>
919
920</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the original xmlChar * array
921</td></tr><tr><td><span class="term"><i><tt>add</tt></i> :</span></td><td> the xmlChar * array added
922</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar * containing the concatenated string.
923</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
924 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add,
925 int len);</pre><p>
926a strncat for array of xmlChar's, it will extend <i><tt>cur</tt></i> with the len
927first bytes of <i><tt>add</tt></i>.</p><p>
928
929</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the original xmlChar * array
930</td></tr><tr><td><span class="term"><i><tt>add</tt></i> :</span></td><td> the xmlChar * array added
931</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the length of <i><tt>add</tt></i>
932</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar *, the original <i><tt>cur</tt></i> is reallocated if needed
933and should not be freed
934</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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>
935parse an XML in-memory document and build a tree.</p><p>
936
937</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> a pointer to an array of xmlChar
938</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
939</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseMemory"></a>xmlParseMemory ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseMemory (const char *buffer,
940 int size);</pre><p>
941parse an XML in-memory block and build a tree.</p><p>
942
943</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an pointer to a char array
944</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
945</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
946</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseFile"></a>xmlParseFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseFile (const char *filename);</pre><p>
947parse an XML file and build a tree. Automatic support for ZLIB/Compress
948compressed document is provided by default if found at compile-time.</p><p>
949
950</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
951</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree if the file was wellformed,
952NULL otherwise.
953</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSubstituteEntitiesDefault"></a>xmlSubstituteEntitiesDefault ()</h3><pre class="programlisting">int xmlSubstituteEntitiesDefault (int val);</pre><p>
954Set and return the previous value for default entity support.
Daniel Veillard011b63c1999-06-02 17:44:04 +0000955Initially the parser always keep entity references instead of substituting
956entity values in the output. This function has to be used to change the
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000957default parser behavior
Daniel Veillardd4330462003-04-29 12:40:16 +0000958SAX::<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="substituteEntities">substituteEntities</GTKDOCLINK>() has to be used for changing that on a file by
959file basis.</p><p>
960
961</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> int 0 or 1
962</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the last value for 0 for no substitution, 1 for substitution.
963</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlKeepBlanksDefault"></a>xmlKeepBlanksDefault ()</h3><pre class="programlisting">int xmlKeepBlanksDefault (int val);</pre><p>
964Set and return the previous value for default blanks text nodes support.
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000965The 1.x version of the parser used an heuristic to try to detect
966ignorable white spaces. As a result the SAX callback was generating
Daniel Veillardd4330462003-04-29 12:40:16 +0000967<a href="libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a>() callbacks instead of <a href="libxml-SAX.html#characters">characters</a>() one, and when
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000968using the DOM output text nodes containing those blanks were not generated.
969The 2.x and later version will switch to the XML standard way and
Daniel Veillardd4330462003-04-29 12:40:16 +0000970<a href="libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a>() are only generated when running the parser in
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000971validating mode and when the current element doesn't allow CDATA or
972mixed content.
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000973This function is provided as a way to force the standard behavior
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000974on 1.X libs and to switch back to the old mode for compatibility when
975running 1.X client code on 2.X . Upgrade of 1.X code should be done
Daniel Veillardd4330462003-04-29 12:40:16 +0000976by using <a href="libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a>() commodity function to detect the &quot;empty&quot;
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000977nodes generated.
978This value also affect autogeneration of indentation when saving code
Daniel Veillardd4330462003-04-29 12:40:16 +0000979if blanks sections are kept, indentation is not generated.</p><p>
980
981</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> int 0 or 1
982</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the last value for 0 for no substitution, 1 for substitution.
983</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStopParser"></a>xmlStopParser ()</h3><pre class="programlisting">void xmlStopParser (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
984Blocks further parser processing</p><p>
985
986</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
987</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlPedanticParserDefault"></a>xmlPedanticParserDefault ()</h3><pre class="programlisting">int xmlPedanticParserDefault (int val);</pre><p>
988Set and return the previous value for enabling pedantic warnings.</p><p>
989
990</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> int 0 or 1
991</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the last value for 0 for no substitution, 1 for substitution.
992</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlLineNumbersDefault"></a>xmlLineNumbersDefault ()</h3><pre class="programlisting">int xmlLineNumbersDefault (int val);</pre><p>
993Set and return the previous value for enabling line numbers in elements
994contents. This may break on old application and is turned off by default.</p><p>
995
996</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> int 0 or 1
997</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the last value for 0 for no substitution, 1 for substitution.
998</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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>
999parse an XML in-memory document and build a tree.
1000In the case the document is not Well Formed, a tree is built anyway</p><p>
1001
1002</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> a pointer to an array of xmlChar
1003</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
1004</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRecoverMemory"></a>xmlRecoverMemory ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverMemory (const char *buffer,
1005 int size);</pre><p>
1006parse an XML in-memory block and build a tree.
1007In the case the document is not Well Formed, a tree is built anyway</p><p>
1008
1009</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an pointer to a char array
1010</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
1011</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
1012</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRecoverFile"></a>xmlRecoverFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverFile (const char *filename);</pre><p>
1013parse an XML file and build a tree. Automatic support for ZLIB/Compress
Daniel Veillard06622df2002-01-21 17:53:42 +00001014compressed document is provided by default if found at compile-time.
Daniel Veillardd4330462003-04-29 12:40:16 +00001015In the case the document is not Well Formed, a tree is built anyway</p><p>
1016
1017</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
1018</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
1019</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseDocument"></a>xmlParseDocument ()</h3><pre class="programlisting">int xmlParseDocument (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1020parse an XML document (and build a tree if using the standard SAX
1021interface).
1022</p><p>
1023[1] document ::= prolog element Misc*
1024</p><p>
1025[22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</p><p>
1026
1027</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1028</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0, -1 in case of error. the parser context is augmented
1029 as a result of the parsing.
1030</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseExtParsedEnt"></a>xmlParseExtParsedEnt ()</h3><pre class="programlisting">int xmlParseExtParsedEnt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1031parse a general parsed entity
Daniel Veillard06622df2002-01-21 17:53:42 +00001032An external general parsed entity is well-formed if it matches the
Daniel Veillardd4330462003-04-29 12:40:16 +00001033production labeled extParsedEnt.
1034</p><p>
1035[78] extParsedEnt ::= TextDecl? content</p><p>
1036
1037</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1038</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0, -1 in case of error. the parser context is augmented
1039 as a result of the parsing.
1040</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
1041 <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
1042 int recovery);</pre><p>
1043parse an XML in-memory document and build a tree.
Daniel Veillard06622df2002-01-21 17:53:42 +00001044It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001045If sax is NULL, fallback to the default DOM tree building routines.</p><p>
1046
1047</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1048</td></tr><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> a pointer to an array of xmlChar
1049</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
1050 documents
1051</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
1052</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXUserParseFile"></a>xmlSAXUserParseFile ()</h3><pre class="programlisting">int xmlSAXUserParseFile (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001053 void *user_data,
Daniel Veillardd4330462003-04-29 12:40:16 +00001054 const char *filename);</pre><p>
1055parse an XML file and call the given SAX handler routines.
1056Automatic support for ZLIB/Compress compressed document is provided</p><p>
1057
1058</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> a SAX handler
1059</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1060</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> a file name
1061</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 in case of success or a error number otherwise
1062</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXUserParseMemory"></a>xmlSAXUserParseMemory ()</h3><pre class="programlisting">int xmlSAXUserParseMemory (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001063 void *user_data,
1064 const char *buffer,
Daniel Veillardd4330462003-04-29 12:40:16 +00001065 int size);</pre><p>
1066A better SAX parsing routine.
1067parse an XML in-memory buffer and call the given SAX handler routines.</p><p>
1068
1069</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> a SAX handler
1070</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1071</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an in-memory XML document input
1072</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the length of the XML document in bytes
1073</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 in case of success or a error number otherwise
1074</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
Daniel Veillard06622df2002-01-21 17:53:42 +00001075 const char *buffer,
1076 int size,
Daniel Veillardd4330462003-04-29 12:40:16 +00001077 int recovery);</pre><p>
1078parse an XML in-memory block and use the given SAX function block
Daniel Veillard06622df2002-01-21 17:53:42 +00001079to handle the parsing callback. If sax is NULL, fallback to the default
Daniel Veillardd4330462003-04-29 12:40:16 +00001080DOM tree building routines.</p><p>
1081
1082</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1083</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an pointer to a char array
1084</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
1085</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
1086 documents
1087</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
1088</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
Daniel Veillardaec63562003-03-23 20:42:17 +00001089 const char *buffer,
1090 int size,
Daniel Veillard06622df2002-01-21 17:53:42 +00001091 int recovery,
Daniel Veillardd4330462003-04-29 12:40:16 +00001092 void *data);</pre><p>
1093parse an XML in-memory block and use the given SAX function block
Daniel Veillardaec63562003-03-23 20:42:17 +00001094to handle the parsing callback. If sax is NULL, fallback to the default
Daniel Veillardd4330462003-04-29 12:40:16 +00001095DOM tree building routines.
1096</p><p>
1097User data (void *) is stored within the parser context in the
1098context's _private member, so it is available nearly everywhere in libxml</p><p>
1099
1100</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1101</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an pointer to a char array
1102</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
1103</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
1104 documents
1105</td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the userdata
1106</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
1107</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
Daniel Veillardaec63562003-03-23 20:42:17 +00001108 const char *filename,
Daniel Veillardd4330462003-04-29 12:40:16 +00001109 int recovery);</pre><p>
1110parse an XML file and build a tree. Automatic support for ZLIB/Compress
Daniel Veillardaec63562003-03-23 20:42:17 +00001111compressed document is provided by default if found at compile-time.
1112It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001113If sax is NULL, fallback to the default DOM tree building routines.</p><p>
1114
1115</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1116</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
1117</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
1118 documents
1119</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
1120</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
Daniel Veillardaec63562003-03-23 20:42:17 +00001121 const char *filename,
1122 int recovery,
Daniel Veillardd4330462003-04-29 12:40:16 +00001123 void *data);</pre><p>
1124parse an XML file and build a tree. Automatic support for ZLIB/Compress
Daniel Veillardaec63562003-03-23 20:42:17 +00001125compressed document is provided by default if found at compile-time.
1126It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001127If sax is NULL, fallback to the default DOM tree building routines.
1128</p><p>
1129User data (void *) is stored within the parser context in the
1130context's _private member, so it is available nearly everywhere in libxml</p><p>
1131
1132</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1133</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
1134</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
1135 documents
1136</td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the userdata
1137</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
1138</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
1139 const char *filename);</pre><p>
1140parse an XML external entity out of context and build a tree.
Daniel Veillard06622df2002-01-21 17:53:42 +00001141It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001142If sax is NULL, fallback to the default DOM tree building routines.
1143</p><p>
1144[78] extParsedEnt ::= TextDecl? content
1145</p><p>
1146This correspond to a &quot;Well Balanced&quot; chunk</p><p>
1147
1148</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1149</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
1150</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
1151</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseEntity"></a>xmlParseEntity ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseEntity (const char *filename);</pre><p>
1152parse an XML external entity out of context and build a tree.
1153</p><p>
1154[78] extParsedEnt ::= TextDecl? content
1155</p><p>
1156This correspond to a &quot;Well Balanced&quot; chunk</p><p>
1157
1158</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
1159</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
1160</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
1161 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
1162Load and parse an external subset.</p><p>
1163
1164</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> a NAME* containing the External ID of the DTD
1165</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> a NAME* containing the URL to the DTD
1166</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting xmlDtdPtr or NULL in case of error.
1167</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
1168 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
1169 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
1170Load and parse an external subset.</p><p>
1171
1172</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1173</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> a NAME* containing the External ID of the DTD
1174</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> a NAME* containing the URL to the DTD
1175</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting xmlDtdPtr or NULL in case of error.
1176</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
1177 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
1178 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1179Load and parse a DTD</p><p>
1180
1181</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block or NULL
1182</td></tr><tr><td><span class="term"><i><tt>input</tt></i> :</span></td><td> an Input Buffer
1183</td></tr><tr><td><span class="term"><i><tt>enc</tt></i> :</span></td><td> the charset encoding if known
1184</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting xmlDtdPtr or NULL in case of error.
1185<i><tt>input</tt></i> will be freed at parsing end.
1186</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseBalancedChunkMemory"></a>xmlParseBalancedChunkMemory ()</h3><pre class="programlisting">int xmlParseBalancedChunkMemory (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
1187 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001188 void *user_data,
1189 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +00001190 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
1191 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1192Parse a well-balanced chunk of an XML document
Daniel Veillard06622df2002-01-21 17:53:42 +00001193called by the parser
1194The allowed sequence for the Well Balanced Chunk is the one defined by
Daniel Veillardd4330462003-04-29 12:40:16 +00001195the content production in the XML grammar:
1196</p><p>
1197[43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p><p>
1198
1199</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> the document the chunk pertains to
1200</td></tr><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler bloc (possibly NULL)
1201</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)
1202</td></tr><tr><td><span class="term"><i><tt>depth</tt></i> :</span></td><td> Used for loop detection, use 0
1203</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)
1204</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
1205</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 if the chunk is well balanced, -1 in case of args problem and
1206 the parser error code otherwise
1207</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseBalancedChunkMemoryRecover"></a>xmlParseBalancedChunkMemoryRecover ()</h3><pre class="programlisting">int xmlParseBalancedChunkMemoryRecover
1208 (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
1209 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard2ace1952002-09-26 12:28:02 +00001210 void *user_data,
1211 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +00001212 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
1213 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst,
1214 int recover);</pre><p>
1215Parse a well-balanced chunk of an XML document
Daniel Veillard2ace1952002-09-26 12:28:02 +00001216called by the parser
1217The allowed sequence for the Well Balanced Chunk is the one defined by
Daniel Veillardd4330462003-04-29 12:40:16 +00001218the content production in the XML grammar:
1219</p><p>
1220[43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p><p>
1221
1222</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> the document the chunk pertains to
1223</td></tr><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler bloc (possibly NULL)
1224</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)
1225</td></tr><tr><td><span class="term"><i><tt>depth</tt></i> :</span></td><td> Used for loop detection, use 0
1226</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)
1227</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
1228</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)
1229</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 if the chunk is well balanced, -1 in case of args problem and
1230 the parser error code otherwise
1231
1232In case recover is set to 1, the nodelist will not be empty even if
1233the parsed chunk is not well balanced.
1234</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseExternalEntity"></a>xmlParseExternalEntity ()</h3><pre class="programlisting">int xmlParseExternalEntity (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
1235 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001236 void *user_data,
1237 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +00001238 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
1239 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
1240 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1241Parse an external general entity
Daniel Veillard06622df2002-01-21 17:53:42 +00001242An external general parsed entity is well-formed if it matches the
Daniel Veillardd4330462003-04-29 12:40:16 +00001243production labeled extParsedEnt.
1244</p><p>
1245[78] extParsedEnt ::= TextDecl? content</p><p>
1246
1247</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> the document the chunk pertains to
1248</td></tr><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler bloc (possibly NULL)
1249</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)
1250</td></tr><tr><td><span class="term"><i><tt>depth</tt></i> :</span></td><td> Used for loop detection, use 0
1251</td></tr><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> the URL for the entity to load
1252</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> the System ID for the entity to load
1253</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
1254</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 if the entity is well formed, -1 in case of args problem and
1255 the parser error code otherwise
1256</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseCtxtExternalEntity"></a>xmlParseCtxtExternalEntity ()</h3><pre class="programlisting">int xmlParseCtxtExternalEntity (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx,
1257 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
1258 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
1259 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1260Parse an external general entity within an existing parsing context
Daniel Veillard06622df2002-01-21 17:53:42 +00001261An external general parsed entity is well-formed if it matches the
Daniel Veillardd4330462003-04-29 12:40:16 +00001262production labeled extParsedEnt.
1263</p><p>
1264[78] extParsedEnt ::= TextDecl? content</p><p>
1265
1266</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the existing parsing context
1267</td></tr><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> the URL for the entity to load
1268</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> the System ID for the entity to load
1269</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
1270</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 if the entity is well formed, -1 in case of args problem and
1271 the parser error code otherwise
1272</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlInitParserCtxt"></a>xmlInitParserCtxt ()</h3><pre class="programlisting">int xmlInitParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1273Initialize a parser context</p><p>
1274
1275</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1276</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 in case of success and -1 in case of error
1277</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlClearParserCtxt"></a>xmlClearParserCtxt ()</h3><pre class="programlisting">void xmlClearParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1278Clear (release owned resources) and reinitialize a parser context</p><p>
1279
1280</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1281</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeParserCtxt"></a>xmlFreeParserCtxt ()</h3><pre class="programlisting">void xmlFreeParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1282Free all the memory used by a parser context. However the parsed
1283document in ctxt-&gt;myDoc is not freed.</p><p>
1284
1285</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1286</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSetupParserForBuffer"></a>xmlSetupParserForBuffer ()</h3><pre class="programlisting">void xmlSetupParserForBuffer (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1287 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *buffer,
1288 const char *filename);</pre><p>
1289Setup the parser context to parse a new buffer; Clears any prior
Daniel Veillard06622df2002-01-21 17:53:42 +00001290contents from the parser context. The buffer parameter must not be
Daniel Veillardd4330462003-04-29 12:40:16 +00001291NULL, but the filename parameter can be</p><p>
1292
1293</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1294</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> a xmlChar * buffer
1295</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> a file name
1296</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCreateDocParserCtxt"></a>xmlCreateDocParserCtxt ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateDocParserCtxt (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);</pre><p>
1297Creates a parser context for an XML in-memory document.</p><p>
1298
1299</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> a pointer to an array of xmlChar
1300</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser context or NULL
1301</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetFeaturesList"></a>xmlGetFeaturesList ()</h3><pre class="programlisting">int xmlGetFeaturesList (int *len,
1302 const char **result);</pre><p>
1303Copy at most *<i><tt>len</tt></i> feature names into the <i><tt>result</tt></i> array</p><p>
1304
1305</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the length of the features name array (input/output)
1306</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.
1307</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 in case or error, or the total number of features,
1308 len is updated with the number of strings copied,
1309 strings must not be deallocated
1310</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetFeature"></a>xmlGetFeature ()</h3><pre class="programlisting">int xmlGetFeature (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard06622df2002-01-21 17:53:42 +00001311 const char *name,
Daniel Veillardd4330462003-04-29 12:40:16 +00001312 void *result);</pre><p>
1313Read the current value of one feature of this parser instance</p><p>
1314
1315</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML/HTML parser context
1316</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the feature name
1317</td></tr><tr><td><span class="term"><i><tt>result</tt></i> :</span></td><td> location to store the result
1318</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 in case or error, 0 otherwise
1319</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSetFeature"></a>xmlSetFeature ()</h3><pre class="programlisting">int xmlSetFeature (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard06622df2002-01-21 17:53:42 +00001320 const char *name,
Daniel Veillardd4330462003-04-29 12:40:16 +00001321 void *value);</pre><p>
1322Change the current value of one feature of this parser instance</p><p>
1323
1324</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML/HTML parser context
1325</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the feature name
1326</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> pointer to the location of the new value
1327</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 in case or error, 0 otherwise
1328</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
Daniel Veillard06622df2002-01-21 17:53:42 +00001329 void *user_data,
1330 const char *chunk,
1331 int size,
Daniel Veillardd4330462003-04-29 12:40:16 +00001332 const char *filename);</pre><p>
1333Create a parser context for using the XML parser in push mode.
1334If <i><tt>buffer</tt></i> and <i><tt>size</tt></i> are non-NULL, the data is used to detect
Daniel Veillardaec63562003-03-23 20:42:17 +00001335the encoding. The remaining characters will be parsed so they
1336don't need to be fed in again through xmlParseChunk.
Daniel Veillardd4330462003-04-29 12:40:16 +00001337To allow content encoding detection, <i><tt>size</tt></i> should be &gt;= 4
1338The value of <i><tt>filename</tt></i> is used for fetching external entities
1339and error/warning reports.</p><p>
1340
1341</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> a SAX handler
1342</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1343</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i> :</span></td><td> a pointer to an array of chars
1344</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> number of chars in the array
1345</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> an optional file name or URI
1346</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser context or NULL
1347</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseChunk"></a>xmlParseChunk ()</h3><pre class="programlisting">int xmlParseChunk (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard06622df2002-01-21 17:53:42 +00001348 const char *chunk,
1349 int size,
Daniel Veillardd4330462003-04-29 12:40:16 +00001350 int terminate);</pre><p>
1351Parse a Chunk of memory</p><p>
1352
1353</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1354</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i> :</span></td><td> an char array
1355</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size in byte of the chunk
1356</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i> :</span></td><td> last chunk indicator
1357</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>zero if no error, the xmlParserErrors otherwise.
1358</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
Daniel Veillard06622df2002-01-21 17:53:42 +00001359 void *user_data,
Daniel Veillardd4330462003-04-29 12:40:16 +00001360 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
1361 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
Daniel Veillard06622df2002-01-21 17:53:42 +00001362 void *ioctx,
Daniel Veillardd4330462003-04-29 12:40:16 +00001363 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1364Create a parser context for using the XML parser with an existing
1365I/O stream</p><p>
1366
1367</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> a SAX handler
1368</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1369</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i> :</span></td><td> an I/O read function
1370</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i> :</span></td><td> an I/O close function
1371</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i> :</span></td><td> an I/O handler
1372</td></tr><tr><td><span class="term"><i><tt>enc</tt></i> :</span></td><td> the charset encoding if known
1373</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser context or NULL
1374</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><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,
1375 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
1376 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1377Create a new input stream structure encapsulating the <i><tt>input</tt></i> into
1378a stream suitable for the parser.</p><p>
1379
1380</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1381</td></tr><tr><td><span class="term"><i><tt>input</tt></i> :</span></td><td> an I/O Input
1382</td></tr><tr><td><span class="term"><i><tt>enc</tt></i> :</span></td><td> the charset encoding if known
1383</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new input stream or NULL
1384</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserFindNodeInfo"></a>xmlParserFindNodeInfo ()</h3><pre class="programlisting">const <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a>* xmlParserFindNodeInfo
1385 (const <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1386 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);</pre><p>
1387Find the parser node info struct for a given node</p><p>
1388
1389</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>
1390</td></tr><tr><td><span class="term"><i><tt>node</tt></i> :</span></td><td> an XML node within the tree
1391</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>an xmlParserNodeInfo block pointer or NULL
1392</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlInitNodeInfoSeq"></a>xmlInitNodeInfoSeq ()</h3><pre class="programlisting">void xmlInitNodeInfoSeq (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);</pre><p>
1393-- Initialize (set to initial state) node info sequence</p><p>
1394
1395</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>seq</tt></i> :</span></td><td> a node info sequence pointer
1396</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlClearNodeInfoSeq"></a>xmlClearNodeInfoSeq ()</h3><pre class="programlisting">void xmlClearNodeInfoSeq (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);</pre><p>
1397-- Clear (release memory and reinitialize) node
1398 info sequence</p><p>
1399
1400</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>seq</tt></i> :</span></td><td> a node info sequence pointer
1401</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserFindNodeInfoIndex"></a>xmlParserFindNodeInfoIndex ()</h3><pre class="programlisting">unsigned <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="long">long</GTKDOCLINK> xmlParserFindNodeInfoIndex (const <a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq,
1402 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);</pre><p>
1403xmlParserFindNodeInfoIndex : Find the index that the info record for
1404 the given node is or should be at in a sorted sequence</p><p>
1405
1406</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>seq</tt></i> :</span></td><td> a node info sequence pointer
1407</td></tr><tr><td><span class="term"><i><tt>node</tt></i> :</span></td><td> an XML node pointer
1408</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a long indicating the position of the record
1409</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserAddNodeInfo"></a>xmlParserAddNodeInfo ()</h3><pre class="programlisting">void xmlParserAddNodeInfo (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1410 const <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info);</pre><p>
1411Insert node info record into the sorted sequence</p><p>
1412
1413</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1414</td></tr><tr><td><span class="term"><i><tt>info</tt></i> :</span></td><td> a node info sequence pointer
1415</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSetExternalEntityLoader"></a>xmlSetExternalEntityLoader ()</h3><pre class="programlisting">void xmlSetExternalEntityLoader (<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> f);</pre><p>
1416Changes the defaultexternal entity resolver function for the application</p><p>
1417
1418</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>f</tt></i> :</span></td><td> the new entity resolver function
1419</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetExternalEntityLoader"></a>xmlGetExternalEntityLoader ()</h3><pre class="programlisting"><a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> xmlGetExternalEntityLoader
1420 (void);</pre><p>
1421Get the default external entity resolver function for the application</p><p>
1422
1423</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlExternalEntityLoader function pointer
1424</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlLoadExternalEntity"></a>xmlLoadExternalEntity ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlLoadExternalEntity (const char *URL,
Daniel Veillard06622df2002-01-21 17:53:42 +00001425 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +00001426 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1427Load an external entity, note that the use of this function for
Daniel Veillard06622df2002-01-21 17:53:42 +00001428unparsed entities may generate problems
Daniel Veillardd4330462003-04-29 12:40:16 +00001429TODO: a more generic External entity API must be designed</p><p>
1430
1431</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> the URL for the entity to load
1432</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> the Public ID for the entity to load
1433</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
1434</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlParserInputPtr or NULL
1435</td></tr></tbody></table></div></div></div></div><table xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="libxml-lib.html"><b>&lt;&lt; Libxml Library Reference</b></a></td><td align="right"><a accesskey="n" href="libxml-xmlreader.html"><b>xmlreader &gt;&gt;</b></a></td></tr></table></body></html>