blob: dc5db0c8889bc244bacdb2d93378e4168080f78e [file] [log] [blame]
Daniel Veillardd4330462003-04-29 12:40:16 +00001<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>parser</title><meta name="generator" content="DocBook XSL Stylesheets V1.58.1"><style xmlns="http://www.w3.org/TR/xhtml1/transitional" type="text/css">
2 .synopsis, .classsynopsis {
3 background: #eeeeee;
4 border: solid 1px #aaaaaa;
5 padding: 0.5em;
6 }
7 .programlisting {
8 background: #eeeeff;
9 border: solid 1px #aaaaff;
10 padding: 0.5em;
11 }
12 .variablelist {
13 padding: 4px;
14 margin-left: 3em;
15 }
16 .navigation {
17 background: #ffeeee;
18 border: solid 1px #ffaaaa;
19 margin-top: 0.5em;
20 margin-bottom: 0.5em;
21 }
22 .navigation a {
23 color: #770000;
24 }
25 .navigation a:visited {
26 color: #550000;
27 }
28 .navigation .title {
29 font-size: 200%;
30 }
31 </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 +000032
Daniel Veillardd4330462003-04-29 12:40:16 +000033
34
35#define <a href="libxml-parser.html#XML-DEFAULT-VERSION-CAPS">XML_DEFAULT_VERSION</a>
36void (<a href="libxml-parser.html#xmlParserInputDeallocate">*xmlParserInputDeallocate</a>) (<a href="libxml-tree.html#xmlChar">xmlChar</a> *str);
37struct <a href="libxml-parser.html#xmlParserInput">xmlParserInput</a>;
38struct <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a>;
39typedef <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a>;
40struct <a href="libxml-parser.html#xmlParserNodeInfoSeq">xmlParserNodeInfoSeq</a>;
41typedef <a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a>;
42enum <a href="libxml-parser.html#xmlParserInputState">xmlParserInputState</a>;
43#define <a href="libxml-parser.html#XML-DETECT-IDS-CAPS">XML_DETECT_IDS</a>
44#define <a href="libxml-parser.html#XML-COMPLETE-ATTRS-CAPS">XML_COMPLETE_ATTRS</a>
45#define <a href="libxml-parser.html#XML-SKIP-IDS-CAPS">XML_SKIP_IDS</a>
46struct <a href="libxml-parser.html#xmlParserCtxt">xmlParserCtxt</a>;
47struct <a href="libxml-parser.html#xmlSAXLocator">xmlSAXLocator</a>;
48<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (<a href="libxml-parser.html#resolveEntitySAXFunc">*resolveEntitySAXFunc</a>) (void *ctx,
49 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
50 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);
51void (<a href="libxml-parser.html#internalSubsetSAXFunc">*internalSubsetSAXFunc</a>) (void *ctx,
52 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
53 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
54 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
55void (<a href="libxml-parser.html#externalSubsetSAXFunc">*externalSubsetSAXFunc</a>) (void *ctx,
56 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
57 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
58 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
59<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (<a href="libxml-parser.html#getEntitySAXFunc">*getEntitySAXFunc</a>) (void *ctx,
60 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
61<a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (<a href="libxml-parser.html#getParameterEntitySAXFunc">*getParameterEntitySAXFunc</a>) (void *ctx,
62 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
63void (<a href="libxml-parser.html#entityDeclSAXFunc">*entityDeclSAXFunc</a>) (void *ctx,
64 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +000065 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +000066 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
67 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
68 <a href="libxml-tree.html#xmlChar">xmlChar</a> *content);
69void (<a href="libxml-parser.html#notationDeclSAXFunc">*notationDeclSAXFunc</a>) (void *ctx,
70 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
71 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
72 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);
73void (<a href="libxml-parser.html#attributeDeclSAXFunc">*attributeDeclSAXFunc</a>) (void *ctx,
74 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
75 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *fullname,
Daniel Veillard5099ae81999-04-21 20:12:07 +000076 int type,
77 int def,
Daniel Veillardd4330462003-04-29 12:40:16 +000078 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *defaultValue,
79 <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);
80void (<a href="libxml-parser.html#elementDeclSAXFunc">*elementDeclSAXFunc</a>) (void *ctx,
81 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +000082 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +000083 <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);
84void (<a href="libxml-parser.html#unparsedEntityDeclSAXFunc">*unparsedEntityDeclSAXFunc</a>) (void *ctx,
85 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
86 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
87 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
88 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *notationName);
89void (<a href="libxml-parser.html#setDocumentLocatorSAXFunc">*setDocumentLocatorSAXFunc</a>) (void *ctx,
90 <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc);
91void (<a href="libxml-parser.html#startDocumentSAXFunc">*startDocumentSAXFunc</a>) (void *ctx);
92void (<a href="libxml-parser.html#endDocumentSAXFunc">*endDocumentSAXFunc</a>) (void *ctx);
93void (<a href="libxml-parser.html#startElementSAXFunc">*startElementSAXFunc</a>) (void *ctx,
94 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
95 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **atts);
96void (<a href="libxml-parser.html#endElementSAXFunc">*endElementSAXFunc</a>) (void *ctx,
97 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
98void (<a href="libxml-parser.html#attributeSAXFunc">*attributeSAXFunc</a>) (void *ctx,
99 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
100 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
101void (<a href="libxml-parser.html#referenceSAXFunc">*referenceSAXFunc</a>) (void *ctx,
102 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
103void (<a href="libxml-parser.html#charactersSAXFunc">*charactersSAXFunc</a>) (void *ctx,
104 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
Daniel Veillard35925471999-02-25 08:46:07 +0000105 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000106void (<a href="libxml-parser.html#ignorableWhitespaceSAXFunc">*ignorableWhitespaceSAXFunc</a>) (void *ctx,
107 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
Daniel Veillard35925471999-02-25 08:46:07 +0000108 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000109void (<a href="libxml-parser.html#processingInstructionSAXFunc">*processingInstructionSAXFunc</a>) (void *ctx,
110 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *target,
111 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *data);
112void (<a href="libxml-parser.html#commentSAXFunc">*commentSAXFunc</a>) (void *ctx,
113 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
114void (<a href="libxml-parser.html#cdataBlockSAXFunc">*cdataBlockSAXFunc</a>) (void *ctx,
115 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
Daniel Veillardb05deb71999-08-10 19:04:08 +0000116 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000117void (<a href="libxml-parser.html#warningSAXFunc">*warningSAXFunc</a>) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000118 const char *msg,
119 ...);
Daniel Veillardd4330462003-04-29 12:40:16 +0000120void (<a href="libxml-parser.html#errorSAXFunc">*errorSAXFunc</a>) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000121 const char *msg,
122 ...);
Daniel Veillardd4330462003-04-29 12:40:16 +0000123void (<a href="libxml-parser.html#fatalErrorSAXFunc">*fatalErrorSAXFunc</a>) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000124 const char *msg,
125 ...);
Daniel Veillardd4330462003-04-29 12:40:16 +0000126int (<a href="libxml-parser.html#isStandaloneSAXFunc">*isStandaloneSAXFunc</a>) (void *ctx);
127int (<a href="libxml-parser.html#hasInternalSubsetSAXFunc">*hasInternalSubsetSAXFunc</a>) (void *ctx);
128int (<a href="libxml-parser.html#hasExternalSubsetSAXFunc">*hasExternalSubsetSAXFunc</a>) (void *ctx);
129struct <a href="libxml-parser.html#xmlSAXHandler">xmlSAXHandler</a>;
130<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (<a href="libxml-parser.html#xmlExternalEntityLoader">*xmlExternalEntityLoader</a>)
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000131 (const char *URL,
132 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +0000133 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context);
134void <a href="libxml-parser.html#xmlInitParser">xmlInitParser</a> (void);
135void <a href="libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a> (void);
136int <a href="libxml-parser.html#xmlParserInputRead">xmlParserInputRead</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
Daniel Veillarde2d034d1999-07-27 19:52:06 +0000137 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000138int <a href="libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
Daniel Veillarde2d034d1999-07-27 19:52:06 +0000139 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000140<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);
141<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 +0000142 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000143<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 +0000144 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000145<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-parser.html#xmlCharStrdup">xmlCharStrdup</a> (const char *cur);
146<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 +0000147 int start,
148 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000149const <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,
150 <a href="libxml-tree.html#xmlChar">xmlChar</a> val);
151const <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,
152 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);
153const <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,
154 <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);
155int <a href="libxml-parser.html#xmlStrcmp">xmlStrcmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
156 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);
157int <a href="libxml-parser.html#xmlStrncmp">xmlStrncmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
158 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
Daniel Veillard35925471999-02-25 08:46:07 +0000159 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000160int <a href="libxml-parser.html#xmlStrcasecmp">xmlStrcasecmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
161 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);
162int <a href="libxml-parser.html#xmlStrncasecmp">xmlStrncasecmp</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
163 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000164 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000165int <a href="libxml-parser.html#xmlStrEqual">xmlStrEqual</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
166 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);
167int <a href="libxml-parser.html#xmlStrlen">xmlStrlen</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str);
168<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,
169 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add);
170<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,
171 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add,
Daniel Veillard35925471999-02-25 08:46:07 +0000172 int len);
Daniel Veillardd4330462003-04-29 12:40:16 +0000173<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);
174<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 +0000175 int size);
Daniel Veillardd4330462003-04-29 12:40:16 +0000176<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlParseFile">xmlParseFile</a> (const char *filename);
177int <a href="libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a> (int val);
178int <a href="libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a> (int val);
179void <a href="libxml-parser.html#xmlStopParser">xmlStopParser</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
180int <a href="libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a> (int val);
181int <a href="libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a> (int val);
182<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);
183<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 +0000184 int size);
Daniel Veillardd4330462003-04-29 12:40:16 +0000185<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlRecoverFile">xmlRecoverFile</a> (const char *filename);
186int <a href="libxml-parser.html#xmlParseDocument">xmlParseDocument</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
187int <a href="libxml-parser.html#xmlParseExtParsedEnt">xmlParseExtParsedEnt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
188<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,
189 <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
Daniel Veillard35925471999-02-25 08:46:07 +0000190 int recovery);
Daniel Veillardd4330462003-04-29 12:40:16 +0000191int <a href="libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000192 void *user_data,
193 const char *filename);
Daniel Veillardd4330462003-04-29 12:40:16 +0000194int <a href="libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a> (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000195 void *user_data,
Daniel Veillardbed7b052001-05-19 14:59:49 +0000196 const char *buffer,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000197 int size);
Daniel Veillardd4330462003-04-29 12:40:16 +0000198<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 +0000199 const char *buffer,
Daniel Veillard35925471999-02-25 08:46:07 +0000200 int size,
201 int recovery);
Daniel Veillardd4330462003-04-29 12:40:16 +0000202<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 +0000203 const char *buffer,
204 int size,
205 int recovery,
206 void *data);
Daniel Veillardd4330462003-04-29 12:40:16 +0000207<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 +0000208 const char *filename,
209 int recovery);
Daniel Veillardd4330462003-04-29 12:40:16 +0000210<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 +0000211 const char *filename,
212 int recovery,
213 void *data);
Daniel Veillardd4330462003-04-29 12:40:16 +0000214<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 +0000215 const char *filename);
Daniel Veillardd4330462003-04-29 12:40:16 +0000216<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> <a href="libxml-parser.html#xmlParseEntity">xmlParseEntity</a> (const char *filename);
217<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,
218 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
219<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,
220 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
221 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
222<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,
223 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
224 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
225int <a href="libxml-parser.html#xmlParseBalancedChunkMemory">xmlParseBalancedChunkMemory</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
226 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000227 void *user_data,
228 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +0000229 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
230 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);
231int <a href="libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a>
232 (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
233 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard2ace1952002-09-26 12:28:02 +0000234 void *user_data,
235 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +0000236 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
237 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst,
Daniel Veillard2ace1952002-09-26 12:28:02 +0000238 int recover);
Daniel Veillardd4330462003-04-29 12:40:16 +0000239int <a href="libxml-parser.html#xmlParseExternalEntity">xmlParseExternalEntity</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
240 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000241 void *user_data,
242 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +0000243 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
244 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
245 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);
246int <a href="libxml-parser.html#xmlParseCtxtExternalEntity">xmlParseCtxtExternalEntity</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx,
247 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
248 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
249 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);
250int <a href="libxml-parser.html#xmlInitParserCtxt">xmlInitParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
251void <a href="libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
252void <a href="libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
253void <a href="libxml-parser.html#xmlSetupParserForBuffer">xmlSetupParserForBuffer</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
254 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *buffer,
Daniel Veillard35925471999-02-25 08:46:07 +0000255 const char *filename);
Daniel Veillardd4330462003-04-29 12:40:16 +0000256<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);
257int <a href="libxml-parser.html#xmlGetFeaturesList">xmlGetFeaturesList</a> (int *len,
Daniel Veillard7c29ce22000-08-12 21:20:53 +0000258 const char **result);
Daniel Veillardd4330462003-04-29 12:40:16 +0000259int <a href="libxml-parser.html#xmlGetFeature">xmlGetFeature</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard7c29ce22000-08-12 21:20:53 +0000260 const char *name,
261 void *result);
Daniel Veillardd4330462003-04-29 12:40:16 +0000262int <a href="libxml-parser.html#xmlSetFeature">xmlSetFeature</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard7c29ce22000-08-12 21:20:53 +0000263 const char *name,
264 void *value);
Daniel Veillardd4330462003-04-29 12:40:16 +0000265<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 +0000266 void *user_data,
267 const char *chunk,
268 int size,
269 const char *filename);
Daniel Veillardd4330462003-04-29 12:40:16 +0000270int <a href="libxml-parser.html#xmlParseChunk">xmlParseChunk</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000271 const char *chunk,
272 int size,
273 int terminate);
Daniel Veillardd4330462003-04-29 12:40:16 +0000274<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 +0000275 void *user_data,
Daniel Veillardd4330462003-04-29 12:40:16 +0000276 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
277 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000278 void *ioctx,
Daniel Veillardd4330462003-04-29 12:40:16 +0000279 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
280<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,
281 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
282 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
283const <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a>* <a href="libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a>
284 (const <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
285 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);
286void <a href="libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a> (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);
287void <a href="libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a> (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);
288unsigned <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,
289 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);
290void <a href="libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
291 const <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info);
292void <a href="libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a> (<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> f);
293<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> <a href="libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a>
Daniel Veillard6bd26dc1999-09-03 14:28:40 +0000294 (void);
Daniel Veillardd4330462003-04-29 12:40:16 +0000295<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 +0000296 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +0000297 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
298</pre></div><div class="refsect1" lang="en"><h2>Description</h2><p>
299
Daniel Veillardd7cec922003-06-13 12:30:10 +0000300</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;
301</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000302The default version of XML used: 1.0</p><p>
303
304</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>
305Callback for freeing some parser input allocations.</p><p>
306
Daniel Veillardd7cec922003-06-13 12:30:10 +0000307</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
Daniel Veillardd4330462003-04-29 12:40:16 +0000308</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 +0000309 /* Input buffer */
310 xmlParserInputBufferPtr buf; /* UTF-8 encoded buffer */
311
312 const char *filename; /* The file analyzed, if any */
Daniel Veillard60087f32001-10-10 09:45:09 +0000313 const char *directory; /* the directory/base of the file */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000314 const xmlChar *base; /* Base of the array to parse */
315 const xmlChar *cur; /* Current char being parsed */
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000316 const xmlChar *end; /* end of the array to parse */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000317 int length; /* length if known */
318 int line; /* Current line */
319 int col; /* Current column */
Daniel Veillardd4330462003-04-29 12:40:16 +0000320 /*
321 * NOTE: consumed is only tested for equality in the parser code,
322 * so even if there is an overflow this should not give troubles
323 * for parsing very large instances.
324 */
325 unsigned long consumed; /* How many xmlChars already consumed */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000326 xmlParserInputDeallocate free; /* function to deallocate the base */
327 const xmlChar *encoding; /* the encoding string for entity */
328 const xmlChar *version; /* the version string for entity */
329 int standalone; /* Was that entity marked standalone */
Daniel Veillardd4330462003-04-29 12:40:16 +0000330};
331</pre><p>
332An xmlParserInput is an input flow for the XML processor.
Daniel Veillarde7ead2d2001-08-22 23:44:09 +0000333Each entity parsed is associated an xmlParserInput (except the
334few predefined ones). This is the case both for internal entities
335- in which case the flow is already completely in memory - or
336external entities - in which case we use the buf structure for
Daniel Veillardd4330462003-04-29 12:40:16 +0000337progressive reading and I18N conversions to the internal UTF-8 format.</p><p>
338
339</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 +0000340 const struct _xmlNode* node;
Daniel Veillard3bbbe6f2001-05-03 11:15:37 +0000341 /* Position &amp; line # that text that created the node begins &amp; ends on */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000342 unsigned long begin_pos;
343 unsigned long begin_line;
344 unsigned long end_pos;
345 unsigned long end_line;
Daniel Veillardd4330462003-04-29 12:40:16 +0000346};
347</pre><p>
348The parser can be asked to collect Node informations, i.e. at what
Daniel Veillarde7ead2d2001-08-22 23:44:09 +0000349place in the file they were detected.
Daniel Veillardd4330462003-04-29 12:40:16 +0000350NOTE: This is off by default and not very well tested.</p><p>
351
Daniel Veillardd7cec922003-06-13 12:30:10 +0000352</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;
353</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000354
355</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 +0000356 unsigned long maximum;
357 unsigned long length;
358 xmlParserNodeInfo* buffer;
Daniel Veillardd4330462003-04-29 12:40:16 +0000359};
360</pre><p>
361
Daniel Veillardd7cec922003-06-13 12:30:10 +0000362</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;
363</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000364
365</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 +0000366 XML_PARSER_EOF = -1, /* nothing is to be parsed */
367 XML_PARSER_START = 0, /* nothing has been parsed */
368 XML_PARSER_MISC, /* Misc* before int subset */
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000369 XML_PARSER_PI, /* Within a processing instruction */
Daniel Veillardbe849cf1999-12-28 16:43:59 +0000370 XML_PARSER_DTD, /* within some DTD content */
371 XML_PARSER_PROLOG, /* Misc* after internal subset */
372 XML_PARSER_COMMENT, /* within a comment */
373 XML_PARSER_START_TAG, /* within a start tag */
374 XML_PARSER_CONTENT, /* within the content */
375 XML_PARSER_CDATA_SECTION, /* within a CDATA section */
376 XML_PARSER_END_TAG, /* within a closing tag */
377 XML_PARSER_ENTITY_DECL, /* within an entity declaration */
378 XML_PARSER_ENTITY_VALUE, /* within an entity value in a decl */
379 XML_PARSER_ATTRIBUTE_VALUE, /* within an attribute value */
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000380 XML_PARSER_SYSTEM_LITERAL, /* within a SYSTEM value */
Daniel Veillard28929b22000-11-13 18:22:49 +0000381 XML_PARSER_EPILOG, /* the Misc* after the last end tag */
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000382 XML_PARSER_IGNORE, /* within an IGNORED section */
383 XML_PARSER_PUBLIC_LITERAL /* within a PUBLIC value */
Daniel Veillardd4330462003-04-29 12:40:16 +0000384} xmlParserInputState;
385</pre><p>
386The parser is now working also as a state based parser.
387The recursive one use the state info for entities processing.</p><p>
388
Daniel Veillardd7cec922003-06-13 12:30:10 +0000389</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
390</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000391Bit in the loadsubset context field to tell to do ID/REFs lookups.
392Use it to initialize xmlLoadExtDtdDefaultValue.</p><p>
393
Daniel Veillardd7cec922003-06-13 12:30:10 +0000394</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
395</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000396Bit in the loadsubset context field to tell to do complete the
Daniel Veillard19274092002-03-25 16:48:03 +0000397elements attributes lists with the ones defaulted from the DTDs.
Daniel Veillardd4330462003-04-29 12:40:16 +0000398Use it to initialize xmlLoadExtDtdDefaultValue.</p><p>
399
Daniel Veillardd7cec922003-06-13 12:30:10 +0000400</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
401</pre><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000402Bit in the loadsubset context field to tell to not do ID/REFs registration.
403Used to initialize xmlLoadExtDtdDefaultValue in some special cases.</p><p>
404
405</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 +0000406 struct _xmlSAXHandler *sax; /* The SAX handler */
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000407 void *userData; /* For SAX interface only, used by DOM build */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000408 xmlDocPtr myDoc; /* the document being built */
409 int wellFormed; /* is the document well formed */
410 int replaceEntities; /* shall we replace entities ? */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000411 const xmlChar *version; /* the XML version string */
412 const xmlChar *encoding; /* the declared encoding, if any */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000413 int standalone; /* standalone document */
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000414 int html; /* an HTML(1)/Docbook(2) document */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000415
416 /* Input stream stack */
417 xmlParserInputPtr input; /* Current input stream */
418 int inputNr; /* Number of current input streams */
419 int inputMax; /* Max number of input streams */
420 xmlParserInputPtr *inputTab; /* stack of inputs */
421
422 /* Node analysis stack only used for DOM building */
423 xmlNodePtr node; /* Current parsed Node */
424 int nodeNr; /* Depth of the parsing stack */
425 int nodeMax; /* Max depth of the parsing stack */
426 xmlNodePtr *nodeTab; /* array of nodes */
427
428 int record_info; /* Whether node info should be kept */
429 xmlParserNodeInfoSeq node_seq; /* info about each node parsed */
430
431 int errNo; /* error code */
432
433 int hasExternalSubset; /* reference and external subset */
434 int hasPErefs; /* the internal subset has PE refs */
435 int external; /* are we parsing an external entity */
436
437 int valid; /* is the document valid */
438 int validate; /* shall we try to validate ? */
439 xmlValidCtxt vctxt; /* The validity context */
440
441 xmlParserInputState instate; /* current type of input */
442 int token; /* next char look-ahead */
443
444 char *directory; /* the data directory */
445
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000446 /* Node name stack */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000447 xmlChar *name; /* Current parsed Node */
448 int nameNr; /* Depth of the parsing stack */
449 int nameMax; /* Max depth of the parsing stack */
450 xmlChar * *nameTab; /* array of nodes */
451
452 long nbChars; /* number of xmlChar processed */
453 long checkIndex; /* used by progressive parsing lookup */
Daniel Veillardf6868712000-01-05 14:58:38 +0000454 int keepBlanks; /* ugly but ... */
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000455 int disableSAX; /* SAX callbacks are disabled */
456 int inSubset; /* Parsing is in int 1/ext 2 subset */
457 xmlChar * intSubName; /* name of subset */
458 xmlChar * extSubURI; /* URI of external subset */
459 xmlChar * extSubSystem; /* SYSTEM ID of external subset */
460
461 /* xml:space values */
462 int * space; /* Should the parser preserve spaces */
463 int spaceNr; /* Depth of the parsing stack */
464 int spaceMax; /* Max depth of the parsing stack */
465 int * spaceTab; /* array of space infos */
466
467 int depth; /* to prevent entity substitution loops */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000468 xmlParserInputPtr entity; /* used to check entities boundaries */
469 int charset; /* encoding of the in-memory content
470 actually an xmlCharEncoding */
471 int nodelen; /* Those two fields are there to */
472 int nodemem; /* Speed up large node parsing */
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000473 int pedantic; /* signal pedantic warnings */
474 void *_private; /* For user data, libxml won't touch it */
Daniel Veillardd194dd22001-02-14 10:37:43 +0000475
476 int loadsubset; /* should the external subset be loaded */
Daniel Veillarde7ead2d2001-08-22 23:44:09 +0000477 int linenumbers; /* set line number in element content */
478 void *catalogs; /* document's own catalog */
Daniel Veillardaec63562003-03-23 20:42:17 +0000479 int recovery; /* run in recovery mode */
Daniel Veillardd4330462003-04-29 12:40:16 +0000480 int progressive; /* is this a progressive parsing */
481};
482</pre><p>
483The parser context.
Daniel Veillard19274092002-03-25 16:48:03 +0000484NOTE This doesn't completely define the parser state, the (current ?)
Daniel Veillardaec63562003-03-23 20:42:17 +0000485 design of the parser uses recursive function calls since this allow
486 and easy mapping from the production rules of the specification
487 to the actual code. The drawback is that the actual function call
488 also reflect the parser state. However most of the parsing routines
489 takes as the only argument the parser context pointer, so migrating
Daniel Veillardd4330462003-04-29 12:40:16 +0000490 to a state based parser for progressive parsing shouldn't be too hard.</p><p>
491
492</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 +0000493 const xmlChar *(*getPublicId)(void *ctx);
494 const xmlChar *(*getSystemId)(void *ctx);
495 int (*getLineNumber)(void *ctx);
496 int (*getColumnNumber)(void *ctx);
Daniel Veillardd4330462003-04-29 12:40:16 +0000497};
498</pre><p>
499A SAX Locator.</p><p>
500
501</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,
502 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
503 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);</pre><p>
504Callback:
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000505The entity loader, to control the loading of external entities,
506the application can either:
Daniel Veillardd4330462003-04-29 12:40:16 +0000507 - override this <a href="libxml-SAX.html#resolveEntity">resolveEntity</a>() callback in the SAX block
508 - or better use the <a href="libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a>() function to
509 set up it's own entity resolution routine</p><p>
510
Daniel Veillardd7cec922003-06-13 12:30:10 +0000511</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)
512</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
513</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
514</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.
Daniel Veillardd4330462003-04-29 12:40:16 +0000515</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,
516 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
517 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
518 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
519Callback on internal subset declaration.</p><p>
520
Daniel Veillardd7cec922003-06-13 12:30:10 +0000521</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)
522</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the root element name
523</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> the external ID
524</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> the SYSTEM ID (e.g. filename or URL)
Daniel Veillardd4330462003-04-29 12:40:16 +0000525</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,
526 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
527 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
528 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
529Callback on external subset declaration.</p><p>
530
Daniel Veillardd7cec922003-06-13 12:30:10 +0000531</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)
532</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the root element name
533</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> the external ID
534</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> the SYSTEM ID (e.g. filename or URL)
Daniel Veillardd4330462003-04-29 12:40:16 +0000535</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,
536 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
537Get an entity by name.</p><p>
538
Daniel Veillardd7cec922003-06-13 12:30:10 +0000539</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)
540</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The entity name
541</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlEntityPtr if found.
Daniel Veillardd4330462003-04-29 12:40:16 +0000542</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,
543 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
544Get a parameter entity by name.</p><p>
545
Daniel Veillardd7cec922003-06-13 12:30:10 +0000546</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)
547</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The entity name
548</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlEntityPtr if found.
Daniel Veillardd4330462003-04-29 12:40:16 +0000549</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,
550 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000551 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +0000552 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
553 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
554 <a href="libxml-tree.html#xmlChar">xmlChar</a> *content);</pre><p>
555An entity definition has been parsed.</p><p>
556
Daniel Veillardd7cec922003-06-13 12:30:10 +0000557</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)
558</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the entity name
559</td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td> the entity type
560</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
561</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
562</td></tr><tr><td><span class="term"><i><tt>content</tt></i> :</span></td><td> the entity value (without processing).
Daniel Veillardd4330462003-04-29 12:40:16 +0000563</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,
564 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
565 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
566 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);</pre><p>
567What to do when a notation declaration has been parsed.</p><p>
568
Daniel Veillardd7cec922003-06-13 12:30:10 +0000569</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)
570</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The name of the notation
571</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
572</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
Daniel Veillardd4330462003-04-29 12:40:16 +0000573</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,
574 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
575 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *fullname,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000576 int type,
577 int def,
Daniel Veillardd4330462003-04-29 12:40:16 +0000578 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *defaultValue,
579 <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);</pre><p>
580An attribute definition has been parsed.</p><p>
581
Daniel Veillardd7cec922003-06-13 12:30:10 +0000582</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)
583</td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td> the name of the element
584</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i> :</span></td><td> the attribute name
585</td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td> the attribute type
586</td></tr><tr><td><span class="term"><i><tt>def</tt></i> :</span></td><td> the type of default value
587</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i> :</span></td><td> the attribute default value
588</td></tr><tr><td><span class="term"><i><tt>tree</tt></i> :</span></td><td> the tree of enumerated value set
Daniel Veillardd4330462003-04-29 12:40:16 +0000589</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,
590 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000591 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +0000592 <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);</pre><p>
593An element definition has been parsed.</p><p>
594
Daniel Veillardd7cec922003-06-13 12:30:10 +0000595</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)
596</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the element name
597</td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td> the element type
598</td></tr><tr><td><span class="term"><i><tt>content</tt></i> :</span></td><td> the element value tree
Daniel Veillardd4330462003-04-29 12:40:16 +0000599</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,
600 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
601 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
602 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
603 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *notationName);</pre><p>
604What to do when an unparsed entity declaration is parsed.</p><p>
605
Daniel Veillardd7cec922003-06-13 12:30:10 +0000606</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)
607</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The name of the entity
608</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
609</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
610</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i> :</span></td><td> the name of the notation
Daniel Veillardd4330462003-04-29 12:40:16 +0000611</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,
612 <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc);</pre><p>
613Receive the document locator at startup, actually xmlDefaultSAXLocator.
614Everything is available on the context, so this is useless in our case.</p><p>
615
Daniel Veillardd7cec922003-06-13 12:30:10 +0000616</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)
617</td></tr><tr><td><span class="term"><i><tt>loc</tt></i> :</span></td><td> A SAX Locator
Daniel Veillardd4330462003-04-29 12:40:16 +0000618</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>
619Called when the document start being processed.</p><p>
620
Daniel Veillardd7cec922003-06-13 12:30:10 +0000621</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)
Daniel Veillardd4330462003-04-29 12:40:16 +0000622</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>
623Called when the document end has been detected.</p><p>
624
Daniel Veillardd7cec922003-06-13 12:30:10 +0000625</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)
Daniel Veillardd4330462003-04-29 12:40:16 +0000626</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,
627 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
628 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **atts);</pre><p>
629Called when an opening tag has been processed.</p><p>
630
Daniel Veillardd7cec922003-06-13 12:30:10 +0000631</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)
632</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The element name, including namespace prefix
633</td></tr><tr><td><span class="term"><i><tt>atts</tt></i> :</span></td><td> An array of name/value attributes pairs, NULL terminated
Daniel Veillardd4330462003-04-29 12:40:16 +0000634</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,
635 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
636Called when the end of an element has been detected.</p><p>
637
Daniel Veillardd7cec922003-06-13 12:30:10 +0000638</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)
639</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The element name
Daniel Veillardd4330462003-04-29 12:40:16 +0000640</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,
641 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
642 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
643Handle an attribute that has been read by the parser.
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000644The default handling is to convert the attribute into an
645DOM subtree and past it in a new xmlAttr element added to
Daniel Veillardd4330462003-04-29 12:40:16 +0000646the element.</p><p>
647
Daniel Veillardd7cec922003-06-13 12:30:10 +0000648</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)
649</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The attribute name, including namespace prefix
650</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> The attribute value
Daniel Veillardd4330462003-04-29 12:40:16 +0000651</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,
652 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
653Called when an entity reference is detected.</p><p>
654
Daniel Veillardd7cec922003-06-13 12:30:10 +0000655</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)
656</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The entity name
Daniel Veillardd4330462003-04-29 12:40:16 +0000657</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,
658 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
659 int len);</pre><p>
660Receiving some chars from the parser.</p><p>
661
Daniel Veillardd7cec922003-06-13 12:30:10 +0000662</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)
663</td></tr><tr><td><span class="term"><i><tt>ch</tt></i> :</span></td><td> a xmlChar string
664</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the number of xmlChar
Daniel Veillardd4330462003-04-29 12:40:16 +0000665</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,
666 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
667 int len);</pre><p>
668Receiving some ignorable whitespaces from the parser.
669UNUSED: by default the DOM building will use characters.</p><p>
670
Daniel Veillardd7cec922003-06-13 12:30:10 +0000671</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)
672</td></tr><tr><td><span class="term"><i><tt>ch</tt></i> :</span></td><td> a xmlChar string
673</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the number of xmlChar
Daniel Veillardd4330462003-04-29 12:40:16 +0000674</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,
675 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *target,
676 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *data);</pre><p>
677A processing instruction has been parsed.</p><p>
678
Daniel Veillardd7cec922003-06-13 12:30:10 +0000679</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)
680</td></tr><tr><td><span class="term"><i><tt>target</tt></i> :</span></td><td> the target name
681</td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the PI data's
Daniel Veillardd4330462003-04-29 12:40:16 +0000682</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,
683 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
684A comment has been parsed.</p><p>
685
Daniel Veillardd7cec922003-06-13 12:30:10 +0000686</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)
687</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> the comment content
Daniel Veillardd4330462003-04-29 12:40:16 +0000688</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,
689 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
690 int len);</pre><p>
691Called when a pcdata block has been parsed.</p><p>
692
Daniel Veillardd7cec922003-06-13 12:30:10 +0000693</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)
694</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> The pcdata content
695</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the block length
Daniel Veillardd4330462003-04-29 12:40:16 +0000696</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 +0000697 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000698 ...);</pre><p>
699Display and format a warning messages, callback.</p><p>
700
Daniel Veillardd7cec922003-06-13 12:30:10 +0000701</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
702</td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td> the message to display/transmit
703</td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td> extra parameters for the message display
Daniel Veillardd4330462003-04-29 12:40:16 +0000704</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 +0000705 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000706 ...);</pre><p>
707Display and format an error messages, callback.</p><p>
708
Daniel Veillardd7cec922003-06-13 12:30:10 +0000709</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
710</td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td> the message to display/transmit
711</td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td> extra parameters for the message display
Daniel Veillardd4330462003-04-29 12:40:16 +0000712</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 +0000713 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000714 ...);</pre><p>
715Display and format fatal error messages, callback.
716Note: 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>()
717 get all the callbacks for errors.</p><p>
718
Daniel Veillardd7cec922003-06-13 12:30:10 +0000719</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
720</td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td> the message to display/transmit
721</td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td> extra parameters for the message display
Daniel Veillardd4330462003-04-29 12:40:16 +0000722</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>
723Is this document tagged standalone?</p><p>
724
Daniel Veillardd7cec922003-06-13 12:30:10 +0000725</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)
726</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if true
Daniel Veillardd4330462003-04-29 12:40:16 +0000727</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>
728Does this document has an internal subset.</p><p>
729
Daniel Veillardd7cec922003-06-13 12:30:10 +0000730</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)
731</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if true
Daniel Veillardd4330462003-04-29 12:40:16 +0000732</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>
733Does this document has an external subset?</p><p>
734
Daniel Veillardd7cec922003-06-13 12:30:10 +0000735</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)
736</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if true
Daniel Veillardd4330462003-04-29 12:40:16 +0000737</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 +0000738 internalSubsetSAXFunc internalSubset;
739 isStandaloneSAXFunc isStandalone;
740 hasInternalSubsetSAXFunc hasInternalSubset;
741 hasExternalSubsetSAXFunc hasExternalSubset;
742 resolveEntitySAXFunc resolveEntity;
743 getEntitySAXFunc getEntity;
744 entityDeclSAXFunc entityDecl;
745 notationDeclSAXFunc notationDecl;
746 attributeDeclSAXFunc attributeDecl;
747 elementDeclSAXFunc elementDecl;
748 unparsedEntityDeclSAXFunc unparsedEntityDecl;
749 setDocumentLocatorSAXFunc setDocumentLocator;
750 startDocumentSAXFunc startDocument;
751 endDocumentSAXFunc endDocument;
752 startElementSAXFunc startElement;
753 endElementSAXFunc endElement;
754 referenceSAXFunc reference;
755 charactersSAXFunc characters;
756 ignorableWhitespaceSAXFunc ignorableWhitespace;
757 processingInstructionSAXFunc processingInstruction;
758 commentSAXFunc comment;
759 warningSAXFunc warning;
760 errorSAXFunc error;
Daniel Veillardaec63562003-03-23 20:42:17 +0000761 fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000762 getParameterEntitySAXFunc getParameterEntity;
763 cdataBlockSAXFunc cdataBlock;
764 externalSubsetSAXFunc externalSubset;
Daniel Veillard52dcab32001-10-30 12:51:17 +0000765 int initialized;
Daniel Veillardd4330462003-04-29 12:40:16 +0000766};
767</pre><p>
768A SAX handler is bunch of callbacks called by the parser when processing
769of the input generate data or structure informations.</p><p>
770
771</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 +0000772 (const char *URL,
773 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +0000774 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context);</pre><p>
775External entity loaders types.</p><p>
776
Daniel Veillardd7cec922003-06-13 12:30:10 +0000777</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
778</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> The Public ID of the resource requested
779</td></tr><tr><td><span class="term"><i><tt>context</tt></i> :</span></td><td> the XML parser context
780</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the entity input parser.
Daniel Veillardd4330462003-04-29 12:40:16 +0000781</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>
782Initialization function for the XML parser.
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000783This is not reentrant. Call once before processing in case of
Daniel Veillardd4330462003-04-29 12:40:16 +0000784use in multithreaded programs.</p><p>
785
786</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>
787Cleanup function for the XML parser. It tries to reclaim all
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000788parsing related global memory allocated for the parser processing.
789It doesn't deallocate any document related memory. Calling this
Daniel Veillardaec63562003-03-23 20:42:17 +0000790function should not prevent reusing the parser.
Daniel Veillardd4330462003-04-29 12:40:16 +0000791One should call <a href="libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a>() only when the process has
792finished using the library or XML document built with it.</p><p>
793
794</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,
795 int len);</pre><p>
796This function refresh the input for the parser. It doesn't try to
797preserve pointers to the input buffer, and discard already read data</p><p>
798
Daniel Veillardd7cec922003-06-13 12:30:10 +0000799</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
800</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> an indicative size for the lookahead
801</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
802end of this entity
Daniel Veillardd4330462003-04-29 12:40:16 +0000803</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,
804 int len);</pre><p>
805This function increase the input for the parser. It tries to
806preserve pointers to the input buffer, and keep already read data</p><p>
807
Daniel Veillardd7cec922003-06-13 12:30:10 +0000808</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
809</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> an indicative size for the lookahead
810</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
811end of this entity
Daniel Veillardd4330462003-04-29 12:40:16 +0000812</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>
813a strdup for array of xmlChar's. Since they are supposed to be
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000814encoded in UTF-8 or an encoding with 8bit based chars, we assume
Daniel Veillardd4330462003-04-29 12:40:16 +0000815a termination mark of '0'.</p><p>
816
Daniel Veillardd7cec922003-06-13 12:30:10 +0000817</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 *
818</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar * or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000819</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,
820 int len);</pre><p>
821a strndup for array of xmlChar's</p><p>
822
Daniel Veillardd7cec922003-06-13 12:30:10 +0000823</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 *
824</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the len of <i><tt>cur</tt></i>
825</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar * or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000826</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,
827 int len);</pre><p>
828a strndup for char's to xmlChar's</p><p>
829
Daniel Veillardd7cec922003-06-13 12:30:10 +0000830</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 *
831</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the len of <i><tt>cur</tt></i>
832</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar * or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000833</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>
834a strdup for char's to xmlChar's</p><p>
835
Daniel Veillardd7cec922003-06-13 12:30:10 +0000836</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 *
837</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar * or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000838</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 +0000839 int start,
Daniel Veillardd4330462003-04-29 12:40:16 +0000840 int len);</pre><p>
841Extract a substring of a given string</p><p>
842
Daniel Veillardd7cec922003-06-13 12:30:10 +0000843</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)
844</td></tr><tr><td><span class="term"><i><tt>start</tt></i> :</span></td><td> the index of the first char (zero based)
845</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the length of the substring
846</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.
Daniel Veillardd4330462003-04-29 12:40:16 +0000847</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,
848 <a href="libxml-tree.html#xmlChar">xmlChar</a> val);</pre><p>
849a strchr for xmlChar's</p><p>
850
Daniel Veillardd7cec922003-06-13 12:30:10 +0000851</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
852</td></tr><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> the xmlChar to search
853</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.
Daniel Veillardd4330462003-04-29 12:40:16 +0000854</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,
855 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);</pre><p>
856a strstr for xmlChar's</p><p>
857
Daniel Veillardd7cec922003-06-13 12:30:10 +0000858</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)
859</td></tr><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> the xmlChar to search (needle)
860</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.
Daniel Veillardd4330462003-04-29 12:40:16 +0000861</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,
862 <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);</pre><p>
863a case-ignoring strstr for xmlChar's</p><p>
864
Daniel Veillardd7cec922003-06-13 12:30:10 +0000865</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)
866</td></tr><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> the xmlChar to search (needle)
867</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.
Daniel Veillardd4330462003-04-29 12:40:16 +0000868</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,
869 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
870a strcmp for xmlChar's</p><p>
871
Daniel Veillardd7cec922003-06-13 12:30:10 +0000872</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 *
873</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
874</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the integer result of the comparison
Daniel Veillardd4330462003-04-29 12:40:16 +0000875</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,
876 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
877 int len);</pre><p>
878a strncmp for xmlChar's</p><p>
879
Daniel Veillardd7cec922003-06-13 12:30:10 +0000880</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 *
881</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
882</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the max comparison length
883</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the integer result of the comparison
Daniel Veillardd4330462003-04-29 12:40:16 +0000884</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,
885 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
886a strcasecmp for xmlChar's</p><p>
887
Daniel Veillardd7cec922003-06-13 12:30:10 +0000888</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 *
889</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
890</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the integer result of the comparison
Daniel Veillardd4330462003-04-29 12:40:16 +0000891</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,
892 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
893 int len);</pre><p>
894a strncasecmp for xmlChar's</p><p>
895
Daniel Veillardd7cec922003-06-13 12:30:10 +0000896</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 *
897</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
898</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the max comparison length
899</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the integer result of the comparison
Daniel Veillardd4330462003-04-29 12:40:16 +0000900</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,
901 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
902Check if both string are equal of have same content
903Should be a bit more readable and faster than <a href="libxml-parser.html#xmlStrEqual">xmlStrEqual</a>()</p><p>
904
Daniel Veillardd7cec922003-06-13 12:30:10 +0000905</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 *
906</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
907</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
Daniel Veillardd4330462003-04-29 12:40:16 +0000908</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>
909length of a xmlChar's string</p><p>
910
Daniel Veillardd7cec922003-06-13 12:30:10 +0000911</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
912</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.
Daniel Veillardd4330462003-04-29 12:40:16 +0000913</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,
914 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add);</pre><p>
915a strcat for array of xmlChar's. Since they are supposed to be
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000916encoded in UTF-8 or an encoding with 8bit based chars, we assume
Daniel Veillardd4330462003-04-29 12:40:16 +0000917a termination mark of '0'.</p><p>
918
Daniel Veillardd7cec922003-06-13 12:30:10 +0000919</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
920</td></tr><tr><td><span class="term"><i><tt>add</tt></i> :</span></td><td> the xmlChar * array added
921</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar * containing the concatenated string.
Daniel Veillardd4330462003-04-29 12:40:16 +0000922</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,
923 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add,
924 int len);</pre><p>
925a strncat for array of xmlChar's, it will extend <i><tt>cur</tt></i> with the len
926first bytes of <i><tt>add</tt></i>.</p><p>
927
Daniel Veillardd7cec922003-06-13 12:30:10 +0000928</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
929</td></tr><tr><td><span class="term"><i><tt>add</tt></i> :</span></td><td> the xmlChar * array added
930</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the length of <i><tt>add</tt></i>
931</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
932and should not be freed
Daniel Veillardd4330462003-04-29 12:40:16 +0000933</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>
934parse an XML in-memory document and build a tree.</p><p>
935
Daniel Veillardd7cec922003-06-13 12:30:10 +0000936</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
937</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +0000938</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,
939 int size);</pre><p>
940parse an XML in-memory block and build a tree.</p><p>
941
Daniel Veillardd7cec922003-06-13 12:30:10 +0000942</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
943</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
944</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +0000945</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>
946parse an XML file and build a tree. Automatic support for ZLIB/Compress
947compressed document is provided by default if found at compile-time.</p><p>
948
Daniel Veillardd7cec922003-06-13 12:30:10 +0000949</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
950</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,
951NULL otherwise.
Daniel Veillardd4330462003-04-29 12:40:16 +0000952</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>
953Set and return the previous value for default entity support.
Daniel Veillard011b63c1999-06-02 17:44:04 +0000954Initially the parser always keep entity references instead of substituting
955entity values in the output. This function has to be used to change the
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000956default parser behavior
Daniel Veillardd4330462003-04-29 12:40:16 +0000957SAX::<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="substituteEntities">substituteEntities</GTKDOCLINK>() has to be used for changing that on a file by
958file basis.</p><p>
959
Daniel Veillardd7cec922003-06-13 12:30:10 +0000960</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
961</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.
Daniel Veillardd4330462003-04-29 12:40:16 +0000962</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>
963Set and return the previous value for default blanks text nodes support.
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000964The 1.x version of the parser used an heuristic to try to detect
965ignorable white spaces. As a result the SAX callback was generating
Daniel Veillardd4330462003-04-29 12:40:16 +0000966<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 +0000967using the DOM output text nodes containing those blanks were not generated.
968The 2.x and later version will switch to the XML standard way and
Daniel Veillardd4330462003-04-29 12:40:16 +0000969<a href="libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a>() are only generated when running the parser in
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000970validating mode and when the current element doesn't allow CDATA or
971mixed content.
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000972This function is provided as a way to force the standard behavior
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000973on 1.X libs and to switch back to the old mode for compatibility when
974running 1.X client code on 2.X . Upgrade of 1.X code should be done
Daniel Veillardd4330462003-04-29 12:40:16 +0000975by using <a href="libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a>() commodity function to detect the &quot;empty&quot;
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000976nodes generated.
977This value also affect autogeneration of indentation when saving code
Daniel Veillardd4330462003-04-29 12:40:16 +0000978if blanks sections are kept, indentation is not generated.</p><p>
979
Daniel Veillardd7cec922003-06-13 12:30:10 +0000980</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
981</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.
Daniel Veillardd4330462003-04-29 12:40:16 +0000982</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>
983Blocks further parser processing</p><p>
984
Daniel Veillardd7cec922003-06-13 12:30:10 +0000985</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
Daniel Veillardd4330462003-04-29 12:40:16 +0000986</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>
987Set and return the previous value for enabling pedantic warnings.</p><p>
988
Daniel Veillardd7cec922003-06-13 12:30:10 +0000989</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
990</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.
Daniel Veillardd4330462003-04-29 12:40:16 +0000991</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>
992Set and return the previous value for enabling line numbers in elements
993contents. This may break on old application and is turned off by default.</p><p>
994
Daniel Veillardd7cec922003-06-13 12:30:10 +0000995</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
996</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.
Daniel Veillardd4330462003-04-29 12:40:16 +0000997</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>
998parse an XML in-memory document and build a tree.
999In the case the document is not Well Formed, a tree is built anyway</p><p>
1000
Daniel Veillardd7cec922003-06-13 12:30:10 +00001001</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
1002</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +00001003</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,
1004 int size);</pre><p>
1005parse an XML in-memory block and build a tree.
1006In the case the document is not Well Formed, a tree is built anyway</p><p>
1007
Daniel Veillardd7cec922003-06-13 12:30:10 +00001008</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
1009</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
1010</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +00001011</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>
1012parse an XML file and build a tree. Automatic support for ZLIB/Compress
Daniel Veillard06622df2002-01-21 17:53:42 +00001013compressed document is provided by default if found at compile-time.
Daniel Veillardd4330462003-04-29 12:40:16 +00001014In the case the document is not Well Formed, a tree is built anyway</p><p>
1015
Daniel Veillardd7cec922003-06-13 12:30:10 +00001016</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
1017</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +00001018</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>
1019parse an XML document (and build a tree if using the standard SAX
1020interface).
1021</p><p>
1022[1] document ::= prolog element Misc*
1023</p><p>
1024[22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</p><p>
1025
Daniel Veillardd7cec922003-06-13 12:30:10 +00001026</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
1027</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
1028 as a result of the parsing.
Daniel Veillardd4330462003-04-29 12:40:16 +00001029</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>
1030parse a general parsed entity
Daniel Veillard06622df2002-01-21 17:53:42 +00001031An external general parsed entity is well-formed if it matches the
Daniel Veillardd4330462003-04-29 12:40:16 +00001032production labeled extParsedEnt.
1033</p><p>
1034[78] extParsedEnt ::= TextDecl? content</p><p>
1035
Daniel Veillardd7cec922003-06-13 12:30:10 +00001036</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
1037</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
1038 as a result of the parsing.
Daniel Veillardd4330462003-04-29 12:40:16 +00001039</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,
1040 <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
1041 int recovery);</pre><p>
1042parse an XML in-memory document and build a tree.
Daniel Veillard06622df2002-01-21 17:53:42 +00001043It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001044If sax is NULL, fallback to the default DOM tree building routines.</p><p>
1045
Daniel Veillardd7cec922003-06-13 12:30:10 +00001046</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
1047</td></tr><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> a pointer to an array of xmlChar
1048</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
1049 documents
1050</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +00001051</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 +00001052 void *user_data,
Daniel Veillardd4330462003-04-29 12:40:16 +00001053 const char *filename);</pre><p>
1054parse an XML file and call the given SAX handler routines.
1055Automatic support for ZLIB/Compress compressed document is provided</p><p>
1056
Daniel Veillardd7cec922003-06-13 12:30:10 +00001057</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
1058</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1059</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> a file name
1060</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
Daniel Veillardd4330462003-04-29 12:40:16 +00001061</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 +00001062 void *user_data,
1063 const char *buffer,
Daniel Veillardd4330462003-04-29 12:40:16 +00001064 int size);</pre><p>
1065A better SAX parsing routine.
1066parse an XML in-memory buffer and call the given SAX handler routines.</p><p>
1067
Daniel Veillardd7cec922003-06-13 12:30:10 +00001068</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
1069</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1070</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an in-memory XML document input
1071</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the length of the XML document in bytes
1072</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
Daniel Veillardd4330462003-04-29 12:40:16 +00001073</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 +00001074 const char *buffer,
1075 int size,
Daniel Veillardd4330462003-04-29 12:40:16 +00001076 int recovery);</pre><p>
1077parse an XML in-memory block and use the given SAX function block
Daniel Veillard06622df2002-01-21 17:53:42 +00001078to handle the parsing callback. If sax is NULL, fallback to the default
Daniel Veillardd4330462003-04-29 12:40:16 +00001079DOM tree building routines.</p><p>
1080
Daniel Veillardd7cec922003-06-13 12:30:10 +00001081</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
1082</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an pointer to a char array
1083</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
1084</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
1085 documents
1086</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +00001087</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 +00001088 const char *buffer,
1089 int size,
Daniel Veillard06622df2002-01-21 17:53:42 +00001090 int recovery,
Daniel Veillardd4330462003-04-29 12:40:16 +00001091 void *data);</pre><p>
1092parse an XML in-memory block and use the given SAX function block
Daniel Veillardaec63562003-03-23 20:42:17 +00001093to handle the parsing callback. If sax is NULL, fallback to the default
Daniel Veillardd4330462003-04-29 12:40:16 +00001094DOM tree building routines.
1095</p><p>
1096User data (void *) is stored within the parser context in the
1097context's _private member, so it is available nearly everywhere in libxml</p><p>
1098
Daniel Veillardd7cec922003-06-13 12:30:10 +00001099</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
1100</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an pointer to a char array
1101</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
1102</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
1103 documents
1104</td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the userdata
1105</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +00001106</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 +00001107 const char *filename,
Daniel Veillardd4330462003-04-29 12:40:16 +00001108 int recovery);</pre><p>
1109parse an XML file and build a tree. Automatic support for ZLIB/Compress
Daniel Veillardaec63562003-03-23 20:42:17 +00001110compressed document is provided by default if found at compile-time.
1111It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001112If sax is NULL, fallback to the default DOM tree building routines.</p><p>
1113
Daniel Veillardd7cec922003-06-13 12:30:10 +00001114</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
1115</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
1116</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
1117 documents
1118</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +00001119</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 +00001120 const char *filename,
1121 int recovery,
Daniel Veillardd4330462003-04-29 12:40:16 +00001122 void *data);</pre><p>
1123parse an XML file and build a tree. Automatic support for ZLIB/Compress
Daniel Veillardaec63562003-03-23 20:42:17 +00001124compressed document is provided by default if found at compile-time.
1125It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001126If sax is NULL, fallback to the default DOM tree building routines.
1127</p><p>
1128User data (void *) is stored within the parser context in the
1129context's _private member, so it is available nearly everywhere in libxml</p><p>
1130
Daniel Veillardd7cec922003-06-13 12:30:10 +00001131</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
1132</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
1133</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
1134 documents
1135</td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the userdata
1136</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +00001137</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,
1138 const char *filename);</pre><p>
1139parse an XML external entity out of context and build a tree.
Daniel Veillard06622df2002-01-21 17:53:42 +00001140It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001141If sax is NULL, fallback to the default DOM tree building routines.
1142</p><p>
1143[78] extParsedEnt ::= TextDecl? content
1144</p><p>
1145This correspond to a &quot;Well Balanced&quot; chunk</p><p>
1146
Daniel Veillardd7cec922003-06-13 12:30:10 +00001147</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
1148</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
1149</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +00001150</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>
1151parse an XML external entity out of context and build a tree.
1152</p><p>
1153[78] extParsedEnt ::= TextDecl? content
1154</p><p>
1155This correspond to a &quot;Well Balanced&quot; chunk</p><p>
1156
Daniel Veillardd7cec922003-06-13 12:30:10 +00001157</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
1158</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree
Daniel Veillardd4330462003-04-29 12:40:16 +00001159</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,
1160 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
1161Load and parse an external subset.</p><p>
1162
Daniel Veillardd7cec922003-06-13 12:30:10 +00001163</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
1164</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> a NAME* containing the URL to the DTD
1165</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.
Daniel Veillardd4330462003-04-29 12:40:16 +00001166</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,
1167 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
1168 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
1169Load and parse an external subset.</p><p>
1170
Daniel Veillardd7cec922003-06-13 12:30:10 +00001171</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
1172</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> a NAME* containing the External ID of the DTD
1173</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> a NAME* containing the URL to the DTD
1174</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.
Daniel Veillardd4330462003-04-29 12:40:16 +00001175</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,
1176 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
1177 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1178Load and parse a DTD</p><p>
1179
Daniel Veillardd7cec922003-06-13 12:30:10 +00001180</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
1181</td></tr><tr><td><span class="term"><i><tt>input</tt></i> :</span></td><td> an Input Buffer
1182</td></tr><tr><td><span class="term"><i><tt>enc</tt></i> :</span></td><td> the charset encoding if known
1183</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.
1184<i><tt>input</tt></i> will be freed at parsing end.
Daniel Veillardd4330462003-04-29 12:40:16 +00001185</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,
1186 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001187 void *user_data,
1188 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +00001189 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
1190 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1191Parse a well-balanced chunk of an XML document
Daniel Veillard06622df2002-01-21 17:53:42 +00001192called by the parser
1193The allowed sequence for the Well Balanced Chunk is the one defined by
Daniel Veillardd4330462003-04-29 12:40:16 +00001194the content production in the XML grammar:
1195</p><p>
1196[43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p><p>
1197
Daniel Veillardd7cec922003-06-13 12:30:10 +00001198</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
1199</td></tr><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler bloc (possibly NULL)
1200</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)
1201</td></tr><tr><td><span class="term"><i><tt>depth</tt></i> :</span></td><td> Used for loop detection, use 0
1202</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)
1203</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
1204</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
1205 the parser error code otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +00001206</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
1207 (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
1208 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard2ace1952002-09-26 12:28:02 +00001209 void *user_data,
1210 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +00001211 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
1212 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst,
1213 int recover);</pre><p>
1214Parse a well-balanced chunk of an XML document
Daniel Veillard2ace1952002-09-26 12:28:02 +00001215called by the parser
1216The allowed sequence for the Well Balanced Chunk is the one defined by
Daniel Veillardd4330462003-04-29 12:40:16 +00001217the content production in the XML grammar:
1218</p><p>
1219[43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p><p>
1220
Daniel Veillardd7cec922003-06-13 12:30:10 +00001221</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
1222</td></tr><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler bloc (possibly NULL)
1223</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)
1224</td></tr><tr><td><span class="term"><i><tt>depth</tt></i> :</span></td><td> Used for loop detection, use 0
1225</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)
1226</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
1227</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)
1228</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
1229 the parser error code otherwise
1230
1231In case recover is set to 1, the nodelist will not be empty even if
1232the parsed chunk is not well balanced.
Daniel Veillardd4330462003-04-29 12:40:16 +00001233</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,
1234 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001235 void *user_data,
1236 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +00001237 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
1238 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
1239 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1240Parse an external general entity
Daniel Veillard06622df2002-01-21 17:53:42 +00001241An external general parsed entity is well-formed if it matches the
Daniel Veillardd4330462003-04-29 12:40:16 +00001242production labeled extParsedEnt.
1243</p><p>
1244[78] extParsedEnt ::= TextDecl? content</p><p>
1245
Daniel Veillardd7cec922003-06-13 12:30:10 +00001246</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
1247</td></tr><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler bloc (possibly NULL)
1248</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)
1249</td></tr><tr><td><span class="term"><i><tt>depth</tt></i> :</span></td><td> Used for loop detection, use 0
1250</td></tr><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> the URL for the entity to load
1251</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> the System ID for the entity to load
1252</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
1253</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
1254 the parser error code otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +00001255</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,
1256 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
1257 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
1258 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1259Parse an external general entity within an existing parsing context
Daniel Veillard06622df2002-01-21 17:53:42 +00001260An external general parsed entity is well-formed if it matches the
Daniel Veillardd4330462003-04-29 12:40:16 +00001261production labeled extParsedEnt.
1262</p><p>
1263[78] extParsedEnt ::= TextDecl? content</p><p>
1264
Daniel Veillardd7cec922003-06-13 12:30:10 +00001265</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
1266</td></tr><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> the URL for the entity to load
1267</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> the System ID for the entity to load
1268</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
1269</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
1270 the parser error code otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +00001271</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>
1272Initialize a parser context</p><p>
1273
Daniel Veillardd7cec922003-06-13 12:30:10 +00001274</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
1275</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
Daniel Veillardd4330462003-04-29 12:40:16 +00001276</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>
1277Clear (release owned resources) and reinitialize a parser context</p><p>
1278
Daniel Veillardd7cec922003-06-13 12:30:10 +00001279</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
Daniel Veillardd4330462003-04-29 12:40:16 +00001280</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>
1281Free all the memory used by a parser context. However the parsed
1282document in ctxt-&gt;myDoc is not freed.</p><p>
1283
Daniel Veillardd7cec922003-06-13 12:30:10 +00001284</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
Daniel Veillardd4330462003-04-29 12:40:16 +00001285</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,
1286 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *buffer,
1287 const char *filename);</pre><p>
1288Setup the parser context to parse a new buffer; Clears any prior
Daniel Veillard06622df2002-01-21 17:53:42 +00001289contents from the parser context. The buffer parameter must not be
Daniel Veillardd4330462003-04-29 12:40:16 +00001290NULL, but the filename parameter can be</p><p>
1291
Daniel Veillardd7cec922003-06-13 12:30:10 +00001292</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
1293</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> a xmlChar * buffer
1294</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> a file name
Daniel Veillardd4330462003-04-29 12:40:16 +00001295</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>
1296Creates a parser context for an XML in-memory document.</p><p>
1297
Daniel Veillardd7cec922003-06-13 12:30:10 +00001298</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
1299</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser context or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +00001300</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,
1301 const char **result);</pre><p>
1302Copy at most *<i><tt>len</tt></i> feature names into the <i><tt>result</tt></i> array</p><p>
1303
Daniel Veillardd7cec922003-06-13 12:30:10 +00001304</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)
1305</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.
1306</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,
1307 len is updated with the number of strings copied,
1308 strings must not be deallocated
Daniel Veillardd4330462003-04-29 12:40:16 +00001309</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 +00001310 const char *name,
Daniel Veillardd4330462003-04-29 12:40:16 +00001311 void *result);</pre><p>
1312Read the current value of one feature of this parser instance</p><p>
1313
Daniel Veillardd7cec922003-06-13 12:30:10 +00001314</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
1315</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the feature name
1316</td></tr><tr><td><span class="term"><i><tt>result</tt></i> :</span></td><td> location to store the result
1317</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 in case or error, 0 otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +00001318</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 +00001319 const char *name,
Daniel Veillardd4330462003-04-29 12:40:16 +00001320 void *value);</pre><p>
1321Change the current value of one feature of this parser instance</p><p>
1322
Daniel Veillardd7cec922003-06-13 12:30:10 +00001323</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
1324</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the feature name
1325</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> pointer to the location of the new value
1326</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 in case or error, 0 otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +00001327</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 +00001328 void *user_data,
1329 const char *chunk,
1330 int size,
Daniel Veillardd4330462003-04-29 12:40:16 +00001331 const char *filename);</pre><p>
1332Create a parser context for using the XML parser in push mode.
1333If <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 +00001334the encoding. The remaining characters will be parsed so they
1335don't need to be fed in again through xmlParseChunk.
Daniel Veillardd4330462003-04-29 12:40:16 +00001336To allow content encoding detection, <i><tt>size</tt></i> should be &gt;= 4
1337The value of <i><tt>filename</tt></i> is used for fetching external entities
1338and error/warning reports.</p><p>
1339
Daniel Veillardd7cec922003-06-13 12:30:10 +00001340</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
1341</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1342</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i> :</span></td><td> a pointer to an array of chars
1343</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> number of chars in the array
1344</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> an optional file name or URI
1345</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser context or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +00001346</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 +00001347 const char *chunk,
1348 int size,
Daniel Veillardd4330462003-04-29 12:40:16 +00001349 int terminate);</pre><p>
1350Parse a Chunk of memory</p><p>
1351
Daniel Veillardd7cec922003-06-13 12:30:10 +00001352</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
1353</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i> :</span></td><td> an char array
1354</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size in byte of the chunk
1355</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i> :</span></td><td> last chunk indicator
1356</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>zero if no error, the xmlParserErrors otherwise.
Daniel Veillardd4330462003-04-29 12:40:16 +00001357</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 +00001358 void *user_data,
Daniel Veillardd4330462003-04-29 12:40:16 +00001359 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
1360 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
Daniel Veillard06622df2002-01-21 17:53:42 +00001361 void *ioctx,
Daniel Veillardd4330462003-04-29 12:40:16 +00001362 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1363Create a parser context for using the XML parser with an existing
1364I/O stream</p><p>
1365
Daniel Veillardd7cec922003-06-13 12:30:10 +00001366</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
1367</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1368</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i> :</span></td><td> an I/O read function
1369</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i> :</span></td><td> an I/O close function
1370</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i> :</span></td><td> an I/O handler
1371</td></tr><tr><td><span class="term"><i><tt>enc</tt></i> :</span></td><td> the charset encoding if known
1372</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser context or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +00001373</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,
1374 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
1375 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1376Create a new input stream structure encapsulating the <i><tt>input</tt></i> into
1377a stream suitable for the parser.</p><p>
1378
Daniel Veillardd7cec922003-06-13 12:30:10 +00001379</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
1380</td></tr><tr><td><span class="term"><i><tt>input</tt></i> :</span></td><td> an I/O Input
1381</td></tr><tr><td><span class="term"><i><tt>enc</tt></i> :</span></td><td> the charset encoding if known
1382</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new input stream or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +00001383</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
1384 (const <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1385 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);</pre><p>
1386Find the parser node info struct for a given node</p><p>
1387
1388</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>
Daniel Veillardd7cec922003-06-13 12:30:10 +00001389</td></tr><tr><td><span class="term"><i><tt>node</tt></i> :</span></td><td> an XML node within the tree
1390</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>an xmlParserNodeInfo block pointer or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +00001391</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>
1392-- Initialize (set to initial state) node info sequence</p><p>
1393
Daniel Veillardd7cec922003-06-13 12:30:10 +00001394</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
Daniel Veillardd4330462003-04-29 12:40:16 +00001395</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>
1396-- Clear (release memory and reinitialize) node
1397 info sequence</p><p>
1398
Daniel Veillardd7cec922003-06-13 12:30:10 +00001399</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
Daniel Veillardd4330462003-04-29 12:40:16 +00001400</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,
1401 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);</pre><p>
1402xmlParserFindNodeInfoIndex : Find the index that the info record for
1403 the given node is or should be at in a sorted sequence</p><p>
1404
Daniel Veillardd7cec922003-06-13 12:30:10 +00001405</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
1406</td></tr><tr><td><span class="term"><i><tt>node</tt></i> :</span></td><td> an XML node pointer
1407</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
Daniel Veillardd4330462003-04-29 12:40:16 +00001408</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,
1409 const <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info);</pre><p>
1410Insert node info record into the sorted sequence</p><p>
1411
Daniel Veillardd7cec922003-06-13 12:30:10 +00001412</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
1413</td></tr><tr><td><span class="term"><i><tt>info</tt></i> :</span></td><td> a node info sequence pointer
Daniel Veillardd4330462003-04-29 12:40:16 +00001414</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>
1415Changes the defaultexternal entity resolver function for the application</p><p>
1416
Daniel Veillardd7cec922003-06-13 12:30:10 +00001417</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
Daniel Veillardd4330462003-04-29 12:40:16 +00001418</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
1419 (void);</pre><p>
1420Get the default external entity resolver function for the application</p><p>
1421
Daniel Veillardd7cec922003-06-13 12:30:10 +00001422</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
Daniel Veillardd4330462003-04-29 12:40:16 +00001423</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 +00001424 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +00001425 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1426Load an external entity, note that the use of this function for
Daniel Veillard06622df2002-01-21 17:53:42 +00001427unparsed entities may generate problems
Daniel Veillardd4330462003-04-29 12:40:16 +00001428TODO: a more generic External entity API must be designed</p><p>
1429
Daniel Veillardd7cec922003-06-13 12:30:10 +00001430</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
1431</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> the Public ID for the entity to load
1432</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
1433</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlParserInputPtr or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +00001434</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>