xmlIO.h revision 5d1a4d81bf16fe341017f46bc1f102bdf72778fa
13473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/* 2be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Summary: interface for the I/O interfaces used by the parser 3be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Description: interface for the I/O interfaces used by the parser 43473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * 5be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Copy: See Copyright for the status of this software. 63473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * 7be5869729a416032a4abb5a65430d25831828f75Daniel Veillard * Author: Daniel Veillard 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; 1363671190b546760a9e10d2e683257c3a86c680816Daniel Veillard unsigned long rawconsumed;/* amount consumed from raw */ 137a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard}; 138a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard 139a8a89fe587a578bd9942f6d79d8d9258f4ad3e96Daniel Veillard 140a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#ifdef LIBXML_OUTPUT_ENABLED 1413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylorstruct _xmlOutputBuffer { 1423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor void* context; 1433473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputWriteCallback writecallback; 1443473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputCloseCallback closecallback; 1453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 1463473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */ 1473473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 1483473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 or ISOLatin */ 1493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlBufferPtr conv; /* if encoder != NULL buffer for output */ 1503473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int written; /* total number of byte written */ 15197bf4d02e5bdd07720e104eead52baa5ddff71fdDaniel Veillard int error; 1523473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor}; 153a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#endif /* LIBXML_OUTPUT_ENABLED */ 1543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 1553473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/* 1563473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Interfaces for input 1573473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */ 158aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL 159aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlCleanupInputCallbacks (void); 1603473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 161aecc0dc1f58f66765d68997bb85b5c4534404c67Daniel VeillardXMLPUBFUN int XMLCALL 162aecc0dc1f58f66765d68997bb85b5c4534404c67Daniel Veillard xmlPopInputCallbacks (void); 163aecc0dc1f58f66765d68997bb85b5c4534404c67Daniel Veillard 164aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL 165aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlRegisterDefaultInputCallbacks (void); 16676874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1673473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlAllocParserInputBuffer (xmlCharEncoding enc); 1683473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 16976874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1703473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlParserInputBufferCreateFilename (const char *URI, 1713473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncoding enc); 17276874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1733473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlParserInputBufferCreateFile (FILE *file, 1743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncoding enc); 17576874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1763473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlParserInputBufferCreateFd (int fd, 1773473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncoding enc); 17876874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1793473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlParserInputBufferCreateMem (const char *mem, int size, 1803473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncoding enc); 18176874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1825335055ef698595d4a4b7e4613fd057a45166849Daniel Veillard xmlParserInputBufferCreateStatic (const char *mem, int size, 1835335055ef698595d4a4b7e4613fd057a45166849Daniel Veillard xmlCharEncoding enc); 1845335055ef698595d4a4b7e4613fd057a45166849Daniel VeillardXMLPUBFUN xmlParserInputBufferPtr XMLCALL 1853473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlParserInputBufferCreateIO (xmlInputReadCallback ioread, 1863473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlInputCloseCallback ioclose, 1873473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor void *ioctx, 1883473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncoding enc); 189aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 190aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlParserInputBufferRead (xmlParserInputBufferPtr in, 1913473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int len); 192aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 193aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlParserInputBufferGrow (xmlParserInputBufferPtr in, 1943473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int len); 195aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 196aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlParserInputBufferPush (xmlParserInputBufferPtr in, 1973473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int len, 1983473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor const char *buf); 199aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL 200aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlFreeParserInputBuffer (xmlParserInputBufferPtr in); 201aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN char * XMLCALL 202aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlParserGetDirectory (const char *filename); 2033473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 204aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 205aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc, 20656a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlInputOpenCallback openFunc, 20756a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlInputReadCallback readFunc, 20856a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlInputCloseCallback closeFunc); 209a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#ifdef LIBXML_OUTPUT_ENABLED 2103473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/* 2113473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor * Interfaces for output 2123473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor */ 213aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL 214a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard xmlCleanupOutputCallbacks (void); 215a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel VeillardXMLPUBFUN void XMLCALL 216aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlRegisterDefaultOutputCallbacks(void); 21776874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlOutputBufferPtr XMLCALL 2183473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder); 2193473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 22076874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlOutputBufferPtr XMLCALL 2213473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputBufferCreateFilename (const char *URI, 2223473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncodingHandlerPtr encoder, 2233473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int compression); 2243473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 22576874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlOutputBufferPtr XMLCALL 2263473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputBufferCreateFile (FILE *file, 2273473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncodingHandlerPtr encoder); 2283473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 22976874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlOutputBufferPtr XMLCALL 2303473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputBufferCreateFd (int fd, 2313473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncodingHandlerPtr encoder); 2323473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 23376874e4516a1d7b467d400604f8aef77be015727Igor ZlatkovicXMLPUBFUN xmlOutputBufferPtr XMLCALL 2343473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite, 2353473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlOutputCloseCallback ioclose, 2363473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor void *ioctx, 2373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor xmlCharEncodingHandlerPtr encoder); 2383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 239aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 240aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlOutputBufferWrite (xmlOutputBufferPtr out, 2413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor int len, 2423473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor const char *buf); 243aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 244aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlOutputBufferWriteString (xmlOutputBufferPtr out, 2453473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor const char *str); 2465d1a4d81bf16fe341017f46bc1f102bdf72778faDaniel VeillardXMLPUBFUN int XMLCALL 2475d1a4d81bf16fe341017f46bc1f102bdf72778faDaniel Veillard xmlOutputBufferWriteEscape (xmlOutputBufferPtr out, 2485d1a4d81bf16fe341017f46bc1f102bdf72778faDaniel Veillard const xmlChar *str); 2493473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 250aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 251aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlOutputBufferFlush (xmlOutputBufferPtr out); 252aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 253aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlOutputBufferClose (xmlOutputBufferPtr out); 2543473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 255aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 256aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc, 25756a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlOutputOpenCallback openFunc, 25856a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlOutputWriteCallback writeFunc, 25956a4cb8c4d3eab4ab3295a61c87e8e92483922c6Daniel Veillard xmlOutputCloseCallback closeFunc); 260a9cce9cd0d7aff3ec318b5d8d376da131b6aaad4Daniel Veillard#endif /* LIBXML_OUTPUT_ENABLED */ 2613473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 262f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard/* This function only exists if HTTP support built into the library */ 263f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard#ifdef LIBXML_HTTP_ENABLED 264aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void * XMLCALL 265aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOHTTPOpenW (const char * post_uri, 266f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard int compression ); 267aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void XMLCALL 268aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlRegisterHTTPPostCallbacks (void ); 269f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard#endif 270a840b69261c44760d45370bef989c77f84727406Daniel VeillardXMLPUBFUN xmlParserInputPtr XMLCALL 271a840b69261c44760d45370bef989c77f84727406Daniel Veillard xmlCheckHTTPInput (xmlParserCtxtPtr ctxt, 272a840b69261c44760d45370bef989c77f84727406Daniel Veillard xmlParserInputPtr ret); 273f012a64d13d85d53eac0d4d6625508109e7c9e9dDaniel Veillard 2743473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor/* 2758bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard * A predefined entity loader disabling network accesses 2768bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard */ 277aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlParserInputPtr XMLCALL 278aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlNoNetExternalEntityLoader (const char *URL, 2798bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard const char *ID, 2808bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard xmlParserCtxtPtr ctxt); 2818bdb91dd5c6c6c89cd1668ba78b1048239ca6ca6Daniel Veillard 2825f9fada355da8d4120a526ecea513f85e69755eeIgor Zlatkovic/* 2835f9fada355da8d4120a526ecea513f85e69755eeIgor Zlatkovic * xmlNormalizeWindowsPath is obsolete, don't use it. 2845f9fada355da8d4120a526ecea513f85e69755eeIgor Zlatkovic * Check xmlCanonicPath in uri.h for a better alternative. 2855f9fada355da8d4120a526ecea513f85e69755eeIgor Zlatkovic */ 286aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN xmlChar * XMLCALL 287aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlNormalizeWindowsPath (const xmlChar *path); 2885aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin 289aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 290aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlCheckFilename (const char *path); 2915aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin/** 2925aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin * Default 'file://' protocol callbacks 2935aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin */ 294aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 295aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlFileMatch (const char *filename); 296aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void * XMLCALL 297aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlFileOpen (const char *filename); 298aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 299aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlFileRead (void * context, 3005aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin char * buffer, 3015aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin int len); 302aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 303aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlFileClose (void * context); 3045aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin 3055aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin/** 3065aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin * Default 'http://' protocol callbacks 3075aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin */ 3085aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin#ifdef LIBXML_HTTP_ENABLED 309aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 310aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOHTTPMatch (const char *filename); 311aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void * XMLCALL 312aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOHTTPOpen (const char *filename); 313aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 314aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOHTTPRead (void * context, 3155aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin char * buffer, 3165aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin int len); 317aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 318aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOHTTPClose (void * context); 3195aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin#endif /* LIBXML_HTTP_ENABLED */ 3205aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin 3215aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin/** 3225aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin * Default 'ftp://' protocol callbacks 3235aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin */ 3245aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin#ifdef LIBXML_FTP_ENABLED 325aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 326aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOFTPMatch (const char *filename); 327aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN void * XMLCALL 328aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOFTPOpen (const char *filename); 329aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 330aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOFTPRead (void * context, 3315aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin char * buffer, 3325aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin int len); 333aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor ZlatkovicXMLPUBFUN int XMLCALL 334aa3cfbd0809378d88bc907742a9ddd27cc49b335Igor Zlatkovic xmlIOFTPClose (void * context); 3355aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin#endif /* LIBXML_FTP_ENABLED */ 3365aac8b85dd1eabdfac7ed6fe181477830149531aAleksey Sanin 3373473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#ifdef __cplusplus 3383473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor} 3393473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif 3403473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor 3413473f88a7abdf4e585e267288fb77e898c580d2bOwen Taylor#endif /* __XML_IO_H__ */ 342