00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00042 #include "config.h"
00043 #include "PlatformString.h"
00044
00045 #include "BIXSLT.h"
00046 #include "BTXML.h"
00047 #include <libxslt/documents.h>
00048 #include <libxml/tree.h>
00049
00050 namespace BC
00051 {
00052 class BCXML;
00053
00058 class BCXSLT : public BAL::BIXSLT {
00059 public:
00060 BCXSLT();
00061 ~BCXSLT();
00062
00063 int isBlank( unsigned char *);
00064 int isXsltElem( BAL::BTXMLNode *);
00065 int isXlstName( BAL::BTXMLNode *, char * );
00066 unsigned char *xsltGetNsProp( BAL::BTXMLNode *node, const unsigned char *name, const unsigned char *nameSpace);
00067 BAL::BTXSLTStyleSheet* xsltLoadStylesheetPI( BAL::BTXMLDoc *doc );
00068 BAL::BTXSLTStyleSheet* xsltParseStylesheetDoc( BAL::BTXMLDoc *doc );
00069 void setLoaderFunc( BAL::BIXSLTDocLoaderFunc f );
00070 int xsltSaveResultTo( BAL::BTXMLOutputBuffer *buf, BAL::BTXMLDoc *result, BAL::BTXSLTStyleSheet *style);
00071 void getImportPtr( const unsigned char *res, BAL::BTXSLTStyleSheet *style );
00072 BAL::BTXSLTTransformContext *xsltNewTransformContext( BAL::BTXSLTStyleSheet *style, BAL::BTXMLDoc *doc );
00073 int xsltQuoteUserParams( BAL::BTXSLTTransformContext *ctxt, const char **params);
00074 BAL::BTXMLDoc *xsltApplyStylesheetUser( BAL::BTXSLTStyleSheet *style,
00075 BAL::BTXMLDoc *doc,
00076 const char **params,
00077 const char *output,
00078 FILE * profile,
00079 BAL::BTXSLTTransformContext *userCtxt);
00080 void xsltFreeTransformContext( BAL::BTXSLTTransformContext *ctxt );
00081 void xsltFreeStylesheet( BAL::BTXSLTStyleSheet *sheet );
00082 static xmlDocPtr XSLTDocLoaderFunc( const xmlChar *URI,
00083 xmlDictPtr dict,
00084 int options,
00085 void *ctxt,
00086 xsltLoadType type );
00087 private:
00088 BAL::BTXSLTStyleSheet *m_sheet;
00089 BAL::BTXSLTTransformContext *m_trans;
00090 xsltStylesheetPtr m_xsltsheet;
00091 xsltTransformContextPtr m_xsltTransform;
00092 BCXML *m_xml;
00093 };
00094 }