pleyo.com

/src/trunk2/BAL/Implementations/XML/LIBXML/BCXML.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2007 Pleyo.  All rights reserved.
00003  *
00004  * Redistribution and use in source and binary forms, with or without
00005  * modification, are permitted provided that the following conditions
00006  * are met:
00007  *
00008  * 1.  Redistributions of source code must retain the above copyright
00009  *     notice, this list of conditions and the following disclaimer.
00010  * 2.  Redistributions in binary form must reproduce the above copyright
00011  *     notice, this list of conditions and the following disclaimer in the
00012  *     documentation and/or other materials provided with the distribution.
00013  * 3.  Neither the name of Pleyo nor the names of
00014  *     its contributors may be used to endorse or promote products derived
00015  *     from this software without specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY PLEYO AND ITS CONTRIBUTORS "AS IS" AND ANY
00018  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00019  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00020  * DISCLAIMED. IN NO EVENT SHALL PLEYO OR ITS CONTRIBUTORS BE LIABLE FOR ANY
00021  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00022  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00023  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00024  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00025  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00026  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027  */
00042 #include "BIXML.h"
00043 #include <libxml/tree.h>
00044 #include <libxml/xmlIO.h>
00045 #include <libxml/encoding.h>
00046 
00047 using namespace BAL;
00048 
00049 namespace BC
00050 {
00055     class BCXML : public BAL::BIXML 
00056     {
00057         public:
00058             BCXML();
00059             ~BCXML();
00060             
00061             void *xmlMalloc( int size );
00062             void xmlFreeDoc( BAL::BTXMLDoc *doc );
00063             BAL::BTXMLDoc *xmlReadMemory(const char * buffer,
00064                                          int size,
00065                                          const char * URL,
00066                                          const char * encoding,
00067                                          int options);
00068             BAL::BTXMLAttr *xmlGetID( BAL::BTXMLDoc *doc, const unsigned char *ID);
00069             void xmlFree(void * mem);
00070             unsigned char *xmlNodeGetBase( BAL::BTXMLDoc *doc, BTXMLNode *cur);
00071             unsigned char *xmlBuildURI( const unsigned char *URI, const unsigned char *base );
00072             int xmlStrEqual( const unsigned char* str1, const unsigned char* str2);
00073             void xmlSetGenericErrorFunc (void * ctx, BTXMLGenericErrorFunc handler);
00074             BTXMLOutputBuffer *xmlAllocOutputBuffer( BTXMLCharEncodingHandler *encoder );
00075             void xmlOutputBufferClose(BTXMLOutputBuffer *outputBuf);
00076             BTXMLHashTable *xmlHashCreate( int size );
00077             unsigned char *xmlStrdup( const unsigned char *buf);
00078             unsigned char *xmlStrndup( const unsigned char *buf, int size );
00079             void xmlInitParser(void);
00080             BTXMLParserCtxt *xmlCreatePushParserCtxt( BTXMLSAXHandler *sax );
00081             int xmlRegisterInputCallbacks (BTXMLInputMatchCallback matchFunc, 
00082                                            BTXMLInputOpenCallback openFunc, 
00083                                            BTXMLInputReadCallback readFunc, 
00084                                            BTXMLInputCloseCallback closeFunc);
00085 
00086             int xmlRegisterOutputCallbacks (BTXMLOutputMatchCallback matchFunc, 
00087                                             BTXMLOutputOpenCallback openFunc, 
00088                                             BTXMLOutputWriteCallback writeFunc, 
00089                                             BTXMLOutputCloseCallback closeFunc);
00090             BTXMLParserCtxt * xmlSwitchEncoding( BTXMLParserCtxt *ctxt, int enc);
00091             BTXMLParserCtxt * xmlParseChunk( BTXMLParserCtxt *ctxt, const char *chunk, int size, int terminate);
00092             BTXMLEntity *xmlGetPredefinedEntity(const unsigned char* name);
00093             BTXMLEntity *xmlGetDocEntity( BTXMLDoc *doc, const unsigned char *name );
00094             void xmlSAX2InternalSubset( void * ctx, const unsigned char * name, const unsigned char * ExternalID, const unsigned char * SystemID);
00095             void xmlFreeParserCtxt( BTXMLParserCtxt *ctxt );
00096             void xmlStopParser( BTXMLParserCtxt *ctxt);
00097             
00098             int xmlParseBalancedChunkMemory( void * user_data, const unsigned char * string );
00099             
00100             void *getXMLGenericErrorContext();
00101             BTXMLSAXHandler *setSaxHandler( BTErrorSAXFunc error, 
00102                                      BTFatalErrorSAXFunc fatalError, 
00103                                      BTCharactersSAXFunc characters,
00104                                      BTProcessingInstructionSAXFunc processingInstruction, 
00105                                      BTCdataBlockSAXFunc cdataBlock, 
00106                                      BTCommentSAXFunc comment, 
00107                                      BTWarningSAXFunc warning,
00108                                      BTStartElementNsSAX2Func startElementNs,
00109                                      BTEndElementNsSAX2Func endElementNs,
00110                                      BTGetEntitySAXFunc getEntity,
00111                                      BTInternalSubsetSAXFunc internalSubset,
00112                                      BTExternalSubsetSAXFunc externalSubset,
00113                                      BTIgnorableWhitespaceSAXFunc ignorableWhitespace );
00114                                      
00115             BTXMLGenericErrorFunc getXMLGenericError();
00116             
00117             BTXMLDoc *convertDoc( xmlDoc *doc );
00118             BTXMLNode *convertNode( xmlNode *node );
00119             BTXMLNs *convertNS( xmlNs *ns );
00120             BTXMLAttr *convertAttr( xmlAttr *attr);
00121             BTXMLCharEncodingHandler *convertEncoding( xmlCharEncodingHandler *m_enc );
00122             BTXMLOutputBuffer *convertOutPut( xmlOutputBuffer *out );
00123             BTXMLEntity *convertEntity( xmlEntity *entity );
00124             BTXMLParserCtxt *convertParser( xmlParserCtxt *parser );
00125             BTXMLParserInput *convertParserInput( xmlParserInput *input );
00126             
00127             xmlDoc *convertXmlDoc( xmlDoc *d, BTXMLDoc *doc );
00128             xmlNode *convertXmlNode( BTXMLNode *node );
00129             xmlNs *convertXmlNS( xmlNode *node, BTXMLNs *ns );
00130             xmlOutputBuffer *convertXmlOutPut( BTXMLOutputBuffer *out );
00131             xmlParserCtxt *convertXmlParser( xmlParserCtxt *p, BTXMLParserCtxt *parser );
00132             xmlParserInput *convertXmlParserInput( xmlParserInput *in, BTXMLParserInput *input );
00133             
00134             static xmlEntity *convertXmlEntity( BTXMLEntity *entity );
00135             static xmlDoc *convertXmlDocS( BTXMLDoc *doc );
00136             
00137             BTErrorSAXFunc m_error;
00138             BTFatalErrorSAXFunc m_fatalError;
00139             BTCharactersSAXFunc m_characters;
00140             BTProcessingInstructionSAXFunc m_processingInstruction;
00141             BTCdataBlockSAXFunc m_cdataBlock;
00142             BTCommentSAXFunc m_comment;
00143             BTWarningSAXFunc m_warning;
00144             BTStartElementNsSAX2Func m_startElementNs;
00145             BTEndElementNsSAX2Func m_endElementNs;
00146             BTGetEntitySAXFunc m_getEntity;
00147             BTInternalSubsetSAXFunc m_internalSubset;
00148             BTExternalSubsetSAXFunc m_externalSubset;
00149             BTIgnorableWhitespaceSAXFunc m_ignorableWhitespace;
00150             
00151             xmlParserCtxt *m_parser;
00152             xmlDoc *m_doc;
00153             xmlNode *m_node;
00154             xmlOutputBuffer *m_outbuf;
00155         private :
00156             
00157             
00158             
00159             xmlNs *m_ns;
00160             xmlAttr *m_attr;
00161             xmlCharEncodingHandler *m_enc;
00162             xmlHashTable *m_hashTable;
00163             xmlSAXHandler *m_sax;
00164             
00165             xmlEntity *m_entity;
00166             xmlParserInput *m_input;
00167     };
00168 
00169 }
00170 

Generated on Wed Nov 21 20:04:16 2007 for Origyn Web Browser by Doxygen 1.5.3

pleyo.com
pleyo.com