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

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

Description

Details









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

enc:the charset encoding if known
Returns:the new parser input or NULL


xmlCheckHTTPInput ()

xmlParserInputPtr	xmlCheckHTTPInput	(xmlParserCtxtPtr ctxt, 
xmlParserInputPtr ret)

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.







xmlFreeParserInputBuffer ()

void	xmlFreeParserInputBuffer	(xmlParserInputBufferPtr in)

Free up the memory used by a buffered parser input

in:a buffered parser input










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)

This function is obsolete. Please see xmlURIFromPath in uri.c for a better solution.

path:the input file path
Returns:a canonicalized version of the 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 -1 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

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.


xmlParserInputBufferCreateFd ()

xmlParserInputBufferPtr	xmlParserInputBufferCreateFd	(int fd, 
xmlCharEncoding enc)

Create a buffered parser input for the progressive parsing for the input from a file descriptor

fd:a file descriptor number
enc:the charset encoding if known
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

file:a FILE*
enc:the charset encoding if known
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 If filename is "-' then we use stdin as the input. 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

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

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

xmlParserInputBufferCreateMem ()

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

Create a buffered parser input for the progressive parsing for the input from a memory area.

mem:the memory input
size:the length of the memory block
enc:the charset encoding if known
Returns:the new parser input or NULL

xmlParserInputBufferCreateStatic ()

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

Create a buffered parser input for the progressive parsing for the input from an immutable memory area. This will not copy the memory area to the buffer, but the memory is expected to be available until the end of the parsing, this is useful for example when using mmap'ed file.

mem:the memory input
size:the length of the memory block
enc:the charset encoding if known
Returns:the new parser input or NULL

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.





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