📄 xmlio.h
字号:
/* * xmlIO.h : interface for the I/O interfaces used by the parser * * See Copyright for the status of this software. * * daniel@veillard.com * * 15 Nov 2000 ht - modified for VMS */#ifndef __XML_IO_H__#define __XML_IO_H__#include <stdio.h>#if defined(WIN32) && defined(_MSC_VER)#include <libxml/xmlwin32version.h>#else#include <libxml/xmlversion.h>#endif#include <libxml/tree.h>#include <libxml/parser.h>#include <libxml/encoding.h>#ifdef __cplusplusextern "C" {#endif/* * Those are the functions and datatypes for the parser input * I/O structures. *//** * xmlInputMatchCallback: * @filename: the filename or URI * * Callback used in the I/O Input API to detect if the current handler * can provide input fonctionnalities for this resource. * * Returns 1 if yes and 0 if another Input module should be used */typedef int (*xmlInputMatchCallback) (char const *filename);/** * xmlInputOpenCallback: * @filename: the filename or URI * * Callback used in the I/O Input API to open the resource * * Returns an Input context or NULL in case or error */typedef void * (*xmlInputOpenCallback) (char const *filename);/** * xmlInputReadCallback: * @context: an Input context * @buffer: the buffer to store data read * @len: the length of the buffer in bytes * * Callback used in the I/O Input API to read the resource * * Returns the number of bytes read or -1 in case of error */typedef int (*xmlInputReadCallback) (void * context, char * buffer, int len);/** * xmlInputCloseCallback: * @context: an Input context * * Callback used in the I/O Input API to close the resource * * Returns 0 or -1 in case of error */typedef int (*xmlInputCloseCallback) (void * context);struct _xmlParserInputBuffer { void* context; xmlInputReadCallback readcallback; xmlInputCloseCallback closecallback; xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */ xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 */ xmlBufferPtr raw; /* if encoder != NULL buffer for raw input */};/* * Those are the functions and datatypes for the library output * I/O structures. *//** * xmlOutputMatchCallback: * @filename: the filename or URI * * Callback used in the I/O Output API to detect if the current handler * can provide output fonctionnalities for this resource. * * Returns 1 if yes and 0 if another Output module should be used */typedef int (*xmlOutputMatchCallback) (char const *filename);/** * xmlOutputOpenCallback: * @filename: the filename or URI * * Callback used in the I/O Output API to open the resource * * Returns an Output context or NULL in case or error */typedef void * (*xmlOutputOpenCallback) (char const *filename);/** * xmlOutputWriteCallback: * @context: an Output context * @buffer: the buffer of data to write * @len: the length of the buffer in bytes * * Callback used in the I/O Output API to write to the resource * * Returns the number of bytes written or -1 in case of error */typedef int (*xmlOutputWriteCallback) (void * context, const char * buffer, int len);/** * xmlOutputCloseCallback: * @context: an Output context * * Callback used in the I/O Output API to close the resource * * Returns 0 or -1 in case of error */typedef int (*xmlOutputCloseCallback) (void * context);struct _xmlOutputBuffer { void* context; xmlOutputWriteCallback writecallback; xmlOutputCloseCallback closecallback; xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */ xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 or ISOLatin */ xmlBufferPtr conv; /* if encoder != NULL buffer for output */ int written; /* total number of byte written */};/* * Interfaces for input */void xmlCleanupInputCallbacks (void);void xmlCleanupOutputCallbacks (void);void xmlRegisterDefaultInputCallbacks (void);xmlParserInputBufferPtr xmlAllocParserInputBuffer (xmlCharEncoding enc);#ifdef VMSxmlParserInputBufferPtr xmlParserInputBufferCreateFname (const char *URI, xmlCharEncoding enc);#define xmlParserInputBufferCreateFilename xmlParserInputBufferCreateFname#elsexmlParserInputBufferPtr xmlParserInputBufferCreateFilename (const char *URI, xmlCharEncoding enc);#endifxmlParserInputBufferPtr xmlParserInputBufferCreateFile (FILE *file, xmlCharEncoding enc);xmlParserInputBufferPtr xmlParserInputBufferCreateFd (int fd, xmlCharEncoding enc);xmlParserInputBufferPtr xmlParserInputBufferCreateMem (const char *mem, int size, xmlCharEncoding enc);xmlParserInputBufferPtr xmlParserInputBufferCreateIO (xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, xmlCharEncoding enc);int xmlParserInputBufferRead (xmlParserInputBufferPtr in, int len);int xmlParserInputBufferGrow (xmlParserInputBufferPtr in, int len);int xmlParserInputBufferPush (xmlParserInputBufferPtr in, int len, const char *buf);void xmlFreeParserInputBuffer (xmlParserInputBufferPtr in);char * xmlParserGetDirectory (const char *filename);int xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc, xmlInputOpenCallback openFunc, xmlInputReadCallback readFunc, xmlInputCloseCallback closeFunc);/* * Interfaces for output */void xmlRegisterDefaultOutputCallbacks(void);xmlOutputBufferPtr xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder);xmlOutputBufferPtr xmlOutputBufferCreateFilename (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression);xmlOutputBufferPtr xmlOutputBufferCreateFile (FILE *file, xmlCharEncodingHandlerPtr encoder);xmlOutputBufferPtr xmlOutputBufferCreateFd (int fd, xmlCharEncodingHandlerPtr encoder);xmlOutputBufferPtr xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite, xmlOutputCloseCallback ioclose, void *ioctx, xmlCharEncodingHandlerPtr encoder);int xmlOutputBufferWrite (xmlOutputBufferPtr out, int len, const char *buf);int xmlOutputBufferWriteString (xmlOutputBufferPtr out, const char *str);int xmlOutputBufferFlush (xmlOutputBufferPtr out);int xmlOutputBufferClose (xmlOutputBufferPtr out);int xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc, xmlOutputOpenCallback openFunc, xmlOutputWriteCallback writeFunc, xmlOutputCloseCallback closeFunc);/* This function only exists if HTTP support built into the library */#ifdef LIBXML_HTTP_ENABLEDvoid * xmlIOHTTPOpenW (const char * post_uri, int compression );void xmlRegisterHTTPPostCallbacks (void );#endif/* * A predefined entity loader disabling network accesses */xmlParserInputPtr xmlNoNetExternalEntityLoader(const char *URL, const char *ID, xmlParserCtxtPtr ctxt);#ifdef __cplusplus}#endif#endif /* __XML_IO_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -