## xmlIO

xmlIO - interface for the I/O interfaces used by the parser

interface for the I/O interfaces used by the parser

Author(s): Daniel Veillard

## Synopsis

    xmlOutputBufferPtr	xmlAllocOutputBuffer	(xmlCharEncodingHandlerPtr encoder);
    xmlParserInputBufferPtr	xmlAllocParserInputBuffer	(xmlCharEncoding enc);
    int	xmlCheckFilename		(const char * path);
    xmlParserInputPtr	xmlCheckHTTPInput	(xmlParserCtxtPtr ctxt,
    						 xmlParserInputPtr ret);
    void	xmlCleanupInputCallbacks	(void);
    void	xmlCleanupOutputCallbacks	(void);
    int	xmlFileClose			(void * context);
    int	xmlFileMatch			(const char * filename);
    void *	xmlFileOpen			(const char * filename);
    int	xmlFileRead			(void * context,
    					 char * buffer,
    					 int len);
    void	xmlFreeParserInputBuffer	(xmlParserInputBufferPtr in);
    int	xmlIOFTPClose			(void * context);
    int	xmlIOFTPMatch			(const char * filename);
    void *	xmlIOFTPOpen			(const char * filename);
    int	xmlIOFTPRead			(void * context,
    					 char * buffer,
    					 int len);
    int	xmlIOHTTPClose			(void * context);
    int	xmlIOHTTPMatch			(const char * filename);
    void *	xmlIOHTTPOpen			(const char * filename);
    void *	xmlIOHTTPOpenW			(const char * post_uri,
    					 int compression);
    int	xmlIOHTTPRead			(void * context,
    					 char * buffer,
    					 int len);
    typedef int xmlInputCloseCallback		(void * context);
    typedef int xmlInputMatchCallback		(char const * filename);
    typedef void * xmlInputOpenCallback		(char const * filename);
    typedef int xmlInputReadCallback		(void * context,
    					 char * buffer,
    					 int len);
    xmlParserInputPtr	xmlNoNetExternalEntityLoader	(const char * URL,
    							 const char * ID,
    							 xmlParserCtxtPtr ctxt);
    xmlChar *	xmlNormalizeWindowsPath	(const xmlChar * path);
    int	xmlOutputBufferClose		(xmlOutputBufferPtr out);
    xmlOutputBufferPtr	xmlOutputBufferCreateBuffer	(xmlBufferPtr buffer,
    							 xmlCharEncodingHandlerPtr encoder);
    xmlOutputBufferPtr	xmlOutputBufferCreateFd	(int fd,
    						 xmlCharEncodingHandlerPtr encoder);
    xmlOutputBufferPtr	xmlOutputBufferCreateFile	(FILE * file,
    							 xmlCharEncodingHandlerPtr encoder);
    xmlOutputBufferPtr	xmlOutputBufferCreateFilename	(const char * URI,
    							 xmlCharEncodingHandlerPtr encoder,
    							 int compression);
    xmlOutputBufferCreateFilenameFunc	xmlOutputBufferCreateFilenameDefault	(xmlOutputBufferCreateFilenameFunc func);
    typedef xmlOutputBufferPtr xmlOutputBufferCreateFilenameFunc	(const char * URI,
    							 xmlCharEncodingHandlerPtr encoder,
    							 int compression);
    xmlOutputBufferPtr	xmlOutputBufferCreateIO	(xmlOutputWriteCallback iowrite,
    						 xmlOutputCloseCallback ioclose,
    						 void * ioctx,
    						 xmlCharEncodingHandlerPtr encoder);
    int	xmlOutputBufferFlush		(xmlOutputBufferPtr out);
    const xmlChar *	xmlOutputBufferGetContent	(xmlOutputBufferPtr out);
    size_t	xmlOutputBufferGetSize		(xmlOutputBufferPtr out);
    int	xmlOutputBufferWrite		(xmlOutputBufferPtr out,
    					 int len,
    					 const char * buf);
    int	xmlOutputBufferWriteEscape	(xmlOutputBufferPtr out,
    					 const xmlChar * str,
    					 xmlCharEncodingOutputFunc escaping);
    int	xmlOutputBufferWriteString	(xmlOutputBufferPtr out,
    					 const char * str);
    typedef int xmlOutputCloseCallback		(void * context);
    typedef int xmlOutputMatchCallback		(char const * filename);
    typedef void * xmlOutputOpenCallback		(char const * filename);
    typedef int xmlOutputWriteCallback		(void * context,
    					 const char * buffer,
    					 int len);
    char *	xmlParserGetDirectory		(const char * filename);
    xmlParserInputBufferPtr	xmlParserInputBufferCreateFd	(int fd,
    							 xmlCharEncoding enc);
    xmlParserInputBufferPtr	xmlParserInputBufferCreateFile	(FILE * file,
    							 xmlCharEncoding enc);
    xmlParserInputBufferPtr	xmlParserInputBufferCreateFilename	(const char * URI,
    							 xmlCharEncoding enc);
    xmlParserInputBufferCreateFilenameFunc	xmlParserInputBufferCreateFilenameDefault	(xmlParserInputBufferCreateFilenameFunc func);
    typedef xmlParserInputBufferPtr xmlParserInputBufferCreateFilenameFunc	(const char * URI,
    							 xmlCharEncoding enc);
    xmlParserInputBufferPtr	xmlParserInputBufferCreateIO	(xmlInputReadCallback ioread,
    							 xmlInputCloseCallback ioclose,
    							 void * ioctx,
    							 xmlCharEncoding enc);
    xmlParserInputBufferPtr	xmlParserInputBufferCreateMem	(const char * mem,
    							 int size,
    							 xmlCharEncoding enc);
    xmlParserInputBufferPtr	xmlParserInputBufferCreateStatic	(const char * mem,
    							 int size,
    							 xmlCharEncoding enc);
    int	xmlParserInputBufferGrow	(xmlParserInputBufferPtr in,
    					 int len);
    int	xmlParserInputBufferPush	(xmlParserInputBufferPtr in,
    					 int len,
    					 const char * buf);
    int	xmlParserInputBufferRead	(xmlParserInputBufferPtr in,
    					 int len);
    int	xmlPopInputCallbacks		(void);
    int	xmlPopOutputCallbacks		(void);
    void	xmlRegisterDefaultInputCallbacks	(void);
    void	xmlRegisterDefaultOutputCallbacks	(void);
    void	xmlRegisterHTTPPostCallbacks	(void);
    int	xmlRegisterInputCallbacks	(xmlInputMatchCallback matchFunc,
    					 xmlInputOpenCallback openFunc,
    					 xmlInputReadCallback readFunc,
    					 xmlInputCloseCallback closeFunc);
    int	xmlRegisterOutputCallbacks	(xmlOutputMatchCallback matchFunc,
    					 xmlOutputOpenCallback openFunc,
    					 xmlOutputWriteCallback writeFunc,
    					 xmlOutputCloseCallback closeFunc);
    xmlOutputBufferCreateFilenameFunc	xmlThrDefOutputBufferCreateFilenameDefault	(xmlOutputBufferCreateFilenameFunc func);
    xmlParserInputBufferCreateFilenameFunc	xmlThrDefParserInputBufferCreateFilenameDefault	(xmlParserInputBufferCreateFilenameFunc func);

