xmlIO.h revision a840b69261c44760d45370bef989c77f84727406
13473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/* 23473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * xmlIO.h : interface for the I/O interfaces used by the parser 33473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * 43473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * See Copyright for the status of this software. 53473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * 6c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard * daniel@veillard.com 73473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * 83473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */ 93473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifndef __XML_IO_H__ 113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#define __XML_IO_H__ 123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 133473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#include <stdio.h> 14f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard#include <libxml/xmlversion.h> 153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 163473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifdef __cplusplus 173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorextern "C" { 183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif 193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/* 213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Those are the functions and datatypes for the parser input 223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * I/O structures. 233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */ 243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 259d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/** 269d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlInputMatchCallback: 279d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @filename: the filename or URI 289d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 299d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Callback used in the I/O Input API to detect if the current handler 309d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * can provide input fonctionnalities for this resource. 319d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 329d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns 1 if yes and 0 if another Input module should be used 339d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */ 343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef int (*xmlInputMatchCallback) (char const *filename); 359d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/** 369d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlInputOpenCallback: 379d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @filename: the filename or URI 389d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 399d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Callback used in the I/O Input API to open the resource 409d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 419d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns an Input context or NULL in case or error 429d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */ 433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef void * (*xmlInputOpenCallback) (char const *filename); 449d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/** 459d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlInputReadCallback: 469d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @context: an Input context 479d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @buffer: the buffer to store data read 489d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @len: the length of the buffer in bytes 499d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 509d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Callback used in the I/O Input API to read the resource 519d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 529d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns the number of bytes read or -1 in case of error 539d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */ 543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef int (*xmlInputReadCallback) (void * context, char * buffer, int len); 559d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/** 569d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlInputCloseCallback: 579d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @context: an Input context 589d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 599d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Callback used in the I/O Input API to close the resource 609d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 619d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns 0 or -1 in case of error 629d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */ 63f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillardtypedef int (*xmlInputCloseCallback) (void * context); 643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 65a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#ifdef LIBXML_OUTPUT_ENABLED 663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/* 673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Those are the functions and datatypes for the library output 683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * I/O structures. 693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */ 703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 719d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/** 729d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlOutputMatchCallback: 739d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @filename: the filename or URI 749d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 759d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Callback used in the I/O Output API to detect if the current handler 769d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * can provide output fonctionnalities for this resource. 779d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 789d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns 1 if yes and 0 if another Output module should be used 799d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */ 803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef int (*xmlOutputMatchCallback) (char const *filename); 819d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/** 829d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlOutputOpenCallback: 839d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @filename: the filename or URI 849d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 859d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Callback used in the I/O Output API to open the resource 869d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 879d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns an Output context or NULL in case or error 889d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */ 893473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef void * (*xmlOutputOpenCallback) (char const *filename); 909d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/** 919d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlOutputWriteCallback: 929d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @context: an Output context 939d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @buffer: the buffer of data to write 949d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @len: the length of the buffer in bytes 959d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 969d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Callback used in the I/O Output API to write to the resource 979d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 989d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns the number of bytes written or -1 in case of error 999d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */ 1003473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylortypedef int (*xmlOutputWriteCallback) (void * context, const char * buffer, 1013473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int len); 1029d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard/** 1039d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * xmlOutputCloseCallback: 1049d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * @context: an Output context 1059d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 1069d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Callback used in the I/O Output API to close the resource 1079d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * 1089d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard * Returns 0 or -1 in case of error 1099d06d300a5c4146907b3af8fcbf67d8e7d868567Daniel Veillard */ 110f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillardtypedef int (*xmlOutputCloseCallback) (void * context); 111a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#endif /* LIBXML_OUTPUT_ENABLED */ 1123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 113a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard#ifdef __cplusplus 114a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard} 115a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard#endif 116a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard 117a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard#include <libxml/globals.h> 118a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard#include <libxml/tree.h> 119a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard#include <libxml/parser.h> 120a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard#include <libxml/encoding.h> 121a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard 122a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard#ifdef __cplusplus 123a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillardextern "C" { 124a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard#endif 125a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillardstruct _xmlParserInputBuffer { 126a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard void* context; 127a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard xmlInputReadCallback readcallback; 128a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard xmlInputCloseCallback closecallback; 129a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard 130a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */ 131a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard 132a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 */ 133a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard xmlBufferPtr raw; /* if encoder != NULL buffer for raw input */ 134c07329e2abfdaade767d0bd0268de324ba4058a2William M. Brack int compressed; /* -1=unknown, 0=not compressed, 1=compressed */ 13597bf4d02e5bdd07720e104eead52baa5ddff71fdDaniel Veillard int error; 136a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard}; 137a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard 138a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard 139a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#ifdef LIBXML_OUTPUT_ENABLED 1403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlOutputBuffer { 1413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor void* context; 1423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputWriteCallback writecallback; 1433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputCloseCallback closecallback; 1443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 1453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */ 1463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 1473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 or ISOLatin */ 1483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlBufferPtr conv; /* if encoder != NULL buffer for output */ 1493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int written; /* total number of byte written */ 15097bf4d02e5bdd07720e104eead52baa5ddff71fdDaniel Veillard int error; 1513473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor}; 152a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#endif /* LIBXML_OUTPUT_ENABLED */ 1533473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 1543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/* 1553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Interfaces for input 1563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */ 157aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL 158aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlCleanupInputCallbacks (void); 1593473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 160aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL 161aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlRegisterDefaultInputCallbacks (void); 16276874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1633473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlAllocParserInputBuffer (xmlCharEncoding enc); 1643473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 16576874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1663473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlParserInputBufferCreateFilename (const char *URI, 1673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncoding enc); 16876874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1693473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlParserInputBufferCreateFile (FILE *file, 1703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncoding enc); 17176874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1723473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlParserInputBufferCreateFd (int fd, 1733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncoding enc); 17476874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1753473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlParserInputBufferCreateMem (const char *mem, int size, 1763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncoding enc); 17776874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1785335055ef698595d4a4b7e4613fd057a45166849Daniel Veillard xmlParserInputBufferCreateStatic (const char *mem, int size, 1795335055ef698595d4a4b7e4613fd057a45166849Daniel Veillard xmlCharEncoding enc); 1805335055ef698595d4a4b7e4613fd057a45166849Daniel VeillardXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1813473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlParserInputBufferCreateIO (xmlInputReadCallback ioread, 1823473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlInputCloseCallback ioclose, 1833473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor void *ioctx, 1843473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncoding enc); 185aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 186aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlParserInputBufferRead (xmlParserInputBufferPtr in, 1873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int len); 188aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 189aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlParserInputBufferGrow (xmlParserInputBufferPtr in, 1903473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int len); 191aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 192aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlParserInputBufferPush (xmlParserInputBufferPtr in, 1933473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int len, 1943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor const char *buf); 195aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL 196aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlFreeParserInputBuffer (xmlParserInputBufferPtr in); 197aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN char * XMLCALL 198aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlParserGetDirectory (const char *filename); 1993473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 200aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 201aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc, 20256a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlInputOpenCallback openFunc, 20356a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlInputReadCallback readFunc, 20456a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlInputCloseCallback closeFunc); 205a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#ifdef LIBXML_OUTPUT_ENABLED 2063473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/* 2073473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Interfaces for output 2083473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */ 209aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL 210a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard xmlCleanupOutputCallbacks (void); 211a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel VeillardXMLPUBFUN void XMLCALL 212aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlRegisterDefaultOutputCallbacks(void); 21376874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlOutputBufferPtr XMLCALL 2143473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder); 2153473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 21676874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlOutputBufferPtr XMLCALL 2173473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputBufferCreateFilename (const char *URI, 2183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncodingHandlerPtr encoder, 2193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int compression); 2203473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 22176874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlOutputBufferPtr XMLCALL 2223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputBufferCreateFile (FILE *file, 2233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncodingHandlerPtr encoder); 2243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 22576874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlOutputBufferPtr XMLCALL 2263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputBufferCreateFd (int fd, 2273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncodingHandlerPtr encoder); 2283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 22976874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlOutputBufferPtr XMLCALL 2303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite, 2313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputCloseCallback ioclose, 2323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor void *ioctx, 2333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncodingHandlerPtr encoder); 2343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 235aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 236aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlOutputBufferWrite (xmlOutputBufferPtr out, 2373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int len, 2383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor const char *buf); 239aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 240aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlOutputBufferWriteString (xmlOutputBufferPtr out, 2413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor const char *str); 2423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 243aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 244aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlOutputBufferFlush (xmlOutputBufferPtr out); 245aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 246aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlOutputBufferClose (xmlOutputBufferPtr out); 2473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 248aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 249aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc, 25056a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlOutputOpenCallback openFunc, 25156a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlOutputWriteCallback writeFunc, 25256a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlOutputCloseCallback closeFunc); 253a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#endif /* LIBXML_OUTPUT_ENABLED */ 2543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 255f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard/* This function only exists if HTTP support built into the library */ 256f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard#ifdef LIBXML_HTTP_ENABLED 257aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void * XMLCALL 258aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOHTTPOpenW (const char * post_uri, 259f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard int compression ); 260aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL 261aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlRegisterHTTPPostCallbacks (void ); 262f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard#endif 263a840b69261c44760d45370bef989c77f84727406Daniel VeillardXMLPUBFUN xmlParserInputPtr XMLCALL 264a840b69261c44760d45370bef989c77f84727406Daniel Veillard xmlCheckHTTPInput (xmlParserCtxtPtr ctxt, 265a840b69261c44760d45370bef989c77f84727406Daniel Veillard xmlParserInputPtr ret); 266f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard 2673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/* 2688bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard * A predefined entity loader disabling network accesses 2698bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard */ 270aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlParserInputPtr XMLCALL 271aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlNoNetExternalEntityLoader (const char *URL, 2728bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard const char *ID, 2738bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard xmlParserCtxtPtr ctxt); 2748bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard 2755f9fada355da8d4120a526ecea513f85e69755eeIgor Zlatkovic/* 2765f9fada355da8d4120a526ecea513f85e69755eeIgor Zlatkovic * xmlNormalizeWindowsPath is obsolete, don't use it. 2775f9fada355da8d4120a526ecea513f85e69755eeIgor Zlatkovic * Check xmlCanonicPath in uri.h for a better alternative. 2785f9fada355da8d4120a526ecea513f85e69755eeIgor Zlatkovic */ 279aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlChar * XMLCALL 280aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlNormalizeWindowsPath (const xmlChar *path); 2815aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin 282aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 283aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlCheckFilename (const char *path); 2845aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin/** 2855aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin * Default 'file://' protocol callbacks 2865aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin */ 287aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 288aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlFileMatch (const char *filename); 289aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void * XMLCALL 290aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlFileOpen (const char *filename); 291aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 292aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlFileRead (void * context, 2935aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin char * buffer, 2945aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin int len); 295aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 296aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlFileClose (void * context); 2975aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin 2985aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin/** 2995aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin * Default 'http://' protocol callbacks 3005aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin */ 3015aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin#ifdef LIBXML_HTTP_ENABLED 302aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 303aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOHTTPMatch (const char *filename); 304aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void * XMLCALL 305aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOHTTPOpen (const char *filename); 306aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 307aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOHTTPRead (void * context, 3085aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin char * buffer, 3095aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin int len); 310aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 311aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOHTTPClose (void * context); 3125aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin#endif /* LIBXML_HTTP_ENABLED */ 3135aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin 3145aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin/** 3155aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin * Default 'ftp://' protocol callbacks 3165aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin */ 3175aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin#ifdef LIBXML_FTP_ENABLED 318aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 319aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOFTPMatch (const char *filename); 320aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void * XMLCALL 321aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOFTPOpen (const char *filename); 322aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 323aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOFTPRead (void * context, 3245aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin char * buffer, 3255aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin int len); 326aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 327aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOFTPClose (void * context); 3285aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin#endif /* LIBXML_FTP_ENABLED */ 3295aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin 3303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifdef __cplusplus 3313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} 3323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif 3333473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 3343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif /* __XML_IO_H__ */ 335