blob: 4855c933e296949e0197ce85b410febb959e23d6 [file] [log] [blame]
William M. Brackc6e07552003-08-16 12:44:47 +00001<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmlIO</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><meta xmlns="http://www.w3.org/TR/xhtml1/transitional" name="generator" content="GTK-Doc V1.0 (XML mode)"></meta><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 }
William M. Brackc6e07552003-08-16 12:44:47 +000031 </style><link rel="home" href="index.html" title="[Insert name here] Reference Manual"><link rel="up" href="ch01.html" title="[Insert title here]"><link rel="previous" href="libxml-xmlmemory.html" title="xmlmemory"><link rel="next" href="libxml-xpath.html" title="xpath"></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-xmlmemory.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></img></a></td><td><a accesskey="u" href="ch01.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">[Insert name here] Reference Manual</th><td><a accesskey="n" href="libxml-xpath.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-xmlIO"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><span class="refentrytitle">xmlIO</span></h2><p>xmlIO &#8212; </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
Daniel Veillardd4330462003-04-29 12:40:16 +000032
33
34
35int (<a href="libxml-xmlIO.html#xmlInputMatchCallback">*xmlInputMatchCallback</a>) (char const *filename);
36void* (<a href="libxml-xmlIO.html#xmlInputOpenCallback">*xmlInputOpenCallback</a>) (char const *filename);
37int (<a href="libxml-xmlIO.html#xmlInputReadCallback">*xmlInputReadCallback</a>) (void *context,
38 char *buffer,
39 int len);
40int (<a href="libxml-xmlIO.html#xmlInputCloseCallback">*xmlInputCloseCallback</a>) (void *context);
41int (<a href="libxml-xmlIO.html#xmlOutputMatchCallback">*xmlOutputMatchCallback</a>) (char const *filename);
42void* (<a href="libxml-xmlIO.html#xmlOutputOpenCallback">*xmlOutputOpenCallback</a>) (char const *filename);
43int (<a href="libxml-xmlIO.html#xmlOutputWriteCallback">*xmlOutputWriteCallback</a>) (void *context,
44 const char *buffer,
45 int len);
46int (<a href="libxml-xmlIO.html#xmlOutputCloseCallback">*xmlOutputCloseCallback</a>) (void *context);
William M. Brackc6e07552003-08-16 12:44:47 +000047struct <a href="libxml-xmlIO.html#xmlParserInputBuffer">xmlParserInputBuffer</a>;
48struct <a href="libxml-xmlIO.html#xmlOutputBuffer">xmlOutputBuffer</a>;
Daniel Veillardd4330462003-04-29 12:40:16 +000049void <a href="libxml-xmlIO.html#xmlCleanupInputCallbacks">xmlCleanupInputCallbacks</a> (void);
50void <a href="libxml-xmlIO.html#xmlCleanupOutputCallbacks">xmlCleanupOutputCallbacks</a> (void);
51void <a href="libxml-xmlIO.html#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a>
52 (void);
53<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="libxml-xmlIO.html#xmlAllocParserInputBuffer">xmlAllocParserInputBuffer</a>
54 (<a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
55<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="libxml-xmlIO.html#xmlParserInputBufferCreateFilename">xmlParserInputBufferCreateFilename</a>
56 (const char *URI,
57 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
58<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="libxml-xmlIO.html#xmlParserInputBufferCreateFile">xmlParserInputBufferCreateFile</a>
59 (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="FILE-CAPS">FILE</GTKDOCLINK> *file,
60 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
61<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="libxml-xmlIO.html#xmlParserInputBufferCreateFd">xmlParserInputBufferCreateFd</a>
62 (int fd,
63 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
64<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a>
65 (const char *mem,
66 int size,
67 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
68<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> <a href="libxml-xmlIO.html#xmlParserInputBufferCreateIO">xmlParserInputBufferCreateIO</a>
69 (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
70 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
71 void *ioctx,
72 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);
73int <a href="libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in,
74 int len);
75int <a href="libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in,
76 int len);
77int <a href="libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in,
78 int len,
79 const char *buf);
80void <a href="libxml-xmlIO.html#xmlFreeParserInputBuffer">xmlFreeParserInputBuffer</a> (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in);
81char* <a href="libxml-xmlIO.html#xmlParserGetDirectory">xmlParserGetDirectory</a> (const char *filename);
82int <a href="libxml-xmlIO.html#xmlRegisterInputCallbacks">xmlRegisterInputCallbacks</a> (<a href="libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a> matchFunc,
83 <a href="libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a> openFunc,
84 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> readFunc,
85 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> closeFunc);
86void <a href="libxml-xmlIO.html#xmlRegisterDefaultOutputCallbacks">xmlRegisterDefaultOutputCallbacks</a>
87 (void);
88<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="libxml-xmlIO.html#xmlAllocOutputBuffer">xmlAllocOutputBuffer</a> (<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);
89<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a>
90 (const char *URI,
91 <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder,
92 int compression);
93<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="libxml-xmlIO.html#xmlOutputBufferCreateFile">xmlOutputBufferCreateFile</a>
94 (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="FILE-CAPS">FILE</GTKDOCLINK> *file,
95 <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);
96<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="libxml-xmlIO.html#xmlOutputBufferCreateFd">xmlOutputBufferCreateFd</a> (int fd,
97 <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);
98<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> <a href="libxml-xmlIO.html#xmlOutputBufferCreateIO">xmlOutputBufferCreateIO</a> (<a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite,
99 <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose,
100 void *ioctx,
101 <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);
102int <a href="libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out,
103 int len,
104 const char *buf);
105int <a href="libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out,
106 const char *str);
107int <a href="libxml-xmlIO.html#xmlOutputBufferFlush">xmlOutputBufferFlush</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out);
108int <a href="libxml-xmlIO.html#xmlOutputBufferClose">xmlOutputBufferClose</a> (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out);
109int <a href="libxml-xmlIO.html#xmlRegisterOutputCallbacks">xmlRegisterOutputCallbacks</a> (<a href="libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a> matchFunc,
110 <a href="libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a> openFunc,
111 <a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> writeFunc,
112 <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> closeFunc);
113void* <a href="libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a> (const char *post_uri,
114 int compression);
115void <a href="libxml-xmlIO.html#xmlRegisterHTTPPostCallbacks">xmlRegisterHTTPPostCallbacks</a> (void);
116<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a>
117 (const char *URL,
118 const char *ID,
119 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
120<a href="libxml-tree.html#xmlChar">xmlChar</a>* <a href="libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a> (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *path);
121int <a href="libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a> (const char *path);
122int <a href="libxml-xmlIO.html#xmlFileMatch">xmlFileMatch</a> (const char *filename);
123void* <a href="libxml-xmlIO.html#xmlFileOpen">xmlFileOpen</a> (const char *filename);
124int <a href="libxml-xmlIO.html#xmlFileRead">xmlFileRead</a> (void *context,
125 char *buffer,
126 int len);
127int <a href="libxml-xmlIO.html#xmlFileClose">xmlFileClose</a> (void *context);
128int <a href="libxml-xmlIO.html#xmlIOHTTPMatch">xmlIOHTTPMatch</a> (const char *filename);
129void* <a href="libxml-xmlIO.html#xmlIOHTTPOpen">xmlIOHTTPOpen</a> (const char *filename);
130int <a href="libxml-xmlIO.html#xmlIOHTTPRead">xmlIOHTTPRead</a> (void *context,
131 char *buffer,
132 int len);
133int <a href="libxml-xmlIO.html#xmlIOHTTPClose">xmlIOHTTPClose</a> (void *context);
134int <a href="libxml-xmlIO.html#xmlIOFTPMatch">xmlIOFTPMatch</a> (const char *filename);
135void* <a href="libxml-xmlIO.html#xmlIOFTPOpen">xmlIOFTPOpen</a> (const char *filename);
136int <a href="libxml-xmlIO.html#xmlIOFTPRead">xmlIOFTPRead</a> (void *context,
137 char *buffer,
138 int len);
139int <a href="libxml-xmlIO.html#xmlIOFTPClose">xmlIOFTPClose</a> (void *context);
140</pre></div><div class="refsect1" lang="en"><h2>Description</h2><p>
141
142</p></div><div class="refsect1" lang="en"><h2>Details</h2><div class="refsect2" lang="en"><h3><a name="xmlInputMatchCallback"></a>xmlInputMatchCallback ()</h3><pre class="programlisting">int (*xmlInputMatchCallback) (char const *filename);</pre><p>
143Callback used in the I/O Input API to detect if the current handler
144can provide input fonctionnalities for this resource.</p><p>
145
William M. Brackc6e07552003-08-16 12:44:47 +0000146</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the filename or URI
Daniel Veillardd7cec922003-06-13 12:30:10 +0000147</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if yes and 0 if another Input module should be used
Daniel Veillardd4330462003-04-29 12:40:16 +0000148</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlInputOpenCallback"></a>xmlInputOpenCallback ()</h3><pre class="programlisting">void* (*xmlInputOpenCallback) (char const *filename);</pre><p>
149Callback used in the I/O Input API to open the resource</p><p>
150
William M. Brackc6e07552003-08-16 12:44:47 +0000151</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the filename or URI
Daniel Veillardd4330462003-04-29 12:40:16 +0000152</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlInputReadCallback"></a>xmlInputReadCallback ()</h3><pre class="programlisting">int (*xmlInputReadCallback) (void *context,
153 char *buffer,
154 int len);</pre><p>
155Callback used in the I/O Input API to read the resource</p><p>
156
William M. Brackc6e07552003-08-16 12:44:47 +0000157</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td> an Input context
158</td></tr><tr><td><span class="term"><i class="parameter"><tt>buffer</tt></i> :</span></td><td> the buffer to store data read
159</td></tr><tr><td><span class="term"><i class="parameter"><tt>len</tt></i> :</span></td><td> the length of the buffer in bytes
Daniel Veillardd7cec922003-06-13 12:30:10 +0000160</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of bytes read or -1 in case of error
Daniel Veillardd4330462003-04-29 12:40:16 +0000161</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlInputCloseCallback"></a>xmlInputCloseCallback ()</h3><pre class="programlisting">int (*xmlInputCloseCallback) (void *context);</pre><p>
162Callback used in the I/O Input API to close the resource</p><p>
163
William M. Brackc6e07552003-08-16 12:44:47 +0000164</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td> an Input context
Daniel Veillardd7cec922003-06-13 12:30:10 +0000165</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 or -1 in case of error
Daniel Veillardd4330462003-04-29 12:40:16 +0000166</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputMatchCallback"></a>xmlOutputMatchCallback ()</h3><pre class="programlisting">int (*xmlOutputMatchCallback) (char const *filename);</pre><p>
167Callback used in the I/O Output API to detect if the current handler
168can provide output fonctionnalities for this resource.</p><p>
169
William M. Brackc6e07552003-08-16 12:44:47 +0000170</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the filename or URI
Daniel Veillardd7cec922003-06-13 12:30:10 +0000171</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if yes and 0 if another Output module should be used
Daniel Veillardd4330462003-04-29 12:40:16 +0000172</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputOpenCallback"></a>xmlOutputOpenCallback ()</h3><pre class="programlisting">void* (*xmlOutputOpenCallback) (char const *filename);</pre><p>
173Callback used in the I/O Output API to open the resource</p><p>
174
William M. Brackc6e07552003-08-16 12:44:47 +0000175</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the filename or URI
Daniel Veillardd4330462003-04-29 12:40:16 +0000176</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputWriteCallback"></a>xmlOutputWriteCallback ()</h3><pre class="programlisting">int (*xmlOutputWriteCallback) (void *context,
177 const char *buffer,
178 int len);</pre><p>
179Callback used in the I/O Output API to write to the resource</p><p>
180
William M. Brackc6e07552003-08-16 12:44:47 +0000181</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td> an Output context
182</td></tr><tr><td><span class="term"><i class="parameter"><tt>buffer</tt></i> :</span></td><td> the buffer of data to write
183</td></tr><tr><td><span class="term"><i class="parameter"><tt>len</tt></i> :</span></td><td> the length of the buffer in bytes
Daniel Veillardd7cec922003-06-13 12:30:10 +0000184</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of bytes written or -1 in case of error
Daniel Veillardd4330462003-04-29 12:40:16 +0000185</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputCloseCallback"></a>xmlOutputCloseCallback ()</h3><pre class="programlisting">int (*xmlOutputCloseCallback) (void *context);</pre><p>
186Callback used in the I/O Output API to close the resource</p><p>
187
William M. Brackc6e07552003-08-16 12:44:47 +0000188</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td> an Output context
Daniel Veillardd7cec922003-06-13 12:30:10 +0000189</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 or -1 in case of error
Daniel Veillardd4330462003-04-29 12:40:16 +0000190</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputBuffer"></a>struct xmlParserInputBuffer</h3><pre class="programlisting">struct xmlParserInputBuffer {
William M. Brackc6e07552003-08-16 12:44:47 +0000191
Daniel Veillardd4330462003-04-29 12:40:16 +0000192 void* context;
193 xmlInputReadCallback readcallback;
194 xmlInputCloseCallback closecallback;
195
196 xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
197
198 xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 */
199 xmlBufferPtr raw; /* if encoder != NULL buffer for raw input */
200};
201</pre><p>
202
203</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputBuffer"></a>struct xmlOutputBuffer</h3><pre class="programlisting">struct xmlOutputBuffer {
William M. Brackc6e07552003-08-16 12:44:47 +0000204
Daniel Veillardd4330462003-04-29 12:40:16 +0000205 void* context;
206 xmlOutputWriteCallback writecallback;
207 xmlOutputCloseCallback closecallback;
208
209 xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
210
211 xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 or ISOLatin */
212 xmlBufferPtr conv; /* if encoder != NULL buffer for output */
213 int written; /* total number of byte written */
214};
215</pre><p>
216
217</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCleanupInputCallbacks"></a>xmlCleanupInputCallbacks ()</h3><pre class="programlisting">void xmlCleanupInputCallbacks (void);</pre><p>
218clears the entire input callback table. this includes the
219compiled-in I/O.</p><p>
220
221</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCleanupOutputCallbacks"></a>xmlCleanupOutputCallbacks ()</h3><pre class="programlisting">void xmlCleanupOutputCallbacks (void);</pre><p>
222clears the entire output callback table. this includes the
223compiled-in I/O callbacks.</p><p>
224
225</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRegisterDefaultInputCallbacks"></a>xmlRegisterDefaultInputCallbacks ()</h3><pre class="programlisting">void xmlRegisterDefaultInputCallbacks
226 (void);</pre><p>
227Registers the default compiled-in I/O handlers.</p><p>
228
229</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlAllocParserInputBuffer"></a>xmlAllocParserInputBuffer ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlAllocParserInputBuffer
230 (<a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
231Create a buffered parser input for progressive parsing</p><p>
232
William M. Brackc6e07552003-08-16 12:44:47 +0000233</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>enc</tt></i> :</span></td><td> the charset encoding if known
Daniel Veillardd7cec922003-06-13 12:30:10 +0000234</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser input or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000235</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateFilename"></a>xmlParserInputBufferCreateFilename ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFilename
236 (const char *URI,
237 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
238Create a buffered parser input for the progressive parsing of a file
Daniel Veillardcfba2fe2003-08-15 00:33:43 +0000239If filename is "-' then we use stdin as the input.
Daniel Veillardd4330462003-04-29 12:40:16 +0000240Automatic support for ZLIB/Compress compressed document is provided
241by default if found at compile-time.
242Do an encoding check if enc == XML_CHAR_ENCODING_NONE</p><p>
243
William M. Brackc6e07552003-08-16 12:44:47 +0000244</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>URI</tt></i> :</span></td><td> a C string containing the URI or filename
245</td></tr><tr><td><span class="term"><i class="parameter"><tt>enc</tt></i> :</span></td><td> the charset encoding if known
Daniel Veillardd7cec922003-06-13 12:30:10 +0000246</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser input or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000247</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateFile"></a>xmlParserInputBufferCreateFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFile
248 (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="FILE-CAPS">FILE</GTKDOCLINK> *file,
249 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
250Create a buffered parser input for the progressive parsing of a FILE *
251buffered C I/O</p><p>
252
William M. Brackc6e07552003-08-16 12:44:47 +0000253</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>file</tt></i> :</span></td><td> a FILE*
254</td></tr><tr><td><span class="term"><i class="parameter"><tt>enc</tt></i> :</span></td><td> the charset encoding if known
Daniel Veillardd7cec922003-06-13 12:30:10 +0000255</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser input or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000256</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateFd"></a>xmlParserInputBufferCreateFd ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateFd
257 (int fd,
258 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
259Create a buffered parser input for the progressive parsing for the input
260from a file descriptor</p><p>
261
William M. Brackc6e07552003-08-16 12:44:47 +0000262</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>fd</tt></i> :</span></td><td> a file descriptor number
263</td></tr><tr><td><span class="term"><i class="parameter"><tt>enc</tt></i> :</span></td><td> the charset encoding if known
Daniel Veillardd7cec922003-06-13 12:30:10 +0000264</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser input or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000265</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateMem"></a>xmlParserInputBufferCreateMem ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateMem
266 (const char *mem,
267 int size,
268 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
269Create a buffered parser input for the progressive parsing for the input
270from a memory area.</p><p>
271
William M. Brackc6e07552003-08-16 12:44:47 +0000272</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>mem</tt></i> :</span></td><td> the memory input
273</td></tr><tr><td><span class="term"><i class="parameter"><tt>size</tt></i> :</span></td><td> the length of the memory block
274</td></tr><tr><td><span class="term"><i class="parameter"><tt>enc</tt></i> :</span></td><td> the charset encoding if known
Daniel Veillardd7cec922003-06-13 12:30:10 +0000275</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser input or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000276</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferCreateIO"></a>xmlParserInputBufferCreateIO ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> xmlParserInputBufferCreateIO
277 (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread,
278 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose,
279 void *ioctx,
280 <a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> enc);</pre><p>
281Create a buffered parser input for the progressive parsing for the input
282from an I/O handler</p><p>
283
William M. Brackc6e07552003-08-16 12:44:47 +0000284</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>ioread</tt></i> :</span></td><td> an I/O read function
285</td></tr><tr><td><span class="term"><i class="parameter"><tt>ioclose</tt></i> :</span></td><td> an I/O close function
286</td></tr><tr><td><span class="term"><i class="parameter"><tt>ioctx</tt></i> :</span></td><td> an I/O handler
287</td></tr><tr><td><span class="term"><i class="parameter"><tt>enc</tt></i> :</span></td><td> the charset encoding if known
Daniel Veillardd7cec922003-06-13 12:30:10 +0000288</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser input or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000289</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferRead"></a>xmlParserInputBufferRead ()</h3><pre class="programlisting">int xmlParserInputBufferRead (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in,
290 int len);</pre><p>
291Refresh the content of the input buffer, the old data are considered
292consumed
293This routine handle the I18N transcoding to internal UTF-8</p><p>
294
William M. Brackc6e07552003-08-16 12:44:47 +0000295</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>in</tt></i> :</span></td><td> a buffered parser input
296</td></tr><tr><td><span class="term"><i class="parameter"><tt>len</tt></i> :</span></td><td> indicative value of the amount of chars to read
Daniel Veillardd7cec922003-06-13 12:30:10 +0000297</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of chars read and stored in the buffer, or -1
298 in case of error.
Daniel Veillardd4330462003-04-29 12:40:16 +0000299</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferGrow"></a>xmlParserInputBufferGrow ()</h3><pre class="programlisting">int xmlParserInputBufferGrow (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in,
300 int len);</pre><p>
301Grow up the content of the input buffer, the old data are preserved
302This routine handle the I18N transcoding to internal UTF-8
303This routine is used when operating the parser in normal (pull) mode
304</p><p>
305TODO: one should be able to remove one extra copy by copying directly
306 onto in-&gt;buffer or in-&gt;raw</p><p>
307
William M. Brackc6e07552003-08-16 12:44:47 +0000308</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>in</tt></i> :</span></td><td> a buffered parser input
309</td></tr><tr><td><span class="term"><i class="parameter"><tt>len</tt></i> :</span></td><td> indicative value of the amount of chars to read
Daniel Veillardd7cec922003-06-13 12:30:10 +0000310</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of chars read and stored in the buffer, or -1
311 in case of error.
Daniel Veillardd4330462003-04-29 12:40:16 +0000312</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserInputBufferPush"></a>xmlParserInputBufferPush ()</h3><pre class="programlisting">int xmlParserInputBufferPush (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in,
313 int len,
314 const char *buf);</pre><p>
315Push the content of the arry in the input buffer
316This routine handle the I18N transcoding to internal UTF-8
317This is used when operating the parser in progressive (push) mode.</p><p>
318
William M. Brackc6e07552003-08-16 12:44:47 +0000319</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>in</tt></i> :</span></td><td> a buffered parser input
320</td></tr><tr><td><span class="term"><i class="parameter"><tt>len</tt></i> :</span></td><td> the size in bytes of the array.
321</td></tr><tr><td><span class="term"><i class="parameter"><tt>buf</tt></i> :</span></td><td> an char array
Daniel Veillardd7cec922003-06-13 12:30:10 +0000322</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of chars read and stored in the buffer, or -1
323 in case of error.
Daniel Veillardd4330462003-04-29 12:40:16 +0000324</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeParserInputBuffer"></a>xmlFreeParserInputBuffer ()</h3><pre class="programlisting">void xmlFreeParserInputBuffer (<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> in);</pre><p>
325Free up the memory used by a buffered parser input</p><p>
326
William M. Brackc6e07552003-08-16 12:44:47 +0000327</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>in</tt></i> :</span></td><td> a buffered parser input
Daniel Veillardd4330462003-04-29 12:40:16 +0000328</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlParserGetDirectory"></a>xmlParserGetDirectory ()</h3><pre class="programlisting">char* xmlParserGetDirectory (const char *filename);</pre><p>
329lookup the directory for that file</p><p>
330
William M. Brackc6e07552003-08-16 12:44:47 +0000331</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the path to a file
Daniel Veillardd7cec922003-06-13 12:30:10 +0000332</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new allocated string containing the directory, or NULL.
Daniel Veillardd4330462003-04-29 12:40:16 +0000333</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRegisterInputCallbacks"></a>xmlRegisterInputCallbacks ()</h3><pre class="programlisting">int xmlRegisterInputCallbacks (<a href="libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a> matchFunc,
334 <a href="libxml-xmlIO.html#xmlInputOpenCallback">xmlInputOpenCallback</a> openFunc,
335 <a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> readFunc,
336 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> closeFunc);</pre><p>
337Register a new set of I/O callback for handling parser input.</p><p>
338
William M. Brackc6e07552003-08-16 12:44:47 +0000339</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matchFunc</tt></i> :</span></td><td> the xmlInputMatchCallback
340</td></tr><tr><td><span class="term"><i class="parameter"><tt>openFunc</tt></i> :</span></td><td> the xmlInputOpenCallback
341</td></tr><tr><td><span class="term"><i class="parameter"><tt>readFunc</tt></i> :</span></td><td> the xmlInputReadCallback
342</td></tr><tr><td><span class="term"><i class="parameter"><tt>closeFunc</tt></i> :</span></td><td> the xmlInputCloseCallback
Daniel Veillardd7cec922003-06-13 12:30:10 +0000343</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the registered handler number or -1 in case of error
Daniel Veillardd4330462003-04-29 12:40:16 +0000344</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRegisterDefaultOutputCallbacks"></a>xmlRegisterDefaultOutputCallbacks ()</h3><pre class="programlisting">void xmlRegisterDefaultOutputCallbacks
345 (void);</pre><p>
346Registers the default compiled-in I/O handlers.</p><p>
347
348</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlAllocOutputBuffer"></a>xmlAllocOutputBuffer ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlAllocOutputBuffer (<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);</pre><p>
349Create a buffered parser output</p><p>
350
William M. Brackc6e07552003-08-16 12:44:47 +0000351</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>encoder</tt></i> :</span></td><td> the encoding converter or NULL
Daniel Veillardd7cec922003-06-13 12:30:10 +0000352</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser output or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000353</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateFilename"></a>xmlOutputBufferCreateFilename ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFilename
354 (const char *URI,
355 <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder,
356 int compression);</pre><p>
357Create a buffered output for the progressive saving of a file
Daniel Veillardcfba2fe2003-08-15 00:33:43 +0000358If filename is "-' then we use stdout as the output.
Daniel Veillardd4330462003-04-29 12:40:16 +0000359Automatic support for ZLIB/Compress compressed document is provided
360by default if found at compile-time.
361TODO: currently if compression is set, the library only support
362 writing to a local file.</p><p>
363
William M. Brackc6e07552003-08-16 12:44:47 +0000364</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>URI</tt></i> :</span></td><td> a C string containing the URI or filename
365</td></tr><tr><td><span class="term"><i class="parameter"><tt>encoder</tt></i> :</span></td><td> the encoding converter or NULL
366</td></tr><tr><td><span class="term"><i class="parameter"><tt>compression</tt></i> :</span></td><td> the compression ration (0 none, 9 max).
Daniel Veillardd7cec922003-06-13 12:30:10 +0000367</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new output or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000368</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateFile"></a>xmlOutputBufferCreateFile ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFile
369 (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="FILE-CAPS">FILE</GTKDOCLINK> *file,
370 <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);</pre><p>
371Create a buffered output for the progressive saving to a FILE *
372buffered C I/O</p><p>
373
William M. Brackc6e07552003-08-16 12:44:47 +0000374</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>file</tt></i> :</span></td><td> a FILE*
375</td></tr><tr><td><span class="term"><i class="parameter"><tt>encoder</tt></i> :</span></td><td> the encoding converter or NULL
Daniel Veillardd7cec922003-06-13 12:30:10 +0000376</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser output or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000377</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateFd"></a>xmlOutputBufferCreateFd ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateFd (int fd,
378 <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);</pre><p>
379Create a buffered output for the progressive saving
380to a file descriptor</p><p>
381
William M. Brackc6e07552003-08-16 12:44:47 +0000382</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>fd</tt></i> :</span></td><td> a file descriptor number
383</td></tr><tr><td><span class="term"><i class="parameter"><tt>encoder</tt></i> :</span></td><td> the encoding converter or NULL
Daniel Veillardd7cec922003-06-13 12:30:10 +0000384</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser output or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000385</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputBufferCreateIO"></a>xmlOutputBufferCreateIO ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> xmlOutputBufferCreateIO (<a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> iowrite,
386 <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> ioclose,
387 void *ioctx,
388 <a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> encoder);</pre><p>
389Create a buffered output for the progressive saving
390to an I/O handler</p><p>
391
William M. Brackc6e07552003-08-16 12:44:47 +0000392</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>iowrite</tt></i> :</span></td><td> an I/O write function
393</td></tr><tr><td><span class="term"><i class="parameter"><tt>ioclose</tt></i> :</span></td><td> an I/O close function
394</td></tr><tr><td><span class="term"><i class="parameter"><tt>ioctx</tt></i> :</span></td><td> an I/O handler
395</td></tr><tr><td><span class="term"><i class="parameter"><tt>encoder</tt></i> :</span></td><td> the charset encoding if known
Daniel Veillardd7cec922003-06-13 12:30:10 +0000396</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new parser output or NULL
Daniel Veillardd4330462003-04-29 12:40:16 +0000397</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputBufferWrite"></a>xmlOutputBufferWrite ()</h3><pre class="programlisting">int xmlOutputBufferWrite (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out,
398 int len,
399 const char *buf);</pre><p>
400Write the content of the array in the output I/O buffer
401This routine handle the I18N transcoding from internal UTF-8
402The buffer is lossless, i.e. will store in case of partial
403or delayed writes.</p><p>
404
William M. Brackc6e07552003-08-16 12:44:47 +0000405</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>out</tt></i> :</span></td><td> a buffered parser output
406</td></tr><tr><td><span class="term"><i class="parameter"><tt>len</tt></i> :</span></td><td> the size in bytes of the array.
407</td></tr><tr><td><span class="term"><i class="parameter"><tt>buf</tt></i> :</span></td><td> an char array
Daniel Veillardd7cec922003-06-13 12:30:10 +0000408</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of chars immediately written, or -1
409 in case of error.
Daniel Veillardd4330462003-04-29 12:40:16 +0000410</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputBufferWriteString"></a>xmlOutputBufferWriteString ()</h3><pre class="programlisting">int xmlOutputBufferWriteString (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out,
411 const char *str);</pre><p>
412Write the content of the string in the output I/O buffer
413This routine handle the I18N transcoding from internal UTF-8
414The buffer is lossless, i.e. will store in case of partial
415or delayed writes.</p><p>
416
William M. Brackc6e07552003-08-16 12:44:47 +0000417</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>out</tt></i> :</span></td><td> a buffered parser output
418</td></tr><tr><td><span class="term"><i class="parameter"><tt>str</tt></i> :</span></td><td> a zero terminated C string
Daniel Veillardd7cec922003-06-13 12:30:10 +0000419</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of chars immediately written, or -1
420 in case of error.
Daniel Veillardd4330462003-04-29 12:40:16 +0000421</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputBufferFlush"></a>xmlOutputBufferFlush ()</h3><pre class="programlisting">int xmlOutputBufferFlush (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out);</pre><p>
422flushes the output I/O channel</p><p>
423
William M. Brackc6e07552003-08-16 12:44:47 +0000424</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>out</tt></i> :</span></td><td> a buffered output
Daniel Veillardd7cec922003-06-13 12:30:10 +0000425</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of byte written or -1 in case of error.
Daniel Veillardd4330462003-04-29 12:40:16 +0000426</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlOutputBufferClose"></a>xmlOutputBufferClose ()</h3><pre class="programlisting">int xmlOutputBufferClose (<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> out);</pre><p>
427flushes and close the output I/O channel
428and free up all the associated resources</p><p>
429
William M. Brackc6e07552003-08-16 12:44:47 +0000430</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>out</tt></i> :</span></td><td> a buffered output
Daniel Veillardd7cec922003-06-13 12:30:10 +0000431</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of byte written or -1 in case of error.
Daniel Veillardd4330462003-04-29 12:40:16 +0000432</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRegisterOutputCallbacks"></a>xmlRegisterOutputCallbacks ()</h3><pre class="programlisting">int xmlRegisterOutputCallbacks (<a href="libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a> matchFunc,
433 <a href="libxml-xmlIO.html#xmlOutputOpenCallback">xmlOutputOpenCallback</a> openFunc,
434 <a href="libxml-xmlIO.html#xmlOutputWriteCallback">xmlOutputWriteCallback</a> writeFunc,
435 <a href="libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a> closeFunc);</pre><p>
436Register a new set of I/O callback for handling output.</p><p>
437
William M. Brackc6e07552003-08-16 12:44:47 +0000438</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matchFunc</tt></i> :</span></td><td> the xmlOutputMatchCallback
439</td></tr><tr><td><span class="term"><i class="parameter"><tt>openFunc</tt></i> :</span></td><td> the xmlOutputOpenCallback
440</td></tr><tr><td><span class="term"><i class="parameter"><tt>writeFunc</tt></i> :</span></td><td> the xmlOutputWriteCallback
441</td></tr><tr><td><span class="term"><i class="parameter"><tt>closeFunc</tt></i> :</span></td><td> the xmlOutputCloseCallback
Daniel Veillardd7cec922003-06-13 12:30:10 +0000442</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the registered handler number or -1 in case of error
Daniel Veillardd4330462003-04-29 12:40:16 +0000443</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIOHTTPOpenW"></a>xmlIOHTTPOpenW ()</h3><pre class="programlisting">void* xmlIOHTTPOpenW (const char *post_uri,
444 int compression);</pre><p>
445Open a temporary buffer to collect the document for a subsequent HTTP POST
446request. Non-static as is called from the output buffer creation routine.</p><p>
447
William M. Brackc6e07552003-08-16 12:44:47 +0000448</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>post_uri</tt></i> :</span></td><td> The destination URI for the document
449</td></tr><tr><td><span class="term"><i class="parameter"><tt>compression</tt></i> :</span></td><td> The compression desired for the document.
Daniel Veillardd4330462003-04-29 12:40:16 +0000450</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRegisterHTTPPostCallbacks"></a>xmlRegisterHTTPPostCallbacks ()</h3><pre class="programlisting">void xmlRegisterHTTPPostCallbacks (void);</pre><p>
Daniel Veillardcfba2fe2003-08-15 00:33:43 +0000451By default, libxml submits HTTP output requests using the "PUT" method.
452Calling this method changes the HTTP output method to use the "POST"
Daniel Veillardd4330462003-04-29 12:40:16 +0000453method instead.</p><p>
454
455</p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNoNetExternalEntityLoader"></a>xmlNoNetExternalEntityLoader ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> xmlNoNetExternalEntityLoader
456 (const char *URL,
457 const char *ID,
458 <a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);</pre><p>
459A specific entity loader disabling network accesses, though still
460allowing local catalog accesses for resolution.</p><p>
461
William M. Brackc6e07552003-08-16 12:44:47 +0000462</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>URL</tt></i> :</span></td><td> the URL for the entity to load
463</td></tr><tr><td><span class="term"><i class="parameter"><tt>ID</tt></i> :</span></td><td> the System ID for the entity to load
464</td></tr><tr><td><span class="term"><i class="parameter"><tt>ctxt</tt></i> :</span></td><td> the context in which the entity is called or NULL
Daniel Veillardd7cec922003-06-13 12:30:10 +0000465</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new allocated xmlParserInputPtr, or NULL.
Daniel Veillardd4330462003-04-29 12:40:16 +0000466</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNormalizeWindowsPath"></a>xmlNormalizeWindowsPath ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>* xmlNormalizeWindowsPath (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *path);</pre><p>
467This function is obsolete. Please see xmlURIFromPath in uri.c for
468a better solution.</p><p>
469
William M. Brackc6e07552003-08-16 12:44:47 +0000470</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>path</tt></i> :</span></td><td> the input file path
Daniel Veillardd7cec922003-06-13 12:30:10 +0000471</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a canonicalized version of the path
Daniel Veillardd4330462003-04-29 12:40:16 +0000472</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCheckFilename"></a>xmlCheckFilename ()</h3><pre class="programlisting">int xmlCheckFilename (const char *path);</pre><p>
William M. Brackc6e07552003-08-16 12:44:47 +0000473function checks to see if <i class="parameter"><tt>path</tt></i> is a valid source
Daniel Veillardd4330462003-04-29 12:40:16 +0000474(file, socket...) for XML.
475</p><p>
476if stat is not available on the target machine,
477returns 1. if stat fails, returns 0 (if calling
478stat on the filename fails, it can't be right).
479if stat succeeds and the file is a directory,</p><p>
480
William M. Brackc6e07552003-08-16 12:44:47 +0000481</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>path</tt></i> :</span></td><td> the path to check
Daniel Veillardd7cec922003-06-13 12:30:10 +0000482</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>2. otherwise returns 1.
Daniel Veillardd4330462003-04-29 12:40:16 +0000483</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFileMatch"></a>xmlFileMatch ()</h3><pre class="programlisting">int xmlFileMatch (const char *filename);</pre><p>
484input from FILE *</p><p>
485
William M. Brackc6e07552003-08-16 12:44:47 +0000486</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the URI for matching
Daniel Veillardd7cec922003-06-13 12:30:10 +0000487</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if matches, 0 otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +0000488</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFileOpen"></a>xmlFileOpen ()</h3><pre class="programlisting">void* xmlFileOpen (const char *filename);</pre><p>
489Wrapper around xmlFileOpen_real that try it with an unescaped
William M. Brackc6e07552003-08-16 12:44:47 +0000490version of <i class="parameter"><tt>filename</tt></i>, if this fails fallback to <i class="parameter"><tt>filename</tt></i></p><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000491
William M. Brackc6e07552003-08-16 12:44:47 +0000492</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the URI for matching
Daniel Veillardd4330462003-04-29 12:40:16 +0000493</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFileRead"></a>xmlFileRead ()</h3><pre class="programlisting">int xmlFileRead (void *context,
494 char *buffer,
495 int len);</pre><p>
William M. Brackc6e07552003-08-16 12:44:47 +0000496Read <i class="parameter"><tt>len</tt></i> bytes to <i class="parameter"><tt>buffer</tt></i> from the I/O channel.</p><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000497
William M. Brackc6e07552003-08-16 12:44:47 +0000498</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td> the I/O context
499</td></tr><tr><td><span class="term"><i class="parameter"><tt>buffer</tt></i> :</span></td><td> where to drop data
500</td></tr><tr><td><span class="term"><i class="parameter"><tt>len</tt></i> :</span></td><td> number of bytes to write
Daniel Veillardd7cec922003-06-13 12:30:10 +0000501</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of bytes written
Daniel Veillardd4330462003-04-29 12:40:16 +0000502</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFileClose"></a>xmlFileClose ()</h3><pre class="programlisting">int xmlFileClose (void *context);</pre><p>
503Close an I/O channel</p><p>
504
William M. Brackc6e07552003-08-16 12:44:47 +0000505</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td> the I/O context
Daniel Veillardd7cec922003-06-13 12:30:10 +0000506</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 or -1 in case of error
Daniel Veillardd4330462003-04-29 12:40:16 +0000507</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIOHTTPMatch"></a>xmlIOHTTPMatch ()</h3><pre class="programlisting">int xmlIOHTTPMatch (const char *filename);</pre><p>
508check if the URI matches an HTTP one</p><p>
509
William M. Brackc6e07552003-08-16 12:44:47 +0000510</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the URI for matching
Daniel Veillardd7cec922003-06-13 12:30:10 +0000511</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if matches, 0 otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +0000512</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIOHTTPOpen"></a>xmlIOHTTPOpen ()</h3><pre class="programlisting">void* xmlIOHTTPOpen (const char *filename);</pre><p>
513open an HTTP I/O channel</p><p>
514
William M. Brackc6e07552003-08-16 12:44:47 +0000515</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the URI for matching
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="xmlIOHTTPRead"></a>xmlIOHTTPRead ()</h3><pre class="programlisting">int xmlIOHTTPRead (void *context,
517 char *buffer,
518 int len);</pre><p>
William M. Brackc6e07552003-08-16 12:44:47 +0000519Read <i class="parameter"><tt>len</tt></i> bytes to <i class="parameter"><tt>buffer</tt></i> from the I/O channel.</p><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000520
William M. Brackc6e07552003-08-16 12:44:47 +0000521</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td> the I/O context
522</td></tr><tr><td><span class="term"><i class="parameter"><tt>buffer</tt></i> :</span></td><td> where to drop data
523</td></tr><tr><td><span class="term"><i class="parameter"><tt>len</tt></i> :</span></td><td> number of bytes to write
Daniel Veillardd7cec922003-06-13 12:30:10 +0000524</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of bytes written
Daniel Veillardd4330462003-04-29 12:40:16 +0000525</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIOHTTPClose"></a>xmlIOHTTPClose ()</h3><pre class="programlisting">int xmlIOHTTPClose (void *context);</pre><p>
526Close an HTTP I/O channel</p><p>
527
William M. Brackc6e07552003-08-16 12:44:47 +0000528</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td> the I/O context
Daniel Veillardd7cec922003-06-13 12:30:10 +0000529</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0
Daniel Veillardd4330462003-04-29 12:40:16 +0000530</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIOFTPMatch"></a>xmlIOFTPMatch ()</h3><pre class="programlisting">int xmlIOFTPMatch (const char *filename);</pre><p>
531check if the URI matches an FTP one</p><p>
532
William M. Brackc6e07552003-08-16 12:44:47 +0000533</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the URI for matching
Daniel Veillardd7cec922003-06-13 12:30:10 +0000534</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if matches, 0 otherwise
Daniel Veillardd4330462003-04-29 12:40:16 +0000535</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIOFTPOpen"></a>xmlIOFTPOpen ()</h3><pre class="programlisting">void* xmlIOFTPOpen (const char *filename);</pre><p>
536open an FTP I/O channel</p><p>
537
William M. Brackc6e07552003-08-16 12:44:47 +0000538</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>filename</tt></i> :</span></td><td> the URI for matching
Daniel Veillardd4330462003-04-29 12:40:16 +0000539</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIOFTPRead"></a>xmlIOFTPRead ()</h3><pre class="programlisting">int xmlIOFTPRead (void *context,
540 char *buffer,
541 int len);</pre><p>
William M. Brackc6e07552003-08-16 12:44:47 +0000542Read <i class="parameter"><tt>len</tt></i> bytes to <i class="parameter"><tt>buffer</tt></i> from the I/O channel.</p><p>
Daniel Veillardd4330462003-04-29 12:40:16 +0000543
William M. Brackc6e07552003-08-16 12:44:47 +0000544</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td> the I/O context
545</td></tr><tr><td><span class="term"><i class="parameter"><tt>buffer</tt></i> :</span></td><td> where to drop data
546</td></tr><tr><td><span class="term"><i class="parameter"><tt>len</tt></i> :</span></td><td> number of bytes to write
Daniel Veillardd7cec922003-06-13 12:30:10 +0000547</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of bytes written
Daniel Veillardd4330462003-04-29 12:40:16 +0000548</td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIOFTPClose"></a>xmlIOFTPClose ()</h3><pre class="programlisting">int xmlIOFTPClose (void *context);</pre><p>
549Close an FTP I/O channel</p><p>
550
William M. Brackc6e07552003-08-16 12:44:47 +0000551</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td> the I/O context
Daniel Veillardd7cec922003-06-13 12:30:10 +0000552</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0
William M. Brackc6e07552003-08-16 12:44:47 +0000553</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-xmlmemory.html"><b>&lt;&lt; xmlmemory</b></a></td><td align="right"><a accesskey="n" href="libxml-xpath.html"><b>xpath &gt;&gt;</b></a></td></tr></table></body></html>