## Description

## Details

### Function type xmlInputCloseCallback

    int	xmlInputCloseCallback		(void * context)

Callback used in the I/O Input API to close the resource

`context`: | an Input context
`Returns`: | 0 or -1 in case of error

### Function type xmlInputMatchCallback

    int	xmlInputMatchCallback		(char const * filename)

Callback used in the I/O Input API to detect if the current handler can provide input functionality for this resource.

`filename`: | the filename or URI
`Returns`: | 1 if yes and 0 if another Input module should be used

### Function type xmlInputOpenCallback

    void *	xmlInputOpenCallback		(char const * filename)

Callback used in the I/O Input API to open the resource

`filename`: | the filename or URI
`Returns`: | an Input context or NULL in case or error

### Function type xmlInputReadCallback

    int	xmlInputReadCallback		(void * context,
    					 char * buffer,
    					 int len)

Callback used in the I/O Input API to read the resource

`context`: | an Input context
`buffer`: | the buffer to store data read
`len`: | the length of the buffer in bytes
`Returns`: | the number of bytes read or -1 in case of error

### Function type xmlOutputBufferCreateFilenameFunc

    xmlOutputBufferPtr	xmlOutputBufferCreateFilenameFunc	(const char * URI,
    							 xmlCharEncodingHandlerPtr encoder,
    							 int compression)

