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 #include <xsec/transformers/TXFMBase.hpp>
00027
00028
00029
00030 #include <xercesc/dom/DOM.hpp>
00031
00032
00033
00034 #ifndef XSEC_NO_XPATH
00035
00036 #include <xalanc/XalanDOM/XalanDocument.hpp>
00037 #include <xalanc/XercesParserLiaison/XercesDOMSupport.hpp>
00038 #include <xalanc/XercesParserLiaison/XercesParserLiaison.hpp>
00039 #include <xalanc/XPath/NodeRefList.hpp>
00040 #include <xalanc/XPath/ElementPrefixResolverProxy.hpp>
00041 #include <xalanc/XalanTransformer/XalanTransformer.hpp>
00042
00043
00044 XALAN_USING_XALAN(XercesDOMSupport)
00045 XALAN_USING_XALAN(XercesParserLiaison)
00046 XALAN_USING_XALAN(XalanDocument)
00047 XALAN_USING_XALAN(XalanTransformer)
00048
00049 #endif
00050
00051 #ifndef XSEC_NO_XSLT
00052
00058 class DSIG_EXPORT TXFMXSL : public TXFMBase {
00059
00060 private:
00061
00062 safeBuffer expr;
00063
00064 XercesDOMSupport xds;
00065 XercesParserLiaison xpl;
00066
00067 XalanDocument * xd;
00068
00069 safeBuffer sbInDoc;
00070
00071 XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument
00072 * document;
00073
00074 XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument
00075 * docOut;
00076
00077 public:
00078
00079 TXFMXSL(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *doc);
00080 ~TXFMXSL();
00081
00082
00083
00084 void setInput(TXFMBase *newInput);
00085
00086
00087
00088 virtual TXFMBase::ioType getInputType(void);
00089 virtual TXFMBase::ioType getOutputType(void);
00090 virtual nodeType getNodeType(void);
00091
00092
00093
00094 virtual bool nameSpacesExpanded(void);
00095 virtual void expandNameSpaces(void);
00096
00097
00098
00099
00100 void evaluateStyleSheet(const safeBuffer &sbStyleSheet);
00101
00102
00103
00104 virtual unsigned int readBytes(XMLByte * const toFill, const unsigned int maxToFill);
00105 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *getDocument();
00106 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getFragmentNode();
00107 virtual const XMLCh * getFragmentId();
00108
00109 private:
00110 TXFMXSL();
00111
00112 };
00113
00114
00115 #endif