00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __XML_IO_H__
00011 #define __XML_IO_H__
00012
00013 #include <stdio.h>
00014 #include <libxml/xmlversion.h>
00015
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019
00020
00021
00022
00023
00024
00034 typedef int (XMLCALL *xmlInputMatchCallback) (char const *filename);
00043 typedef void * (XMLCALL *xmlInputOpenCallback) (char const *filename);
00054 typedef int (XMLCALL *xmlInputReadCallback) (void * context, char * buffer, int len);
00063 typedef int (XMLCALL *xmlInputCloseCallback) (void * context);
00064
00065 #ifdef LIBXML_OUTPUT_ENABLED
00066
00067
00068
00069
00070
00080 typedef int (XMLCALL *xmlOutputMatchCallback) (char const *filename);
00089 typedef void * (XMLCALL *xmlOutputOpenCallback) (char const *filename);
00100 typedef int (XMLCALL *xmlOutputWriteCallback) (void * context, const char * buffer,
00101 int len);
00110 typedef int (XMLCALL *xmlOutputCloseCallback) (void * context);
00111 #endif
00112
00113 #ifdef __cplusplus
00114 }
00115 #endif
00116
00117 #include <libxml/globals.h>
00118 #include <libxml/tree.h>
00119 #include <libxml/parser.h>
00120 #include <libxml/encoding.h>
00121
00122 #ifdef __cplusplus
00123 extern "C" {
00124 #endif
00125 struct _xmlParserInputBuffer {
00126 void* context;
00127 xmlInputReadCallback readcallback;
00128 xmlInputCloseCallback closecallback;
00129
00130 xmlCharEncodingHandlerPtr encoder;
00131
00132 xmlBufferPtr buffer;
00133 xmlBufferPtr raw;
00134 int compressed;
00135 int error;
00136 unsigned long rawconsumed;
00137 };
00138
00139
00140 #ifdef LIBXML_OUTPUT_ENABLED
00141 struct _xmlOutputBuffer {
00142 void* context;
00143 xmlOutputWriteCallback writecallback;
00144 xmlOutputCloseCallback closecallback;
00145
00146 xmlCharEncodingHandlerPtr encoder;
00147
00148 xmlBufferPtr buffer;
00149 xmlBufferPtr conv;
00150 int written;
00151 int error;
00152 };
00153 #endif
00154
00155
00156
00157
00158 XMLPUBFUN void XMLCALL
00159 xmlCleanupInputCallbacks (void);
00160
00161 XMLPUBFUN int XMLCALL
00162 xmlPopInputCallbacks (void);
00163
00164 XMLPUBFUN void XMLCALL
00165 xmlRegisterDefaultInputCallbacks (void);
00166 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00167 xmlAllocParserInputBuffer (xmlCharEncoding enc);
00168
00169 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00170 xmlParserInputBufferCreateFilename (const char *URI,
00171 xmlCharEncoding enc);
00172 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00173 xmlParserInputBufferCreateFile (FILE *file,
00174 xmlCharEncoding enc);
00175 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00176 xmlParserInputBufferCreateFd (int fd,
00177 xmlCharEncoding enc);
00178 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00179 xmlParserInputBufferCreateMem (const char *mem, int size,
00180 xmlCharEncoding enc);
00181 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00182 xmlParserInputBufferCreateStatic (const char *mem, int size,
00183 xmlCharEncoding enc);
00184 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00185 xmlParserInputBufferCreateIO (xmlInputReadCallback ioread,
00186 xmlInputCloseCallback ioclose,
00187 void *ioctx,
00188 xmlCharEncoding enc);
00189 XMLPUBFUN int XMLCALL
00190 xmlParserInputBufferRead (xmlParserInputBufferPtr in,
00191 int len);
00192 XMLPUBFUN int XMLCALL
00193 xmlParserInputBufferGrow (xmlParserInputBufferPtr in,
00194 int len);
00195 XMLPUBFUN int XMLCALL
00196 xmlParserInputBufferPush (xmlParserInputBufferPtr in,
00197 int len,
00198 const char *buf);
00199 XMLPUBFUN void XMLCALL
00200 xmlFreeParserInputBuffer (xmlParserInputBufferPtr in);
00201 XMLPUBFUN char * XMLCALL
00202 xmlParserGetDirectory (const char *filename);
00203
00204 XMLPUBFUN int XMLCALL
00205 xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc,
00206 xmlInputOpenCallback openFunc,
00207 xmlInputReadCallback readFunc,
00208 xmlInputCloseCallback closeFunc);
00209
00210 xmlParserInputBufferPtr
00211 __xmlParserInputBufferCreateFilename(const char *URI,
00212 xmlCharEncoding enc);
00213
00214 #ifdef LIBXML_OUTPUT_ENABLED
00215
00216
00217
00218 XMLPUBFUN void XMLCALL
00219 xmlCleanupOutputCallbacks (void);
00220 XMLPUBFUN void XMLCALL
00221 xmlRegisterDefaultOutputCallbacks(void);
00222 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00223 xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder);
00224
00225 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00226 xmlOutputBufferCreateFilename (const char *URI,
00227 xmlCharEncodingHandlerPtr encoder,
00228 int compression);
00229
00230 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00231 xmlOutputBufferCreateFile (FILE *file,
00232 xmlCharEncodingHandlerPtr encoder);
00233
00234 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00235 xmlOutputBufferCreateBuffer (xmlBufferPtr buffer,
00236 xmlCharEncodingHandlerPtr encoder);
00237
00238 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00239 xmlOutputBufferCreateFd (int fd,
00240 xmlCharEncodingHandlerPtr encoder);
00241
00242 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00243 xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite,
00244 xmlOutputCloseCallback ioclose,
00245 void *ioctx,
00246 xmlCharEncodingHandlerPtr encoder);
00247
00248 XMLPUBFUN int XMLCALL
00249 xmlOutputBufferWrite (xmlOutputBufferPtr out,
00250 int len,
00251 const char *buf);
00252 XMLPUBFUN int XMLCALL
00253 xmlOutputBufferWriteString (xmlOutputBufferPtr out,
00254 const char *str);
00255 XMLPUBFUN int XMLCALL
00256 xmlOutputBufferWriteEscape (xmlOutputBufferPtr out,
00257 const xmlChar *str,
00258 xmlCharEncodingOutputFunc escaping);
00259
00260 XMLPUBFUN int XMLCALL
00261 xmlOutputBufferFlush (xmlOutputBufferPtr out);
00262 XMLPUBFUN int XMLCALL
00263 xmlOutputBufferClose (xmlOutputBufferPtr out);
00264
00265 XMLPUBFUN int XMLCALL
00266 xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc,
00267 xmlOutputOpenCallback openFunc,
00268 xmlOutputWriteCallback writeFunc,
00269 xmlOutputCloseCallback closeFunc);
00270
00271 xmlOutputBufferPtr
00272 __xmlOutputBufferCreateFilename(const char *URI,
00273 xmlCharEncodingHandlerPtr encoder,
00274 int compression);
00275
00276 #ifdef LIBXML_HTTP_ENABLED
00277
00278 XMLPUBFUN void XMLCALL
00279 xmlRegisterHTTPPostCallbacks (void );
00280 #endif
00281
00282 #endif
00283
00284 XMLPUBFUN xmlParserInputPtr XMLCALL
00285 xmlCheckHTTPInput (xmlParserCtxtPtr ctxt,
00286 xmlParserInputPtr ret);
00287
00288
00289
00290
00291 XMLPUBFUN xmlParserInputPtr XMLCALL
00292 xmlNoNetExternalEntityLoader (const char *URL,
00293 const char *ID,
00294 xmlParserCtxtPtr ctxt);
00295
00296
00297
00298
00299
00300 XMLPUBFUN xmlChar * XMLCALL
00301 xmlNormalizeWindowsPath (const xmlChar *path);
00302
00303 XMLPUBFUN int XMLCALL
00304 xmlCheckFilename (const char *path);
00308 XMLPUBFUN int XMLCALL
00309 xmlFileMatch (const char *filename);
00310 XMLPUBFUN void * XMLCALL
00311 xmlFileOpen (const char *filename);
00312 XMLPUBFUN int XMLCALL
00313 xmlFileRead (void * context,
00314 char * buffer,
00315 int len);
00316 XMLPUBFUN int XMLCALL
00317 xmlFileClose (void * context);
00318
00322 #ifdef LIBXML_HTTP_ENABLED
00323 XMLPUBFUN int XMLCALL
00324 xmlIOHTTPMatch (const char *filename);
00325 XMLPUBFUN void * XMLCALL
00326 xmlIOHTTPOpen (const char *filename);
00327 #ifdef LIBXML_OUTPUT_ENABLED
00328 XMLPUBFUN void * XMLCALL
00329 xmlIOHTTPOpenW (const char * post_uri,
00330 int compression );
00331 #endif
00332 XMLPUBFUN int XMLCALL
00333 xmlIOHTTPRead (void * context,
00334 char * buffer,
00335 int len);
00336 XMLPUBFUN int XMLCALL
00337 xmlIOHTTPClose (void * context);
00338 #endif
00339
00343 #ifdef LIBXML_FTP_ENABLED
00344 XMLPUBFUN int XMLCALL
00345 xmlIOFTPMatch (const char *filename);
00346 XMLPUBFUN void * XMLCALL
00347 xmlIOFTPOpen (const char *filename);
00348 XMLPUBFUN int XMLCALL
00349 xmlIOFTPRead (void * context,
00350 char * buffer,
00351 int len);
00352 XMLPUBFUN int XMLCALL
00353 xmlIOFTPClose (void * context);
00354 #endif
00355
00356 #ifdef __cplusplus
00357 }
00358 #endif
00359
00360 #endif