|  |  |  | Gnome XML Library Reference Manual |  | 
|---|
xmlIO —
int (*xmlInputMatchCallback) (char const *filename); void* (*xmlInputOpenCallback) (char const *filename); int (*xmlInputReadCallback) (void *context, char *buffer, int len); int (*xmlInputCloseCallback) (void *context); int (*xmlOutputMatchCallback) (char const *filename); void* (*xmlOutputOpenCallback) (char const *filename); int (*xmlOutputWriteCallback) (void *context, const char *buffer, int len); int (*xmlOutputCloseCallback) (void *context); struct xmlParserInputBuffer; struct xmlOutputBuffer; void xmlCleanupInputCallbacks (void); void xmlCleanupOutputCallbacks (void); void xmlRegisterDefaultInputCallbacks (void); xmlParserInputBufferPtr xmlAllocParserInputBuffer (xmlCharEncoding enc); xmlParserInputBufferPtr xmlParserInputBufferCreateFilename (const char *URI, xmlCharEncoding enc); xmlParserInputBufferPtr 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); 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); void* xmlIOHTTPOpenW (const char *post_uri, int compression); void xmlRegisterHTTPPostCallbacks (void); xmlParserInputPtr xmlNoNetExternalEntityLoader (const char *URL, const char *ID, xmlParserCtxtPtr ctxt); xmlChar* xmlNormalizeWindowsPath (const xmlChar *path); int xmlCheckFilename (const char *path); int xmlFileMatch (const char *filename); void* xmlFileOpen (const char *filename); int xmlFileRead (void *context, char *buffer, int len); int xmlFileClose (void *context); int xmlIOHTTPMatch (const char *filename); void* xmlIOHTTPOpen (const char *filename); int xmlIOHTTPRead (void *context, char *buffer, int len); int xmlIOHTTPClose (void *context); int xmlIOFTPMatch (const char *filename); void* xmlIOFTPOpen (const char *filename); int xmlIOFTPRead (void *context, char *buffer, int len); int xmlIOFTPClose (void *context);
int (*xmlInputMatchCallback) (char const *filename);
Callback used in the I/O Input API to detect if the current handler can provide input fonctionnalities for this resource.
| filename : | the filename or URI | 
| Returns : | 1 if yes and 0 if another Input module should be used | 
void* (*xmlInputOpenCallback) (char const *filename);
Callback used in the I/O Input API to open the resource
| filename : | the filename or URI | 
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 | 
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 | 
int (*xmlOutputMatchCallback) (char const *filename);
Callback used in the I/O Output API to detect if the current handler can provide output fonctionnalities for this resource.
| filename : | the filename or URI | 
| Returns : | 1 if yes and 0 if another Output module should be used | 
void* (*xmlOutputOpenCallback) (char const *filename);
Callback used in the I/O Output API to open the resource
| filename : | the filename or URI | 
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 | 
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 | 
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 */
};
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 */
};
void xmlCleanupInputCallbacks (void);
clears the entire input callback table. this includes the compiled-in I/O.
void xmlCleanupOutputCallbacks (void);
clears the entire output callback table. this includes the compiled-in I/O callbacks.
void        xmlRegisterDefaultInputCallbacks
                                            (void);Registers the default compiled-in I/O handlers.
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 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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. | 
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. | 
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. | 
void xmlFreeParserInputBuffer (xmlParserInputBufferPtr in);
Free up the memory used by a buffered parser input
| in : | a buffered parser input | 
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. | 
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 | 
void        xmlRegisterDefaultOutputCallbacks
                                            (void);Registers the default compiled-in I/O handlers.
xmlOutputBufferPtr xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder);
Create a buffered parser output
| encoder : | the encoding converter or NULL | 
| Returns : | the new parser output or NULL | 
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 | 
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 | 
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 | 
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 | 
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. | 
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. | 
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. | 
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. | 
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 | 
void*       xmlIOHTTPOpenW                  (const char *post_uri,
                                             int compression);Open a temporary buffer to collect the document for a subsequent HTTP POST request. Non-static as is called from the output buffer creation routine.
| post_uri : | The destination URI for the document | 
| compression : | The compression desired for the document. | 
void xmlRegisterHTTPPostCallbacks (void);
By default, libxml submits HTTP output requests using the "PUT" method. Calling this method changes the HTTP output method to use the "POST" method instead.
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. | 
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 | 
int xmlCheckFilename (const char *path);
function checks to see if path is a valid source (file, socket...) for XML.
if stat is not available on the target machine, 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,
| path : | the path to check | 
| Returns : | 2. otherwise returns 1. | 
int xmlFileMatch (const char *filename);
input from FILE *
| filename : | the URI for matching | 
| Returns : | 1 if matches, 0 otherwise | 
void* xmlFileOpen (const char *filename);
Wrapper around xmlFileOpen_real that try it with an unescaped version of filename, if this fails fallback to filename
| filename : | the URI for matching | 
int         xmlFileRead                     (void *context,
                                             char *buffer,
                                             int len);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 | 
int xmlFileClose (void *context);
Close an I/O channel
| context : | the I/O context | 
| Returns : | 0 or -1 in case of error | 
int xmlIOHTTPMatch (const char *filename);
check if the URI matches an HTTP one
| filename : | the URI for matching | 
| Returns : | 1 if matches, 0 otherwise | 
void* xmlIOHTTPOpen (const char *filename);
open an HTTP I/O channel
| filename : | the URI for matching | 
int         xmlIOHTTPRead                   (void *context,
                                             char *buffer,
                                             int len);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 | 
int xmlIOHTTPClose (void *context);
Close an HTTP I/O channel
| context : | the I/O context | 
| Returns : | 0 | 
int xmlIOFTPMatch (const char *filename);
check if the URI matches an FTP one
| filename : | the URI for matching | 
| Returns : | 1 if matches, 0 otherwise | 
void* xmlIOFTPOpen (const char *filename);
open an FTP I/O channel
| filename : | the URI for matching | 
int         xmlIOFTPRead                    (void *context,
                                             char *buffer,
                                             int len);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 | 
| << nanoftp | catalog >> |