Signature for the function doing the lookup for a suitable output method corresponding to an URI.

`URI`: | the URI to write to
`encoder`: |
`compression`: |
`Returns`: | the new xmlOutputBufferPtr in case of success or NULL if no method was found.

### Function type xmlOutputCloseCallback

    int	xmlOutputCloseCallback		(void * context)

Callback used in the I/O Output API to close the resource

`context`: | an Output context
`Returns`: | 0 or -1 in case of error

### Function type xmlOutputMatchCallback

    int	xmlOutputMatchCallback		(char const * filename)

Callback used in the I/O Output API to detect if the current handler can provide output functionality for this resource.

`filename`: | the filename or URI
`Returns`: | 1 if yes and 0 if another Output module should be used

### Function type xmlOutputOpenCallback

    void *	xmlOutputOpenCallback		(char const * filename)

Callback used in the I/O Output API to open the resource

`filename`: | the filename or URI
`Returns`: | an Output context or NULL in case or error

### Function type xmlOutputWriteCallback

    int	xmlOutputWriteCallback		(void * context,
    					 const char * buffer,
    					 int len)

Callback used in the I/O Output API to write to the resource

`context`: | an Output context
`buffer`: | the buffer of data to write
`len`: | the length of the buffer in bytes
`Returns`: | the number of bytes written or -1 in case of error

### Function type xmlParserInputBufferCreateFilenameFunc

    xmlParserInputBufferPtr	xmlParserInputBufferCreateFilenameFunc	(const char * URI,
    							 xmlCharEncoding enc)

Signature for the function doing the lookup for a suitable input method corresponding to an URI.

`URI`: | the URI to read from
`enc`: | the requested source encoding
`Returns`: | the new xmlParserInputBufferPtr in case of success or NULL if no method was found.

### xmlAllocOutputBuffer ()

    xmlOutputBufferPtr	xmlAllocOutputBuffer	(xmlCharEncodingHandlerPtr encoder)

Create a buffered parser output

`encoder`: | the encoding converter or NULL
`Returns`: | the new parser output or NULL

### xmlAllocParserInputBuffer ()

    xmlParserInputBufferPtr	xmlAllocParserInputBuffer	(xmlCharEncoding enc)

Create a buffered parser input for progressive parsing. The encoding argument is deprecated and should be set to XML_CHAR_ENCODING_NONE. The encoding can be changed with xmlSwitchEncoding or xmlSwitchEncodingName later on.

`enc`: | the charset encoding if known (deprecated)
`Returns`: | the new parser input or NULL

### xmlCheckFilename ()

    int	xmlCheckFilename		(const char * path)

DEPRECATED: Internal function, don't use. if stat is not available on the target machine,

