blob: 7cf372c5d65a5e02d53dd6201df5d16868a4cd6f [file] [log] [blame]
Daniel Veillard2fdbd322003-08-18 12:15:38 +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">
Daniel Veillardd4330462003-04-29 12:40:16 +00002 .synopsis, .classsynopsis {
3 background: #eeeeee;
4 border: solid 1px #aaaaaa;
5 padding: 0.5em;
6 }
7 .programlisting {
8 background: #eeeeff;
9 border: solid 1px #aaaaff;
10 padding: 0.5em;
11 }
12 .variablelist {
13 padding: 4px;
14 margin-left: 3em;
15 }
16 .navigation {
17 background: #ffeeee;
18 border: solid 1px #ffaaaa;
19 margin-top: 0.5em;
20 margin-bottom: 0.5em;
21 }
22 .navigation a {
23 color: #770000;
24 }
25 .navigation a:visited {
26 color: #550000;
27 }
28 .navigation .title {
29 font-size: 200%;
30 }
Daniel Veillard2fdbd322003-08-18 12:15:38 +000031 </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 Veillardcfba2fe2003-08-15 00:33:43 +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 "1.0"
Daniel Veillardd7cec922003-06-13 12:30:10 +0000301</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 Veillard2fdbd322003-08-18 12:15:38 +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 Veillard2fdbd322003-08-18 12:15:38 +0000447 const xmlChar *name; /* Current parsed Node */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000448 int nameNr; /* Depth of the parsing stack */
449 int nameMax; /* Max depth of the parsing stack */
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000450 const xmlChar * *nameTab; /* array of nodes */
Daniel Veillard71b656e2000-01-05 14:46:17 +0000451
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 */
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000457 const xmlChar * intSubName; /* name of subset */
Daniel Veillardedfb29b2000-03-14 19:59:05 +0000458 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 */
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000481 xmlDictPtr dict; /* dictionnary for the parser */
Daniel Veillardd4330462003-04-29 12:40:16 +0000482};
483</pre><p>
484The parser context.
Daniel Veillard19274092002-03-25 16:48:03 +0000485NOTE This doesn't completely define the parser state, the (current ?)
Daniel Veillardaec63562003-03-23 20:42:17 +0000486 design of the parser uses recursive function calls since this allow
487 and easy mapping from the production rules of the specification
488 to the actual code. The drawback is that the actual function call
489 also reflect the parser state. However most of the parsing routines
490 takes as the only argument the parser context pointer, so migrating
Daniel Veillardd4330462003-04-29 12:40:16 +0000491 to a state based parser for progressive parsing shouldn't be too hard.</p><p>
492
493</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXLocator"></a>struct xmlSAXLocator</h3><pre class="programlisting">struct xmlSAXLocator {
Daniel Veillard71b656e2000-01-05 14:46:17 +0000494 const xmlChar *(*getPublicId)(void *ctx);
495 const xmlChar *(*getSystemId)(void *ctx);
496 int (*getLineNumber)(void *ctx);
497 int (*getColumnNumber)(void *ctx);
Daniel Veillardd4330462003-04-29 12:40:16 +0000498};
499</pre><p>
500A SAX Locator.</p><p>
501
502</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="resolveEntitySAXFunc"></a>resolveEntitySAXFunc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (*resolveEntitySAXFunc) (void *ctx,
503 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
504 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);</pre><p>
505Callback:
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000506The entity loader, to control the loading of external entities,
507the application can either:
Daniel Veillardd4330462003-04-29 12:40:16 +0000508 - override this <a href="libxml-SAX.html#resolveEntity">resolveEntity</a>() callback in the SAX block
509 - or better use the <a href="libxml-parser.html#xmlSetExternalEntityLoader">xmlSetExternalEntityLoader</a>() function to
510 set up it's own entity resolution routine</p><p>
511
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000512</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
513</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
514</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
Daniel Veillardd7cec922003-06-13 12:30:10 +0000515</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 +0000516</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="internalSubsetSAXFunc"></a>internalSubsetSAXFunc ()</h3><pre class="programlisting">void (*internalSubsetSAXFunc) (void *ctx,
517 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
518 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
519 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
520Callback on internal subset declaration.</p><p>
521
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000522</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
523</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the root element name
524</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> the external ID
525</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> the SYSTEM ID (e.g. filename or URL)
Daniel Veillardd4330462003-04-29 12:40:16 +0000526</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="externalSubsetSAXFunc"></a>externalSubsetSAXFunc ()</h3><pre class="programlisting">void (*externalSubsetSAXFunc) (void *ctx,
527 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
528 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
529 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
530Callback on external subset declaration.</p><p>
531
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000532</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
533</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the root element name
534</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> the external ID
535</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> the SYSTEM ID (e.g. filename or URL)
Daniel Veillardd4330462003-04-29 12:40:16 +0000536</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="getEntitySAXFunc"></a>getEntitySAXFunc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (*getEntitySAXFunc) (void *ctx,
537 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
538Get an entity by name.</p><p>
539
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000540</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
541</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The entity name
Daniel Veillardd7cec922003-06-13 12:30:10 +0000542</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 +0000543</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="getParameterEntitySAXFunc"></a>getParameterEntitySAXFunc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEntityPtr">xmlEntityPtr</a> (*getParameterEntitySAXFunc) (void *ctx,
544 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
545Get a parameter entity by name.</p><p>
546
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000547</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
548</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The entity name
Daniel Veillardd7cec922003-06-13 12:30:10 +0000549</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 +0000550</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="entityDeclSAXFunc"></a>entityDeclSAXFunc ()</h3><pre class="programlisting">void (*entityDeclSAXFunc) (void *ctx,
551 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000552 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +0000553 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
554 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
555 <a href="libxml-tree.html#xmlChar">xmlChar</a> *content);</pre><p>
556An entity definition has been parsed.</p><p>
557
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000558</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
559</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the entity name
560</td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td> the entity type
561</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
562</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
563</td></tr><tr><td><span class="term"><i><tt>content</tt></i> :</span></td><td> the entity value (without processing).
Daniel Veillardd4330462003-04-29 12:40:16 +0000564</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="notationDeclSAXFunc"></a>notationDeclSAXFunc ()</h3><pre class="programlisting">void (*notationDeclSAXFunc) (void *ctx,
565 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
566 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
567 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId);</pre><p>
568What to do when a notation declaration has been parsed.</p><p>
569
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000570</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
571</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The name of the notation
572</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
573</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
Daniel Veillardd4330462003-04-29 12:40:16 +0000574</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="attributeDeclSAXFunc"></a>attributeDeclSAXFunc ()</h3><pre class="programlisting">void (*attributeDeclSAXFunc) (void *ctx,
575 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
576 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *fullname,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000577 int type,
578 int def,
Daniel Veillardd4330462003-04-29 12:40:16 +0000579 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *defaultValue,
580 <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);</pre><p>
581An attribute definition has been parsed.</p><p>
582
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000583</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
584</td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td> the name of the element
585</td></tr><tr><td><span class="term"><i><tt>fullname</tt></i> :</span></td><td> the attribute name
586</td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td> the attribute type
587</td></tr><tr><td><span class="term"><i><tt>def</tt></i> :</span></td><td> the type of default value
588</td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i> :</span></td><td> the attribute default value
589</td></tr><tr><td><span class="term"><i><tt>tree</tt></i> :</span></td><td> the tree of enumerated value set
Daniel Veillardd4330462003-04-29 12:40:16 +0000590</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="elementDeclSAXFunc"></a>elementDeclSAXFunc ()</h3><pre class="programlisting">void (*elementDeclSAXFunc) (void *ctx,
591 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
Daniel Veillard5099ae81999-04-21 20:12:07 +0000592 int type,
Daniel Veillardd4330462003-04-29 12:40:16 +0000593 <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);</pre><p>
594An element definition has been parsed.</p><p>
595
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000596</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
597</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the element name
598</td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td> the element type
599</td></tr><tr><td><span class="term"><i><tt>content</tt></i> :</span></td><td> the element value tree
Daniel Veillardd4330462003-04-29 12:40:16 +0000600</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="unparsedEntityDeclSAXFunc"></a>unparsedEntityDeclSAXFunc ()</h3><pre class="programlisting">void (*unparsedEntityDeclSAXFunc) (void *ctx,
601 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
602 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *publicId,
603 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *systemId,
604 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *notationName);</pre><p>
605What to do when an unparsed entity declaration is parsed.</p><p>
606
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000607</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
608</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The name of the entity
609</td></tr><tr><td><span class="term"><i><tt>publicId</tt></i> :</span></td><td> The public ID of the entity
610</td></tr><tr><td><span class="term"><i><tt>systemId</tt></i> :</span></td><td> The system ID of the entity
611</td></tr><tr><td><span class="term"><i><tt>notationName</tt></i> :</span></td><td> the name of the notation
Daniel Veillardd4330462003-04-29 12:40:16 +0000612</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="setDocumentLocatorSAXFunc"></a>setDocumentLocatorSAXFunc ()</h3><pre class="programlisting">void (*setDocumentLocatorSAXFunc) (void *ctx,
613 <a href="libxml-tree.html#xmlSAXLocatorPtr">xmlSAXLocatorPtr</a> loc);</pre><p>
614Receive the document locator at startup, actually xmlDefaultSAXLocator.
615Everything is available on the context, so this is useless in our case.</p><p>
616
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000617</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
618</td></tr><tr><td><span class="term"><i><tt>loc</tt></i> :</span></td><td> A SAX Locator
Daniel Veillardd4330462003-04-29 12:40:16 +0000619</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="startDocumentSAXFunc"></a>startDocumentSAXFunc ()</h3><pre class="programlisting">void (*startDocumentSAXFunc) (void *ctx);</pre><p>
620Called when the document start being processed.</p><p>
621
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000622</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 +0000623</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="endDocumentSAXFunc"></a>endDocumentSAXFunc ()</h3><pre class="programlisting">void (*endDocumentSAXFunc) (void *ctx);</pre><p>
624Called when the document end has been detected.</p><p>
625
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000626</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 +0000627</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="startElementSAXFunc"></a>startElementSAXFunc ()</h3><pre class="programlisting">void (*startElementSAXFunc) (void *ctx,
628 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
629 const <a href="libxml-tree.html#xmlChar">xmlChar</a> **atts);</pre><p>
630Called when an opening tag has been processed.</p><p>
631
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000632</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
633</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The element name, including namespace prefix
634</td></tr><tr><td><span class="term"><i><tt>atts</tt></i> :</span></td><td> An array of name/value attributes pairs, NULL terminated
Daniel Veillardd4330462003-04-29 12:40:16 +0000635</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="endElementSAXFunc"></a>endElementSAXFunc ()</h3><pre class="programlisting">void (*endElementSAXFunc) (void *ctx,
636 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
637Called when the end of an element has been detected.</p><p>
638
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000639</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
640</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The element name
Daniel Veillardd4330462003-04-29 12:40:16 +0000641</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="attributeSAXFunc"></a>attributeSAXFunc ()</h3><pre class="programlisting">void (*attributeSAXFunc) (void *ctx,
642 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
643 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
644Handle an attribute that has been read by the parser.
Daniel Veillard5f4b5992002-02-20 10:22:49 +0000645The default handling is to convert the attribute into an
646DOM subtree and past it in a new xmlAttr element added to
Daniel Veillardd4330462003-04-29 12:40:16 +0000647the element.</p><p>
648
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000649</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
650</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The attribute name, including namespace prefix
651</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> The attribute value
Daniel Veillardd4330462003-04-29 12:40:16 +0000652</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="referenceSAXFunc"></a>referenceSAXFunc ()</h3><pre class="programlisting">void (*referenceSAXFunc) (void *ctx,
653 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
654Called when an entity reference is detected.</p><p>
655
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000656</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
657</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> The entity name
Daniel Veillardd4330462003-04-29 12:40:16 +0000658</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="charactersSAXFunc"></a>charactersSAXFunc ()</h3><pre class="programlisting">void (*charactersSAXFunc) (void *ctx,
659 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
660 int len);</pre><p>
661Receiving some chars from the parser.</p><p>
662
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000663</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
664</td></tr><tr><td><span class="term"><i><tt>ch</tt></i> :</span></td><td> a xmlChar string
665</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the number of xmlChar
Daniel Veillardd4330462003-04-29 12:40:16 +0000666</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="ignorableWhitespaceSAXFunc"></a>ignorableWhitespaceSAXFunc ()</h3><pre class="programlisting">void (*ignorableWhitespaceSAXFunc) (void *ctx,
667 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ch,
668 int len);</pre><p>
669Receiving some ignorable whitespaces from the parser.
670UNUSED: by default the DOM building will use characters.</p><p>
671
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000672</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
673</td></tr><tr><td><span class="term"><i><tt>ch</tt></i> :</span></td><td> a xmlChar string
674</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the number of xmlChar
Daniel Veillardd4330462003-04-29 12:40:16 +0000675</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="processingInstructionSAXFunc"></a>processingInstructionSAXFunc ()</h3><pre class="programlisting">void (*processingInstructionSAXFunc) (void *ctx,
676 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *target,
677 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *data);</pre><p>
678A processing instruction has been parsed.</p><p>
679
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000680</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
681</td></tr><tr><td><span class="term"><i><tt>target</tt></i> :</span></td><td> the target name
682</td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the PI data's
Daniel Veillardd4330462003-04-29 12:40:16 +0000683</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="commentSAXFunc"></a>commentSAXFunc ()</h3><pre class="programlisting">void (*commentSAXFunc) (void *ctx,
684 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
685A comment has been parsed.</p><p>
686
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000687</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
688</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> the comment content
Daniel Veillardd4330462003-04-29 12:40:16 +0000689</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="cdataBlockSAXFunc"></a>cdataBlockSAXFunc ()</h3><pre class="programlisting">void (*cdataBlockSAXFunc) (void *ctx,
690 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
691 int len);</pre><p>
692Called when a pcdata block has been parsed.</p><p>
693
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000694</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the user data (XML parser context)
695</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> The pcdata content
696</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the block length
Daniel Veillardd4330462003-04-29 12:40:16 +0000697</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="warningSAXFunc"></a>warningSAXFunc ()</h3><pre class="programlisting">void (*warningSAXFunc) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000698 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000699 ...);</pre><p>
700Display and format a warning messages, callback.</p><p>
701
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000702</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> an XML parser context
703</td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td> the message to display/transmit
704</td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td> extra parameters for the message display
Daniel Veillardd4330462003-04-29 12:40:16 +0000705</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="errorSAXFunc"></a>errorSAXFunc ()</h3><pre class="programlisting">void (*errorSAXFunc) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000706 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000707 ...);</pre><p>
708Display and format an error messages, callback.</p><p>
709
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000710</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> an XML parser context
711</td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td> the message to display/transmit
712</td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td> extra parameters for the message display
Daniel Veillardd4330462003-04-29 12:40:16 +0000713</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="fatalErrorSAXFunc"></a>fatalErrorSAXFunc ()</h3><pre class="programlisting">void (*fatalErrorSAXFunc) (void *ctx,
Daniel Veillard35925471999-02-25 08:46:07 +0000714 const char *msg,
Daniel Veillardd4330462003-04-29 12:40:16 +0000715 ...);</pre><p>
716Display and format fatal error messages, callback.
717Note: so far <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="fatalError">fatalError</GTKDOCLINK>() SAX callbacks are not used, <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="error">error</GTKDOCLINK>()
718 get all the callbacks for errors.</p><p>
719
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000720</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> an XML parser context
721</td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td> the message to display/transmit
722</td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td> extra parameters for the message display
Daniel Veillardd4330462003-04-29 12:40:16 +0000723</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="isStandaloneSAXFunc"></a>isStandaloneSAXFunc ()</h3><pre class="programlisting">int (*isStandaloneSAXFunc) (void *ctx);</pre><p>
724Is this document tagged standalone?</p><p>
725
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000726</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 Veillardd7cec922003-06-13 12:30:10 +0000727</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 +0000728</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="hasInternalSubsetSAXFunc"></a>hasInternalSubsetSAXFunc ()</h3><pre class="programlisting">int (*hasInternalSubsetSAXFunc) (void *ctx);</pre><p>
729Does this document has an internal subset.</p><p>
730
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000731</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 Veillardd7cec922003-06-13 12:30:10 +0000732</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 +0000733</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="hasExternalSubsetSAXFunc"></a>hasExternalSubsetSAXFunc ()</h3><pre class="programlisting">int (*hasExternalSubsetSAXFunc) (void *ctx);</pre><p>
734Does this document has an external subset?</p><p>
735
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000736</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 Veillardd7cec922003-06-13 12:30:10 +0000737</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 +0000738</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXHandler"></a>struct xmlSAXHandler</h3><pre class="programlisting">struct xmlSAXHandler {
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000739 internalSubsetSAXFunc internalSubset;
740 isStandaloneSAXFunc isStandalone;
741 hasInternalSubsetSAXFunc hasInternalSubset;
742 hasExternalSubsetSAXFunc hasExternalSubset;
743 resolveEntitySAXFunc resolveEntity;
744 getEntitySAXFunc getEntity;
745 entityDeclSAXFunc entityDecl;
746 notationDeclSAXFunc notationDecl;
747 attributeDeclSAXFunc attributeDecl;
748 elementDeclSAXFunc elementDecl;
749 unparsedEntityDeclSAXFunc unparsedEntityDecl;
750 setDocumentLocatorSAXFunc setDocumentLocator;
751 startDocumentSAXFunc startDocument;
752 endDocumentSAXFunc endDocument;
753 startElementSAXFunc startElement;
754 endElementSAXFunc endElement;
755 referenceSAXFunc reference;
756 charactersSAXFunc characters;
757 ignorableWhitespaceSAXFunc ignorableWhitespace;
758 processingInstructionSAXFunc processingInstruction;
759 commentSAXFunc comment;
760 warningSAXFunc warning;
761 errorSAXFunc error;
Daniel Veillardaec63562003-03-23 20:42:17 +0000762 fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000763 getParameterEntitySAXFunc getParameterEntity;
764 cdataBlockSAXFunc cdataBlock;
765 externalSubsetSAXFunc externalSubset;
Daniel Veillard52dcab32001-10-30 12:51:17 +0000766 int initialized;
Daniel Veillardd4330462003-04-29 12:40:16 +0000767};
768</pre><p>
769A SAX handler is bunch of callbacks called by the parser when processing
770of the input generate data or structure informations.</p><p>
771
772</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlExternalEntityLoader"></a>xmlExternalEntityLoader ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> (*xmlExternalEntityLoader)
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000773 (const char *URL,
774 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +0000775 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> context);</pre><p>
776External entity loaders types.</p><p>
777
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000778</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> The System ID of the resource requested
779</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> The Public ID of the resource requested
780</td></tr><tr><td><span class="term"><i><tt>context</tt></i> :</span></td><td> the XML parser context
Daniel Veillardd7cec922003-06-13 12:30:10 +0000781</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 +0000782</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlInitParser"></a>xmlInitParser ()</h3><pre class="programlisting">void xmlInitParser (void);</pre><p>
783Initialization function for the XML parser.
Daniel Veillard3bff2b02000-10-01 20:33:47 +0000784This is not reentrant. Call once before processing in case of
Daniel Veillardd4330462003-04-29 12:40:16 +0000785use in multithreaded programs.</p><p>
786
787</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCleanupParser"></a>xmlCleanupParser ()</h3><pre class="programlisting">void xmlCleanupParser (void);</pre><p>
788Cleanup function for the XML parser. It tries to reclaim all
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000789parsing related global memory allocated for the parser processing.
790It doesn't deallocate any document related memory. Calling this
Daniel Veillardaec63562003-03-23 20:42:17 +0000791function should not prevent reusing the parser.
Daniel Veillardd4330462003-04-29 12:40:16 +0000792One should call <a href="libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a>() only when the process has
793finished using the library or XML document built with it.</p><p>
794
795</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputRead"></a>xmlParserInputRead ()</h3><pre class="programlisting">int xmlParserInputRead (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
796 int len);</pre><p>
797This function refresh the input for the parser. It doesn't try to
798preserve pointers to the input buffer, and discard already read data</p><p>
799
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000800</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>in</tt></i> :</span></td><td> an XML parser input
801</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> an indicative size for the lookahead
Daniel Veillardd7cec922003-06-13 12:30:10 +0000802</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of xmlChars read, or -1 in case of error, 0 indicate the
803end of this entity
Daniel Veillardd4330462003-04-29 12:40:16 +0000804</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputGrow"></a>xmlParserInputGrow ()</h3><pre class="programlisting">int xmlParserInputGrow (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in,
805 int len);</pre><p>
806This function increase the input for the parser. It tries to
807preserve pointers to the input buffer, and keep already read data</p><p>
808
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000809</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>in</tt></i> :</span></td><td> an XML parser input
810</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> an indicative size for the lookahead
Daniel Veillardd7cec922003-06-13 12:30:10 +0000811</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of xmlChars read, or -1 in case of error, 0 indicate the
812end of this entity
Daniel Veillardd4330462003-04-29 12:40:16 +0000813</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrdup"></a>xmlStrdup ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrdup (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);</pre><p>
814a strdup for array of xmlChar's. Since they are supposed to be
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000815encoded in UTF-8 or an encoding with 8bit based chars, we assume
Daniel Veillardd4330462003-04-29 12:40:16 +0000816a termination mark of '0'.</p><p>
817
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000818</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 *
Daniel Veillardd7cec922003-06-13 12:30:10 +0000819</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 +0000820</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrndup"></a>xmlStrndup ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrndup (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
821 int len);</pre><p>
822a strndup for array of xmlChar's</p><p>
823
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000824</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the input xmlChar *
825</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the len of <i><tt>cur</tt></i>
Daniel Veillardd7cec922003-06-13 12:30:10 +0000826</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 +0000827</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCharStrndup"></a>xmlCharStrndup ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlCharStrndup (const char *cur,
828 int len);</pre><p>
829a strndup for char's to xmlChar's</p><p>
830
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000831</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the input char *
832</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the len of <i><tt>cur</tt></i>
Daniel Veillardd7cec922003-06-13 12:30:10 +0000833</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 +0000834</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCharStrdup"></a>xmlCharStrdup ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlCharStrdup (const char *cur);</pre><p>
835a strdup for char's to xmlChar's</p><p>
836
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000837</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 *
Daniel Veillardd7cec922003-06-13 12:30:10 +0000838</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 +0000839</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrsub"></a>xmlStrsub ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrsub (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
Daniel Veillard1566d3a1999-07-15 14:24:29 +0000840 int start,
Daniel Veillardd4330462003-04-29 12:40:16 +0000841 int len);</pre><p>
842Extract a substring of a given string</p><p>
843
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000844</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> the xmlChar * array (haystack)
845</td></tr><tr><td><span class="term"><i><tt>start</tt></i> :</span></td><td> the index of the first char (zero based)
846</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the length of the substring
Daniel Veillardd7cec922003-06-13 12:30:10 +0000847</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 +0000848</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrchr"></a>xmlStrchr ()</h3><pre class="programlisting">const <a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrchr (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
849 <a href="libxml-tree.html#xmlChar">xmlChar</a> val);</pre><p>
850a strchr for xmlChar's</p><p>
851
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000852</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> the xmlChar * array
853</td></tr><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> the xmlChar to search
Daniel Veillardd7cec922003-06-13 12:30:10 +0000854</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 +0000855</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrstr"></a>xmlStrstr ()</h3><pre class="programlisting">const <a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrstr (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
856 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);</pre><p>
857a strstr for xmlChar's</p><p>
858
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000859</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> the xmlChar * array (haystack)
860</td></tr><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> the xmlChar to search (needle)
Daniel Veillardd7cec922003-06-13 12:30:10 +0000861</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 +0000862</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrcasestr"></a>xmlStrcasestr ()</h3><pre class="programlisting">const <a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrcasestr (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str,
863 <a href="libxml-tree.html#xmlChar">xmlChar</a> *val);</pre><p>
864a case-ignoring strstr for xmlChar's</p><p>
865
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000866</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> the xmlChar * array (haystack)
867</td></tr><tr><td><span class="term"><i><tt>val</tt></i> :</span></td><td> the xmlChar to search (needle)
Daniel Veillardd7cec922003-06-13 12:30:10 +0000868</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 +0000869</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrcmp"></a>xmlStrcmp ()</h3><pre class="programlisting">int xmlStrcmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
870 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
871a strcmp for xmlChar's</p><p>
872
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000873</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str1</tt></i> :</span></td><td> the first xmlChar *
874</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
Daniel Veillardd7cec922003-06-13 12:30:10 +0000875</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 +0000876</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrncmp"></a>xmlStrncmp ()</h3><pre class="programlisting">int xmlStrncmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
877 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
878 int len);</pre><p>
879a strncmp for xmlChar's</p><p>
880
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000881</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str1</tt></i> :</span></td><td> the first xmlChar *
882</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
883</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the max comparison length
Daniel Veillardd7cec922003-06-13 12:30:10 +0000884</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 +0000885</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrcasecmp"></a>xmlStrcasecmp ()</h3><pre class="programlisting">int xmlStrcasecmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
886 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
887a strcasecmp for xmlChar's</p><p>
888
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000889</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str1</tt></i> :</span></td><td> the first xmlChar *
890</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
Daniel Veillardd7cec922003-06-13 12:30:10 +0000891</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 +0000892</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrncasecmp"></a>xmlStrncasecmp ()</h3><pre class="programlisting">int xmlStrncasecmp (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
893 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2,
894 int len);</pre><p>
895a strncasecmp for xmlChar's</p><p>
896
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000897</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str1</tt></i> :</span></td><td> the first xmlChar *
898</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
899</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the max comparison length
Daniel Veillardd7cec922003-06-13 12:30:10 +0000900</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 +0000901</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrEqual"></a>xmlStrEqual ()</h3><pre class="programlisting">int xmlStrEqual (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str1,
902 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str2);</pre><p>
903Check if both string are equal of have same content
904Should be a bit more readable and faster than <a href="libxml-parser.html#xmlStrEqual">xmlStrEqual</a>()</p><p>
905
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000906</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str1</tt></i> :</span></td><td> the first xmlChar *
907</td></tr><tr><td><span class="term"><i><tt>str2</tt></i> :</span></td><td> the second xmlChar *
Daniel Veillardd7cec922003-06-13 12:30:10 +0000908</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 +0000909</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrlen"></a>xmlStrlen ()</h3><pre class="programlisting">int xmlStrlen (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *str);</pre><p>
910length of a xmlChar's string</p><p>
911
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000912</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
Daniel Veillardd7cec922003-06-13 12:30:10 +0000913</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 +0000914</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrcat"></a>xmlStrcat ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrcat (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
915 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add);</pre><p>
916a strcat for array of xmlChar's. Since they are supposed to be
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000917encoded in UTF-8 or an encoding with 8bit based chars, we assume
Daniel Veillardd4330462003-04-29 12:40:16 +0000918a termination mark of '0'.</p><p>
919
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000920</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the original xmlChar * array
921</td></tr><tr><td><span class="term"><i><tt>add</tt></i> :</span></td><td> the xmlChar * array added
Daniel Veillardd7cec922003-06-13 12:30:10 +0000922</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 +0000923</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStrncat"></a>xmlStrncat ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlStrncat (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
924 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *add,
925 int len);</pre><p>
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000926a strncat for array of xmlChar's, it will extend <i><tt>cur</tt></i> with the len
927first bytes of <i><tt>add</tt></i>.</p><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000928
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000929</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the original xmlChar * array
930</td></tr><tr><td><span class="term"><i><tt>add</tt></i> :</span></td><td> the xmlChar * array added
931</td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the length of <i><tt>add</tt></i>
932</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new xmlChar *, the original <i><tt>cur</tt></i> is reallocated if needed
Daniel Veillardd7cec922003-06-13 12:30:10 +0000933and should not be freed
Daniel Veillardd4330462003-04-29 12:40:16 +0000934</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseDoc"></a>xmlParseDoc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseDoc (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);</pre><p>
935parse an XML in-memory document and build a tree.</p><p>
936
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000937</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
Daniel Veillardd7cec922003-06-13 12:30:10 +0000938</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 +0000939</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseMemory"></a>xmlParseMemory ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseMemory (const char *buffer,
940 int size);</pre><p>
941parse an XML in-memory block and build a tree.</p><p>
942
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000943</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an pointer to a char array
944</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
Daniel Veillardd7cec922003-06-13 12:30:10 +0000945</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 +0000946</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseFile"></a>xmlParseFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseFile (const char *filename);</pre><p>
947parse an XML file and build a tree. Automatic support for ZLIB/Compress
948compressed document is provided by default if found at compile-time.</p><p>
949
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000950</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
Daniel Veillardd7cec922003-06-13 12:30:10 +0000951</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the resulting document tree if the file was wellformed,
952NULL otherwise.
Daniel Veillardd4330462003-04-29 12:40:16 +0000953</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSubstituteEntitiesDefault"></a>xmlSubstituteEntitiesDefault ()</h3><pre class="programlisting">int xmlSubstituteEntitiesDefault (int val);</pre><p>
954Set and return the previous value for default entity support.
Daniel Veillard011b63c1999-06-02 17:44:04 +0000955Initially the parser always keep entity references instead of substituting
956entity values in the output. This function has to be used to change the
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000957default parser behavior
Daniel Veillardd4330462003-04-29 12:40:16 +0000958SAX::<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="substituteEntities">substituteEntities</GTKDOCLINK>() has to be used for changing that on a file by
959file basis.</p><p>
960
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000961</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
Daniel Veillardd7cec922003-06-13 12:30:10 +0000962</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 +0000963</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlKeepBlanksDefault"></a>xmlKeepBlanksDefault ()</h3><pre class="programlisting">int xmlKeepBlanksDefault (int val);</pre><p>
964Set and return the previous value for default blanks text nodes support.
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000965The 1.x version of the parser used an heuristic to try to detect
966ignorable white spaces. As a result the SAX callback was generating
Daniel Veillardd4330462003-04-29 12:40:16 +0000967<a href="libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a>() callbacks instead of <a href="libxml-SAX.html#characters">characters</a>() one, and when
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000968using the DOM output text nodes containing those blanks were not generated.
969The 2.x and later version will switch to the XML standard way and
Daniel Veillardd4330462003-04-29 12:40:16 +0000970<a href="libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a>() are only generated when running the parser in
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000971validating mode and when the current element doesn't allow CDATA or
972mixed content.
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000973This function is provided as a way to force the standard behavior
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000974on 1.X libs and to switch back to the old mode for compatibility when
975running 1.X client code on 2.X . Upgrade of 1.X code should be done
Daniel Veillardcfba2fe2003-08-15 00:33:43 +0000976by using <a href="libxml-tree.html#xmlIsBlankNode">xmlIsBlankNode</a>() commodity function to detect the "empty"
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000977nodes generated.
978This value also affect autogeneration of indentation when saving code
Daniel Veillardd4330462003-04-29 12:40:16 +0000979if blanks sections are kept, indentation is not generated.</p><p>
980
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000981</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
Daniel Veillardd7cec922003-06-13 12:30:10 +0000982</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 +0000983</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlStopParser"></a>xmlStopParser ()</h3><pre class="programlisting">void xmlStopParser (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
984Blocks further parser processing</p><p>
985
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000986</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 +0000987</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlPedanticParserDefault"></a>xmlPedanticParserDefault ()</h3><pre class="programlisting">int xmlPedanticParserDefault (int val);</pre><p>
988Set and return the previous value for enabling pedantic warnings.</p><p>
989
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000990</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
Daniel Veillardd7cec922003-06-13 12:30:10 +0000991</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 +0000992</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlLineNumbersDefault"></a>xmlLineNumbersDefault ()</h3><pre class="programlisting">int xmlLineNumbersDefault (int val);</pre><p>
993Set and return the previous value for enabling line numbers in elements
994contents. This may break on old application and is turned off by default.</p><p>
995
Daniel Veillard2fdbd322003-08-18 12:15:38 +0000996</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
Daniel Veillardd7cec922003-06-13 12:30:10 +0000997</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 +0000998</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRecoverDoc"></a>xmlRecoverDoc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverDoc (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);</pre><p>
999parse an XML in-memory document and build a tree.
1000In the case the document is not Well Formed, a tree is built anyway</p><p>
1001
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001002</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
Daniel Veillardd7cec922003-06-13 12:30:10 +00001003</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 +00001004</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRecoverMemory"></a>xmlRecoverMemory ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverMemory (const char *buffer,
1005 int size);</pre><p>
1006parse an XML in-memory block and build a tree.
1007In the case the document is not Well Formed, a tree is built anyway</p><p>
1008
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001009</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an pointer to a char array
1010</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
Daniel Veillardd7cec922003-06-13 12:30:10 +00001011</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 +00001012</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRecoverFile"></a>xmlRecoverFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlRecoverFile (const char *filename);</pre><p>
1013parse an XML file and build a tree. Automatic support for ZLIB/Compress
Daniel Veillard06622df2002-01-21 17:53:42 +00001014compressed document is provided by default if found at compile-time.
Daniel Veillardd4330462003-04-29 12:40:16 +00001015In the case the document is not Well Formed, a tree is built anyway</p><p>
1016
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001017</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
Daniel Veillardd7cec922003-06-13 12:30:10 +00001018</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 +00001019</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseDocument"></a>xmlParseDocument ()</h3><pre class="programlisting">int xmlParseDocument (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1020parse an XML document (and build a tree if using the standard SAX
1021interface).
1022</p><p>
1023[1] document ::= prolog element Misc*
1024</p><p>
1025[22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</p><p>
1026
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001027</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 Veillardd7cec922003-06-13 12:30:10 +00001028</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0, -1 in case of error. the parser context is augmented
1029 as a result of the parsing.
Daniel Veillardd4330462003-04-29 12:40:16 +00001030</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseExtParsedEnt"></a>xmlParseExtParsedEnt ()</h3><pre class="programlisting">int xmlParseExtParsedEnt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1031parse a general parsed entity
Daniel Veillard06622df2002-01-21 17:53:42 +00001032An external general parsed entity is well-formed if it matches the
Daniel Veillardd4330462003-04-29 12:40:16 +00001033production labeled extParsedEnt.
1034</p><p>
1035[78] extParsedEnt ::= TextDecl? content</p><p>
1036
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001037</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 Veillardd7cec922003-06-13 12:30:10 +00001038</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0, -1 in case of error. the parser context is augmented
1039 as a result of the parsing.
Daniel Veillardd4330462003-04-29 12:40:16 +00001040</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXParseDoc"></a>xmlSAXParseDoc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseDoc (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1041 <a href="libxml-tree.html#xmlChar">xmlChar</a> *cur,
1042 int recovery);</pre><p>
1043parse an XML in-memory document and build a tree.
Daniel Veillard06622df2002-01-21 17:53:42 +00001044It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001045If sax is NULL, fallback to the default DOM tree building routines.</p><p>
1046
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001047</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1048</td></tr><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> a pointer to an array of xmlChar
1049</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i> :</span></td><td> work in recovery mode, i.e. tries to read no Well Formed
Daniel Veillardd7cec922003-06-13 12:30:10 +00001050 documents
1051</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 +00001052</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXUserParseFile"></a>xmlSAXUserParseFile ()</h3><pre class="programlisting">int xmlSAXUserParseFile (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001053 void *user_data,
Daniel Veillardd4330462003-04-29 12:40:16 +00001054 const char *filename);</pre><p>
1055parse an XML file and call the given SAX handler routines.
1056Automatic support for ZLIB/Compress compressed document is provided</p><p>
1057
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001058</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> a SAX handler
1059</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1060</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> a file name
Daniel Veillardd7cec922003-06-13 12:30:10 +00001061</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 +00001062</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXUserParseMemory"></a>xmlSAXUserParseMemory ()</h3><pre class="programlisting">int xmlSAXUserParseMemory (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001063 void *user_data,
1064 const char *buffer,
Daniel Veillardd4330462003-04-29 12:40:16 +00001065 int size);</pre><p>
1066A better SAX parsing routine.
1067parse an XML in-memory buffer and call the given SAX handler routines.</p><p>
1068
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001069</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> a SAX handler
1070</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1071</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an in-memory XML document input
1072</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the length of the XML document in bytes
Daniel Veillardd7cec922003-06-13 12:30:10 +00001073</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 +00001074</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXParseMemory"></a>xmlSAXParseMemory ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseMemory (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001075 const char *buffer,
1076 int size,
Daniel Veillardd4330462003-04-29 12:40:16 +00001077 int recovery);</pre><p>
1078parse an XML in-memory block and use the given SAX function block
Daniel Veillard06622df2002-01-21 17:53:42 +00001079to handle the parsing callback. If sax is NULL, fallback to the default
Daniel Veillardd4330462003-04-29 12:40:16 +00001080DOM tree building routines.</p><p>
1081
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001082</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1083</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an pointer to a char array
1084</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
1085</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i> :</span></td><td> work in recovery mode, i.e. tries to read not Well Formed
Daniel Veillardd7cec922003-06-13 12:30:10 +00001086 documents
1087</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 +00001088</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXParseMemoryWithData"></a>xmlSAXParseMemoryWithData ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseMemoryWithData (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillardaec63562003-03-23 20:42:17 +00001089 const char *buffer,
1090 int size,
Daniel Veillard06622df2002-01-21 17:53:42 +00001091 int recovery,
Daniel Veillardd4330462003-04-29 12:40:16 +00001092 void *data);</pre><p>
1093parse an XML in-memory block and use the given SAX function block
Daniel Veillardaec63562003-03-23 20:42:17 +00001094to handle the parsing callback. If sax is NULL, fallback to the default
Daniel Veillardd4330462003-04-29 12:40:16 +00001095DOM tree building routines.
1096</p><p>
1097User data (void *) is stored within the parser context in the
1098context's _private member, so it is available nearly everywhere in libxml</p><p>
1099
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001100</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1101</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> an pointer to a char array
1102</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size of the array
1103</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i> :</span></td><td> work in recovery mode, i.e. tries to read no Well Formed
Daniel Veillardd7cec922003-06-13 12:30:10 +00001104 documents
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001105</td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the userdata
Daniel Veillardd7cec922003-06-13 12:30:10 +00001106</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 +00001107</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXParseFile"></a>xmlSAXParseFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseFile (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillardaec63562003-03-23 20:42:17 +00001108 const char *filename,
Daniel Veillardd4330462003-04-29 12:40:16 +00001109 int recovery);</pre><p>
1110parse an XML file and build a tree. Automatic support for ZLIB/Compress
Daniel Veillardaec63562003-03-23 20:42:17 +00001111compressed document is provided by default if found at compile-time.
1112It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001113If sax is NULL, fallback to the default DOM tree building routines.</p><p>
1114
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001115</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1116</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
1117</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i> :</span></td><td> work in recovery mode, i.e. tries to read no Well Formed
Daniel Veillardd7cec922003-06-13 12:30:10 +00001118 documents
1119</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 +00001120</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXParseFileWithData"></a>xmlSAXParseFileWithData ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseFileWithData (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillardaec63562003-03-23 20:42:17 +00001121 const char *filename,
1122 int recovery,
Daniel Veillardd4330462003-04-29 12:40:16 +00001123 void *data);</pre><p>
1124parse an XML file and build a tree. Automatic support for ZLIB/Compress
Daniel Veillardaec63562003-03-23 20:42:17 +00001125compressed document is provided by default if found at compile-time.
1126It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001127If sax is NULL, fallback to the default DOM tree building routines.
1128</p><p>
1129User data (void *) is stored within the parser context in the
1130context's _private member, so it is available nearly everywhere in libxml</p><p>
1131
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001132</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1133</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
1134</td></tr><tr><td><span class="term"><i><tt>recovery</tt></i> :</span></td><td> work in recovery mode, i.e. tries to read no Well Formed
Daniel Veillardd7cec922003-06-13 12:30:10 +00001135 documents
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001136</td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the userdata
Daniel Veillardd7cec922003-06-13 12:30:10 +00001137</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 +00001138</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXParseEntity"></a>xmlSAXParseEntity ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlSAXParseEntity (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1139 const char *filename);</pre><p>
1140parse an XML external entity out of context and build a tree.
Daniel Veillard06622df2002-01-21 17:53:42 +00001141It use the given SAX function block to handle the parsing callback.
Daniel Veillardd4330462003-04-29 12:40:16 +00001142If sax is NULL, fallback to the default DOM tree building routines.
1143</p><p>
1144[78] extParsedEnt ::= TextDecl? content
1145</p><p>
Daniel Veillardcfba2fe2003-08-15 00:33:43 +00001146This correspond to a "Well Balanced" chunk</p><p>
Daniel Veillardd4330462003-04-29 12:40:16 +00001147
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001148</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1149</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename
Daniel Veillardd7cec922003-06-13 12:30:10 +00001150</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 +00001151</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseEntity"></a>xmlParseEntity ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> xmlParseEntity (const char *filename);</pre><p>
1152parse an XML external entity out of context and build a tree.
1153</p><p>
1154[78] extParsedEnt ::= TextDecl? content
1155</p><p>
Daniel Veillardcfba2fe2003-08-15 00:33:43 +00001156This correspond to a "Well Balanced" chunk</p><p>
Daniel Veillardd4330462003-04-29 12:40:16 +00001157
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001158</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
Daniel Veillardd7cec922003-06-13 12:30:10 +00001159</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 +00001160</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseDTD"></a>xmlParseDTD ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlParseDTD (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
1161 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
1162Load and parse an external subset.</p><p>
1163
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001164</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> a NAME* containing the External ID of the DTD
1165</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> a NAME* containing the URL to the DTD
Daniel Veillardd7cec922003-06-13 12:30:10 +00001166</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 +00001167</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSAXParseDTD"></a>xmlSAXParseDTD ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlSAXParseDTD (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1168 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ExternalID,
1169 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
1170Load and parse an external subset.</p><p>
1171
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001172</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block
1173</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i> :</span></td><td> a NAME* containing the External ID of the DTD
1174</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td> a NAME* containing the URL to the DTD
Daniel Veillardd7cec922003-06-13 12:30:10 +00001175</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 +00001176</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIOParseDTD"></a>xmlIOParseDTD ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> xmlIOParseDTD (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
1177 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
1178 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1179Load and parse a DTD</p><p>
1180
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001181</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler block or NULL
1182</td></tr><tr><td><span class="term"><i><tt>input</tt></i> :</span></td><td> an Input Buffer
1183</td></tr><tr><td><span class="term"><i><tt>enc</tt></i> :</span></td><td> the charset encoding if known
Daniel Veillardd7cec922003-06-13 12:30:10 +00001184</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 Veillard2fdbd322003-08-18 12:15:38 +00001185<i><tt>input</tt></i> will be freed at parsing end.
Daniel Veillardd4330462003-04-29 12:40:16 +00001186</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseBalancedChunkMemory"></a>xmlParseBalancedChunkMemory ()</h3><pre class="programlisting">int xmlParseBalancedChunkMemory (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
1187 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001188 void *user_data,
1189 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +00001190 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
1191 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1192Parse a well-balanced chunk of an XML document
Daniel Veillard06622df2002-01-21 17:53:42 +00001193called by the parser
1194The allowed sequence for the Well Balanced Chunk is the one defined by
Daniel Veillardd4330462003-04-29 12:40:16 +00001195the content production in the XML grammar:
1196</p><p>
1197[43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p><p>
1198
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001199</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> the document the chunk pertains to
1200</td></tr><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler bloc (possibly NULL)
1201</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks (possibly NULL)
1202</td></tr><tr><td><span class="term"><i><tt>depth</tt></i> :</span></td><td> Used for loop detection, use 0
1203</td></tr><tr><td><span class="term"><i><tt>string</tt></i> :</span></td><td> the input string in UTF8 or ISO-Latin (zero terminated)
1204</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
Daniel Veillardd7cec922003-06-13 12:30:10 +00001205</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 if the chunk is well balanced, -1 in case of args problem and
1206 the parser error code otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +00001207</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseBalancedChunkMemoryRecover"></a>xmlParseBalancedChunkMemoryRecover ()</h3><pre class="programlisting">int xmlParseBalancedChunkMemoryRecover
1208 (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
1209 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard2ace1952002-09-26 12:28:02 +00001210 void *user_data,
1211 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +00001212 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *string,
1213 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst,
1214 int recover);</pre><p>
1215Parse a well-balanced chunk of an XML document
Daniel Veillard2ace1952002-09-26 12:28:02 +00001216called by the parser
1217The allowed sequence for the Well Balanced Chunk is the one defined by
Daniel Veillardd4330462003-04-29 12:40:16 +00001218the content production in the XML grammar:
1219</p><p>
1220[43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</p><p>
1221
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001222</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> the document the chunk pertains to
1223</td></tr><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler bloc (possibly NULL)
1224</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks (possibly NULL)
1225</td></tr><tr><td><span class="term"><i><tt>depth</tt></i> :</span></td><td> Used for loop detection, use 0
1226</td></tr><tr><td><span class="term"><i><tt>string</tt></i> :</span></td><td> the input string in UTF8 or ISO-Latin (zero terminated)
1227</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
1228</td></tr><tr><td><span class="term"><i><tt>recover</tt></i> :</span></td><td> return nodes even if the data is broken (use 0)
Daniel Veillardd7cec922003-06-13 12:30:10 +00001229</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 if the chunk is well balanced, -1 in case of args problem and
1230 the parser error code otherwise
1231
1232In case recover is set to 1, the nodelist will not be empty even if
1233the parsed chunk is not well balanced.
Daniel Veillardd4330462003-04-29 12:40:16 +00001234</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseExternalEntity"></a>xmlParseExternalEntity ()</h3><pre class="programlisting">int xmlParseExternalEntity (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
1235 <a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001236 void *user_data,
1237 int depth,
Daniel Veillardd4330462003-04-29 12:40:16 +00001238 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
1239 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
1240 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1241Parse an external general entity
Daniel Veillard06622df2002-01-21 17:53:42 +00001242An external general parsed entity is well-formed if it matches the
Daniel Veillardd4330462003-04-29 12:40:16 +00001243production labeled extParsedEnt.
1244</p><p>
1245[78] extParsedEnt ::= TextDecl? content</p><p>
1246
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001247</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> the document the chunk pertains to
1248</td></tr><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> the SAX handler bloc (possibly NULL)
1249</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks (possibly NULL)
1250</td></tr><tr><td><span class="term"><i><tt>depth</tt></i> :</span></td><td> Used for loop detection, use 0
1251</td></tr><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> the URL for the entity to load
1252</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> the System ID for the entity to load
1253</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
Daniel Veillardd7cec922003-06-13 12:30:10 +00001254</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 if the entity is well formed, -1 in case of args problem and
1255 the parser error code otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +00001256</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseCtxtExternalEntity"></a>xmlParseCtxtExternalEntity ()</h3><pre class="programlisting">int xmlParseCtxtExternalEntity (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctx,
1257 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *URL,
1258 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID,
1259 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> *lst);</pre><p>
1260Parse an external general entity within an existing parsing context
Daniel Veillard06622df2002-01-21 17:53:42 +00001261An external general parsed entity is well-formed if it matches the
Daniel Veillardd4330462003-04-29 12:40:16 +00001262production labeled extParsedEnt.
1263</p><p>
1264[78] extParsedEnt ::= TextDecl? content</p><p>
1265
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001266</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the existing parsing context
1267</td></tr><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> the URL for the entity to load
1268</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> the System ID for the entity to load
1269</td></tr><tr><td><span class="term"><i><tt>lst</tt></i> :</span></td><td> the return value for the set of parsed nodes
Daniel Veillardd7cec922003-06-13 12:30:10 +00001270</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 if the entity is well formed, -1 in case of args problem and
1271 the parser error code otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +00001272</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlInitParserCtxt"></a>xmlInitParserCtxt ()</h3><pre class="programlisting">int xmlInitParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1273Initialize a parser context</p><p>
1274
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001275</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1276</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 in case of success and -1 in case of error
Daniel Veillardd4330462003-04-29 12:40:16 +00001277</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlClearParserCtxt"></a>xmlClearParserCtxt ()</h3><pre class="programlisting">void xmlClearParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1278Clear (release owned resources) and reinitialize a parser context</p><p>
1279
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001280</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 +00001281</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeParserCtxt"></a>xmlFreeParserCtxt ()</h3><pre class="programlisting">void xmlFreeParserCtxt (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1282Free all the memory used by a parser context. However the parsed
1283document in ctxt-&gt;myDoc is not freed.</p><p>
1284
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001285</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 +00001286</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSetupParserForBuffer"></a>xmlSetupParserForBuffer ()</h3><pre class="programlisting">void xmlSetupParserForBuffer (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1287 const <a href="libxml-tree.html#xmlChar">xmlChar</a> *buffer,
1288 const char *filename);</pre><p>
1289Setup the parser context to parse a new buffer; Clears any prior
Daniel Veillard06622df2002-01-21 17:53:42 +00001290contents from the parser context. The buffer parameter must not be
Daniel Veillardd4330462003-04-29 12:40:16 +00001291NULL, but the filename parameter can be</p><p>
1292
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001293</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1294</td></tr><tr><td><span class="term"><i><tt>buffer</tt></i> :</span></td><td> a xmlChar * buffer
1295</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> a file name
Daniel Veillardd4330462003-04-29 12:40:16 +00001296</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCreateDocParserCtxt"></a>xmlCreateDocParserCtxt ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateDocParserCtxt (<a href="libxml-tree.html#xmlChar">xmlChar</a> *cur);</pre><p>
1297Creates a parser context for an XML in-memory document.</p><p>
1298
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001299</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
Daniel Veillardd7cec922003-06-13 12:30:10 +00001300</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 +00001301</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetFeaturesList"></a>xmlGetFeaturesList ()</h3><pre class="programlisting">int xmlGetFeaturesList (int *len,
1302 const char **result);</pre><p>
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001303Copy at most *<i><tt>len</tt></i> feature names into the <i><tt>result</tt></i> array</p><p>
Daniel Veillardd4330462003-04-29 12:40:16 +00001304
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001305</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the length of the features name array (input/output)
1306</td></tr><tr><td><span class="term"><i><tt>result</tt></i> :</span></td><td> an array of string to be filled with the features name.
Daniel Veillardd7cec922003-06-13 12:30:10 +00001307</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 in case or error, or the total number of features,
1308 len is updated with the number of strings copied,
1309 strings must not be deallocated
Daniel Veillardd4330462003-04-29 12:40:16 +00001310</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetFeature"></a>xmlGetFeature ()</h3><pre class="programlisting">int xmlGetFeature (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard06622df2002-01-21 17:53:42 +00001311 const char *name,
Daniel Veillardd4330462003-04-29 12:40:16 +00001312 void *result);</pre><p>
1313Read the current value of one feature of this parser instance</p><p>
1314
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001315</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML/HTML parser context
1316</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the feature name
1317</td></tr><tr><td><span class="term"><i><tt>result</tt></i> :</span></td><td> location to store the result
Daniel Veillardd7cec922003-06-13 12:30:10 +00001318</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 +00001319</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSetFeature"></a>xmlSetFeature ()</h3><pre class="programlisting">int xmlSetFeature (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard06622df2002-01-21 17:53:42 +00001320 const char *name,
Daniel Veillardd4330462003-04-29 12:40:16 +00001321 void *value);</pre><p>
1322Change the current value of one feature of this parser instance</p><p>
1323
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001324</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML/HTML parser context
1325</td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the feature name
1326</td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td> pointer to the location of the new value
Daniel Veillardd7cec922003-06-13 12:30:10 +00001327</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 +00001328</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCreatePushParserCtxt"></a>xmlCreatePushParserCtxt ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreatePushParserCtxt (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001329 void *user_data,
1330 const char *chunk,
1331 int size,
Daniel Veillardd4330462003-04-29 12:40:16 +00001332 const char *filename);</pre><p>
1333Create a parser context for using the XML parser in push mode.
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001334If <i><tt>buffer</tt></i> and <i><tt>size</tt></i> are non-NULL, the data is used to detect
Daniel Veillardaec63562003-03-23 20:42:17 +00001335the encoding. The remaining characters will be parsed so they
1336don't need to be fed in again through xmlParseChunk.
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001337To allow content encoding detection, <i><tt>size</tt></i> should be &gt;= 4
1338The value of <i><tt>filename</tt></i> is used for fetching external entities
Daniel Veillardd4330462003-04-29 12:40:16 +00001339and error/warning reports.</p><p>
1340
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001341</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> a SAX handler
1342</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1343</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i> :</span></td><td> a pointer to an array of chars
1344</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> number of chars in the array
1345</td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> an optional file name or URI
Daniel Veillardd7cec922003-06-13 12:30:10 +00001346</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 +00001347</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParseChunk"></a>xmlParseChunk ()</h3><pre class="programlisting">int xmlParseChunk (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
Daniel Veillard06622df2002-01-21 17:53:42 +00001348 const char *chunk,
1349 int size,
Daniel Veillardd4330462003-04-29 12:40:16 +00001350 int terminate);</pre><p>
1351Parse a Chunk of memory</p><p>
1352
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001353</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1354</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i> :</span></td><td> an char array
1355</td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td> the size in byte of the chunk
1356</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i> :</span></td><td> last chunk indicator
Daniel Veillardd7cec922003-06-13 12:30:10 +00001357</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 +00001358</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCreateIOParserCtxt"></a>xmlCreateIOParserCtxt ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> xmlCreateIOParserCtxt (<a href="libxml-tree.html#xmlSAXHandlerPtr">xmlSAXHandlerPtr</a> sax,
Daniel Veillard06622df2002-01-21 17:53:42 +00001359 void *user_data,
Daniel Veillardd4330462003-04-29 12:40:16 +00001360 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
1361 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
Daniel Veillard06622df2002-01-21 17:53:42 +00001362 void *ioctx,
Daniel Veillardd4330462003-04-29 12:40:16 +00001363 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
1364Create a parser context for using the XML parser with an existing
1365I/O stream</p><p>
1366
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001367</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sax</tt></i> :</span></td><td> a SAX handler
1368</td></tr><tr><td><span class="term"><i><tt>user_data</tt></i> :</span></td><td> The user data returned on SAX callbacks
1369</td></tr><tr><td><span class="term"><i><tt>ioread</tt></i> :</span></td><td> an I/O read function
1370</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i> :</span></td><td> an I/O close function
1371</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i> :</span></td><td> an I/O handler
1372</td></tr><tr><td><span class="term"><i><tt>enc</tt></i> :</span></td><td> the charset encoding if known
Daniel Veillardd7cec922003-06-13 12:30:10 +00001373</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 +00001374</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNewIOInputStream"></a>xmlNewIOInputStream ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNewIOInputStream (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1375 <a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> input,
1376 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001377Create a new input stream structure encapsulating the <i><tt>input</tt></i> into
Daniel Veillardd4330462003-04-29 12:40:16 +00001378a stream suitable for the parser.</p><p>
1379
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001380</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1381</td></tr><tr><td><span class="term"><i><tt>input</tt></i> :</span></td><td> an I/O Input
1382</td></tr><tr><td><span class="term"><i><tt>enc</tt></i> :</span></td><td> the charset encoding if known
Daniel Veillardd7cec922003-06-13 12:30:10 +00001383</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 +00001384</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserFindNodeInfo"></a>xmlParserFindNodeInfo ()</h3><pre class="programlisting">const <a href="libxml-parser.html#xmlParserNodeInfo">xmlParserNodeInfo</a>* xmlParserFindNodeInfo
1385 (const <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1386 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);</pre><p>
1387Find the parser node info struct for a given node</p><p>
1388
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001389</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>
1390</td></tr><tr><td><span class="term"><i><tt>node</tt></i> :</span></td><td> an XML node within the tree
Daniel Veillardd7cec922003-06-13 12:30:10 +00001391</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 +00001392</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlInitNodeInfoSeq"></a>xmlInitNodeInfoSeq ()</h3><pre class="programlisting">void xmlInitNodeInfoSeq (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);</pre><p>
1393-- Initialize (set to initial state) node info sequence</p><p>
1394
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001395</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 +00001396</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlClearNodeInfoSeq"></a>xmlClearNodeInfoSeq ()</h3><pre class="programlisting">void xmlClearNodeInfoSeq (<a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq);</pre><p>
1397-- Clear (release memory and reinitialize) node
1398 info sequence</p><p>
1399
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001400</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 +00001401</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserFindNodeInfoIndex"></a>xmlParserFindNodeInfoIndex ()</h3><pre class="programlisting">unsigned <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="long">long</GTKDOCLINK> xmlParserFindNodeInfoIndex (const <a href="libxml-parser.html#xmlParserNodeInfoSeqPtr">xmlParserNodeInfoSeqPtr</a> seq,
1402 const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node);</pre><p>
1403xmlParserFindNodeInfoIndex : Find the index that the info record for
1404 the given node is or should be at in a sorted sequence</p><p>
1405
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001406</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>seq</tt></i> :</span></td><td> a node info sequence pointer
1407</td></tr><tr><td><span class="term"><i><tt>node</tt></i> :</span></td><td> an XML node pointer
Daniel Veillardd7cec922003-06-13 12:30:10 +00001408</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 +00001409</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserAddNodeInfo"></a>xmlParserAddNodeInfo ()</h3><pre class="programlisting">void xmlParserAddNodeInfo (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt,
1410 const <a href="libxml-parser.html#xmlParserNodeInfoPtr">xmlParserNodeInfoPtr</a> info);</pre><p>
1411Insert node info record into the sorted sequence</p><p>
1412
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001413</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XML parser context
1414</td></tr><tr><td><span class="term"><i><tt>info</tt></i> :</span></td><td> a node info sequence pointer
Daniel Veillardd4330462003-04-29 12:40:16 +00001415</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSetExternalEntityLoader"></a>xmlSetExternalEntityLoader ()</h3><pre class="programlisting">void xmlSetExternalEntityLoader (<a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> f);</pre><p>
1416Changes the defaultexternal entity resolver function for the application</p><p>
1417
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001418</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 +00001419</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetExternalEntityLoader"></a>xmlGetExternalEntityLoader ()</h3><pre class="programlisting"><a href="libxml-parser.html#xmlExternalEntityLoader">xmlExternalEntityLoader</a> xmlGetExternalEntityLoader
1420 (void);</pre><p>
1421Get the default external entity resolver function for the application</p><p>
1422
Daniel Veillardd7cec922003-06-13 12:30:10 +00001423</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 +00001424</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlLoadExternalEntity"></a>xmlLoadExternalEntity ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlLoadExternalEntity (const char *URL,
Daniel Veillard06622df2002-01-21 17:53:42 +00001425 const char *ID,
Daniel Veillardd4330462003-04-29 12:40:16 +00001426 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
1427Load an external entity, note that the use of this function for
Daniel Veillard06622df2002-01-21 17:53:42 +00001428unparsed entities may generate problems
Daniel Veillardd4330462003-04-29 12:40:16 +00001429TODO: a more generic External entity API must be designed</p><p>
1430
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001431</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> the URL for the entity to load
1432</td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td> the Public ID for the entity to load
1433</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> the context in which the entity is called or NULL
Daniel Veillardd7cec922003-06-13 12:30:10 +00001434</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlParserInputPtr or NULL
Daniel Veillard2fdbd322003-08-18 12:15:38 +00001435</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>