`path`: | the path to check
`Returns`: | 1. if stat fails, returns 0 (if calling stat on the filename fails, it can't be right). if stat succeeds and the file is a directory, returns 2. otherwise returns 1.

### xmlCheckHTTPInput ()

    xmlParserInputPtr	xmlCheckHTTPInput	(xmlParserCtxtPtr ctxt,
    						 xmlParserInputPtr ret)

DEPRECATED: Internal function, don't use. Check an input in case it was created from an HTTP stream, in that case it will handle encoding and update of the base URL in case of redirection. It also checks for HTTP errors in which case the input is cleanly freed up and an appropriate error is raised in context

`ctxt`: | an XML parser context
`ret`: | an XML parser input
`Returns`: | the input or NULL in case of HTTP error.

### xmlCleanupInputCallbacks ()

    void	xmlCleanupInputCallbacks	(void)

clears the entire input callback table. this includes the compiled-in I/O.

### xmlCleanupOutputCallbacks ()

    void	xmlCleanupOutputCallbacks	(void)

clears the entire output callback table. this includes the compiled-in I/O callbacks.

### xmlFileClose ()

    int	xmlFileClose			(void * context)

DEPRECATED: Internal function, don't use.

`context`: | the I/O context
`Returns`: | 0 or -1 an error code case of error

### xmlFileMatch ()

    int	xmlFileMatch			(const char * filename)

DEPRECATED: Internal function, don't use.

`filename`: | the URI for matching
`Returns`: | 1 if matches, 0 otherwise

### xmlFileOpen ()

    void *	xmlFileOpen			(const char * filename)

DEPRECATED: Internal function, don't use.

`filename`: | the URI for matching
`Returns`: | an IO context or NULL in case or failure

### xmlFileRead ()

    int	xmlFileRead			(void * context,
    					 char * buffer,
    					 int len)

DEPRECATED: Internal function, don't use.

`context`: | the I/O context
`buffer`: | where to drop data
`len`: | number of bytes to write
`Returns`: | the number of bytes read or < 0 in case of failure

### xmlFreeParserInputBuffer ()

    void	xmlFreeParserInputBuffer	(xmlParserInputBufferPtr in)

Free up the memory used by a buffered parser input

`in`: | a buffered parser input

### xmlIOFTPClose ()

    int	xmlIOFTPClose			(void * context)

DEPRECATED: Internal function, don't use. Close an FTP I/O channel

`context`: | the I/O context
`Returns`: | 0

### xmlIOFTPMatch ()

    int	xmlIOFTPMatch			(const char * filename)

DEPRECATED: Internal function, don't use. check if the URI matches an FTP one

`filename`: | the URI for matching
`Returns`: | 1 if matches, 0 otherwise

### xmlIOFTPOpen ()

    void *	xmlIOFTPOpen			(const char * filename)

DEPRECATED: Internal function, don't use. open an FTP I/O channel

`filename`: | the URI for matching
`Returns`: | an I/O context or NULL in case of error

### xmlIOFTPRead ()

    int	xmlIOFTPRead			(void * context,
    					 char * buffer,
    					 int len)

DEPRECATED: Internal function, don't use. Read @len bytes to @buffer from the I/O channel.

`context`: | the I/O context
`buffer`: | where to drop data
`len`: | number of bytes to write
`Returns`: | the number of bytes written

### xmlIOHTTPClose ()

    int	xmlIOHTTPClose			(void * context)

DEPRECATED: Internal function, don't use. Close an HTTP I/O channel

`context`: | the I/O context
`Returns`: | 0

### xmlIOHTTPMatch ()

    int	xmlIOHTTPMatch			(const char * filename)

DEPRECATED: Internal function, don't use. check if the URI matches an HTTP one

`filename`: | the URI for matching
`Returns`: | 1 if matches, 0 otherwise

### xmlIOHTTPOpen ()

    void *	xmlIOHTTPOpen			(const char * filename)

DEPRECATED: Internal function, don't use. open an HTTP I/O channel

`filename`: | the URI for matching
`Returns`: | an I/O context or NULL in case of error

### xmlIOHTTPOpenW ()

    void *	xmlIOHTTPOpenW			(const char * post_uri,
    					 int compression)

DEPRECATED: Support for HTTP POST has been removed.

`post_uri`: | The destination URI for the document
`compression`: | The compression desired for the document.
`Returns`: | NULL.

### xmlIOHTTPRead ()

    int	xmlIOHTTPRead			(void * context,
    					 char * buffer,
    					 int len)

DEPRECATED: Internal function, don't use. Read @len bytes to @buffer from the I/O channel.

`context`: | the I/O context
`buffer`: | where to drop data
`len`: | number of bytes to write
`Returns`: | the number of bytes written

### xmlNoNetExternalEntityLoader ()

    xmlParserInputPtr	xmlNoNetExternalEntityLoader	(const char * URL,
    							 const char * ID,
    							 xmlParserCtxtPtr ctxt)

A specific entity loader disabling network accesses, though still allowing local catalog accesses for resolution.

`URL`: | the URL for the entity to load
`ID`: | the System ID for the entity to load
`ctxt`: | the context in which the entity is called or NULL
`Returns`: | a new allocated xmlParserInputPtr, or NULL.

### xmlNormalizeWindowsPath ()

    xmlChar *	xmlNormalizeWindowsPath	(const xmlChar * path)

DEPRECATED: This never really worked.

`path`: | the input file path
`Returns`: | a copy of path.

### xmlOutputBufferClose ()

    int	xmlOutputBufferClose		(xmlOutputBufferPtr out)

flushes and close the output I/O channel and free up all the associated resources

`out`: | a buffered output
`Returns`: | the number of byte written or a negative xmlParserErrors code in case of error.

### xmlOutputBufferCreateBuffer ()

    xmlOutputBufferPtr	xmlOutputBufferCreateBuffer	(xmlBufferPtr buffer,
    							 xmlCharEncodingHandlerPtr encoder)

Create a buffered output for the progressive saving to a xmlBuffer

`buffer`: | a xmlBufferPtr
`encoder`: | the encoding converter or NULL
`Returns`: | the new parser output or NULL

### xmlOutputBufferCreateFd ()

    xmlOutputBufferPtr	xmlOutputBufferCreateFd	(int fd,
    						 xmlCharEncodingHandlerPtr encoder)

Create a buffered output for the progressive saving to a file descriptor

`fd`: | a file descriptor number
`encoder`: | the encoding converter or NULL
`Returns`: | the new parser output or NULL

### xmlOutputBufferCreateFile ()

    xmlOutputBufferPtr	xmlOutputBufferCreateFile	(FILE * file,
    							 xmlCharEncodingHandlerPtr encoder)

Create a buffered output for the progressive saving to a FILE * buffered C I/O

`file`: | a FILE*
`encoder`: | the encoding converter or NULL
`Returns`: | the new parser output or NULL

### xmlOutputBufferCreateFilename ()

    xmlOutputBufferPtr	xmlOutputBufferCreateFilename	(const char * URI,
    							 xmlCharEncodingHandlerPtr encoder,
    							 int compression)

Create a buffered output for the progressive saving of a file If filename is "-' then we use stdout as the output. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. TODO: currently if compression is set, the library only support writing to a local file.

`URI`: | a C string containing the URI or filename
`encoder`: | the encoding converter or NULL
`compression`: | the compression ration (0 none, 9 max).
`Returns`: | the new output or NULL

### xmlOutputBufferCreateFilenameDefault ()

    xmlOutputBufferCreateFilenameFunc	xmlOutputBufferCreateFilenameDefault	(xmlOutputBufferCreateFilenameFunc func)

Registers a callback for URI output file handling

`func`: | function pointer to the new OutputBufferCreateFilenameFunc
`Returns`: | the old value of the registration function

### xmlOutputBufferCreateIO ()

    xmlOutputBufferPtr	xmlOutputBufferCreateIO	(xmlOutputWriteCallback iowrite,
    						 xmlOutputCloseCallback ioclose,
    						 void * ioctx,
    						 xmlCharEncodingHandlerPtr encoder)

Create a buffered output for the progressive saving to an I/O handler

`iowrite`: | an I/O write function
`ioclose`: | an I/O close function
`ioctx`: | an I/O handler
`encoder`: | the charset encoding if known
`Returns`: | the new parser output or NULL

### xmlOutputBufferFlush ()

    int	xmlOutputBufferFlush		(xmlOutputBufferPtr out)

flushes the output I/O channel

`out`: | a buffered output
`Returns`: | the number of byte written or -1 in case of error.

### xmlOutputBufferGetContent ()

    const xmlChar *	xmlOutputBufferGetContent	(xmlOutputBufferPtr out)

Gives a pointer to the data currently held in the output buffer

`out`: | an xmlOutputBufferPtr
`Returns`: | a pointer to the data or NULL in case of error

### xmlOutputBufferGetSize ()

    size_t	xmlOutputBufferGetSize		(xmlOutputBufferPtr out)

Gives the length of the data currently held in the output buffer

`out`: | an xmlOutputBufferPtr
`Returns`: | 0 in case or error or no data is held, the size otherwise

### xmlOutputBufferWrite ()

    int	xmlOutputBufferWrite		(xmlOutputBufferPtr out,
    					 int len,
    					 const char * buf)

Write the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.

`out`: | a buffered parser output
`len`: | the size in bytes of the array.
`buf`: | an char array
`Returns`: | the number of chars immediately written, or -1 in case of error.

### xmlOutputBufferWriteEscape ()

    int	xmlOutputBufferWriteEscape	(xmlOutputBufferPtr out,
    					 const xmlChar * str,
    					 xmlCharEncodingOutputFunc escaping)

Write the content of the string in the output I/O buffer This routine escapes the characters and then handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.

`out`: | a buffered parser output
`str`: | a zero terminated UTF-8 string
`escaping`: | an optional escaping function (or NULL)
`Returns`: | the number of chars immediately written, or -1 in case of error.

### xmlOutputBufferWriteString ()

    int	xmlOutputBufferWriteString	(xmlOutputBufferPtr out,
    					 const char * str)

Write the content of the string in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.

`out`: | a buffered parser output
`str`: | a zero terminated C string
`Returns`: | the number of chars immediately written, or -1 in case of error.

### xmlParserGetDirectory ()

    char *	xmlParserGetDirectory		(const char * filename)

lookup the directory for that file

`filename`: | the path to a file
`Returns`: | a new allocated string containing the directory, or NULL.

### xmlParserInputBufferCreateFd ()

    xmlParserInputBufferPtr	xmlParserInputBufferCreateFd	(int fd,
    							 xmlCharEncoding enc)

Create a buffered parser input for the progressive parsing for the input from a file descriptor The encoding argument is deprecated and should be set to XML_CHAR_ENCODING_NONE. The encoding can be changed with xmlSwitchEncoding or xmlSwitchEncodingName later on.

`fd`: | a file descriptor number
`enc`: | the charset encoding if known (deprecated)
`Returns`: | the new parser input or NULL

### xmlParserInputBufferCreateFile ()

    xmlParserInputBufferPtr	xmlParserInputBufferCreateFile	(FILE * file,
    							 xmlCharEncoding enc)

Create a buffered parser input for the progressive parsing of a FILE * buffered C I/O The encoding argument is deprecated and should be set to XML_CHAR_ENCODING_NONE. The encoding can be changed with xmlSwitchEncoding or xmlSwitchEncodingName later on.

`file`: | a FILE*
`enc`: | the charset encoding if known (deprecated)
`Returns`: | the new parser input or NULL

### xmlParserInputBufferCreateFilename ()

    xmlParserInputBufferPtr	xmlParserInputBufferCreateFilename	(const char * URI,
    							 xmlCharEncoding enc)

Create a buffered parser input for the progressive parsing of a file Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. Do an encoding check if enc == XML_CHAR_ENCODING_NONE

`URI`: | a C string containing the URI or filename
`enc`: | the charset encoding if known
`Returns`: | the new parser input or NULL

### xmlParserInputBufferCreateFilenameDefault ()

    xmlParserInputBufferCreateFilenameFunc	xmlParserInputBufferCreateFilenameDefault	(xmlParserInputBufferCreateFilenameFunc func)

Registers a callback for URI input file handling

`func`: | function pointer to the new ParserInputBufferCreateFilenameFunc
`Returns`: | the old value of the registration function

### xmlParserInputBufferCreateIO ()

    xmlParserInputBufferPtr	xmlParserInputBufferCreateIO	(xmlInputReadCallback ioread,
    							 xmlInputCloseCallback ioclose,
    							 void * ioctx,
    							 xmlCharEncoding enc)

Create a buffered parser input for the progressive parsing for the input from an I/O handler The encoding argument is deprecated and should be set to XML_CHAR_ENCODING_NONE. The encoding can be changed with xmlSwitchEncoding or xmlSwitchEncodingName later on.

`ioread`: | an I/O read function
`ioclose`: | an I/O close function
`ioctx`: | an I/O handler
`enc`: | the charset encoding if known (deprecated)
`Returns`: | the new parser input or NULL

### xmlParserInputBufferCreateMem ()

    xmlParserInputBufferPtr	xmlParserInputBufferCreateMem	(const char * mem,
    							 int size,
    							 xmlCharEncoding enc)

Create a parser input buffer for parsing from a memory area. This function makes a copy of the whole input buffer. If you are sure that the contents of the buffer will remain valid until the document was parsed, you can avoid the copy by using xmlParserInputBufferCreateStatic. The encoding argument is deprecated and should be set to XML_CHAR_ENCODING_NONE. The encoding can be changed with xmlSwitchEncoding or xmlSwitchEncodingName later on.

`mem`: | the memory input
`size`: | the length of the memory block
`enc`: | the charset encoding if known (deprecated)
`Returns`: | the new parser input or NULL in case of error.

### xmlParserInputBufferCreateStatic ()

    xmlParserInputBufferPtr	xmlParserInputBufferCreateStatic	(const char * mem,
    							 int size,
    							 xmlCharEncoding enc)

Create a parser input buffer for parsing from a memory area. This functions assumes that the contents of the input buffer remain valid until the document was parsed. Use xmlParserInputBufferCreateMem otherwise. The encoding argument is deprecated and should be set to XML_CHAR_ENCODING_NONE. The encoding can be changed with xmlSwitchEncoding or xmlSwitchEncodingName later on.

`mem`: | the memory input
`size`: | the length of the memory block
`enc`: | the charset encoding if known
`Returns`: | the new parser input or NULL in case of error.

### xmlParserInputBufferGrow ()

    int	xmlParserInputBufferGrow	(xmlParserInputBufferPtr in,
    					 int len)

Grow up the content of the input buffer, the old data are preserved This routine handle the I18N transcoding to internal UTF-8 This routine is used when operating the parser in normal (pull) mode TODO: one should be able to remove one extra copy by copying directly onto in->buffer or in->raw

`in`: | a buffered parser input
`len`: | indicative value of the amount of chars to read
`Returns`: | the number of chars read and stored in the buffer, or -1 in case of error.

### xmlParserInputBufferPush ()

    int	xmlParserInputBufferPush	(xmlParserInputBufferPtr in,
    					 int len,
    					 const char * buf)

Push the content of the arry in the input buffer This routine handle the I18N transcoding to internal UTF-8 This is used when operating the parser in progressive (push) mode.

`in`: | a buffered parser input
`len`: | the size in bytes of the array.
`buf`: | an char array
`Returns`: | the number of chars read and stored in the buffer, or -1 in case of error.

### xmlParserInputBufferRead ()

    int	xmlParserInputBufferRead	(xmlParserInputBufferPtr in,
    					 int len)

Refresh the content of the input buffer, the old data are considered consumed This routine handle the I18N transcoding to internal UTF-8

`in`: | a buffered parser input
`len`: | indicative value of the amount of chars to read
`Returns`: | the number of chars read and stored in the buffer, or -1 in case of error.

### xmlPopInputCallbacks ()

    int	xmlPopInputCallbacks		(void)

Clear the top input callback from the input stack. this includes the compiled-in I/O.

`Returns`: | the number of input callback registered or -1 in case of error.

### xmlPopOutputCallbacks ()

    int	xmlPopOutputCallbacks		(void)

Remove the top output callbacks from the output stack. This includes the compiled-in I/O.

`Returns`: | the number of output callback registered or -1 in case of error.

### xmlRegisterDefaultInputCallbacks ()

    void	xmlRegisterDefaultInputCallbacks	(void)

Registers the default compiled-in I/O handlers.

### xmlRegisterDefaultOutputCallbacks ()

    void	xmlRegisterDefaultOutputCallbacks	(void)

Registers the default compiled-in I/O handlers.

### xmlRegisterHTTPPostCallbacks ()

    void	xmlRegisterHTTPPostCallbacks	(void)

DEPRECATED: Support for HTTP POST has been removed.

### xmlRegisterInputCallbacks ()

    int	xmlRegisterInputCallbacks	(xmlInputMatchCallback matchFunc,
    					 xmlInputOpenCallback openFunc,
    					 xmlInputReadCallback readFunc,
    					 xmlInputCloseCallback closeFunc)

Register a new set of I/O callback for handling parser input.

`matchFunc`: | the xmlInputMatchCallback
`openFunc`: | the xmlInputOpenCallback
`readFunc`: | the xmlInputReadCallback
`closeFunc`: | the xmlInputCloseCallback
`Returns`: | the registered handler number or -1 in case of error

### xmlRegisterOutputCallbacks ()

    int	xmlRegisterOutputCallbacks	(xmlOutputMatchCallback matchFunc,
    					 xmlOutputOpenCallback openFunc,
    					 xmlOutputWriteCallback writeFunc,
    					 xmlOutputCloseCallback closeFunc)

Register a new set of I/O callback for handling output.

`matchFunc`: | the xmlOutputMatchCallback
`openFunc`: | the xmlOutputOpenCallback
`writeFunc`: | the xmlOutputWriteCallback
`closeFunc`: | the xmlOutputCloseCallback
`Returns`: | the registered handler number or -1 in case of error

### xmlThrDefOutputBufferCreateFilenameDefault ()

    xmlOutputBufferCreateFilenameFunc	xmlThrDefOutputBufferCreateFilenameDefault	(xmlOutputBufferCreateFilenameFunc func)

`func`: |
`Returns`: |

### xmlThrDefParserInputBufferCreateFilenameDefault ()

    xmlParserInputBufferCreateFilenameFunc	xmlThrDefParserInputBufferCreateFilenameDefault	(xmlParserInputBufferCreateFilenameFunc func)

`func`: |
`Returns`: |