#include <SflexXsltXalan.hpp>
Abgeleitet von SflexXslt.
Klassendiagramm für SflexXsltXalan:
Öffentliche Datenelemente | |
SflexXsltXalan () | |
virtual | ~SflexXsltXalan () |
virtual void | work (std::map< std::string, std::string > &styleParamList, std::string &xmlContent, std::string &xslContent) |
Veranlaßt die Transformation. Mehr... | |
virtual bool | isSuccess () const |
Liefert den Status des Arbeiters. Mehr... | |
virtual const std::string | getResult () const |
Liefert das Ergebnis des jeweiligen Arbeiters. Mehr... | |
Private Attribute | |
bool | isSuccess_ |
der Status. Mehr... | |
std::ostringstream | resultStream_ |
das Ergebnis der Transformation. Mehr... |
|
00027 : isSuccess_( false ) 00028 { 00029 // ohne die statischen Funktione geht bei Xalan gar nichts 00030 XMLPlatformUtils::Initialize(); 00031 XalanTransformer::initialize(); 00032 } |
|
00037 { 00038 // Freigeben der statischen Ressourcen 00039 XalanTransformer::terminate(); 00040 XMLPlatformUtils::Terminate(); 00041 } |
|
Liefert das Ergebnis des jeweiligen Arbeiters. Im Falle eines Fehlers liefert diese Methode auch die Fehlermeldung.
Implementiert SflexWorker.
00108 { 00109 return resultStream_.str(); 00110 } |
|
Liefert den Status des Arbeiters.
Implementiert SflexWorker.
00100 { 00101 return isSuccess_; 00102 } |
|
Veranlaßt die Transformation.
Implementiert SflexXslt.
00049 { 00050 using std::istringstream; 00051 using std::map; 00052 using std::string; 00053 using sflexhelper::quoteSingle; 00054 00055 map< string, string > sPList = styleParamList; 00056 00057 // speichert das Resultat der Transformation 00058 int theResult = 0; 00059 00060 // der XML- und der XSLT-String werden in Streams umgewandelt 00061 istringstream theXml( xmlContent, xmlContent.length()); 00062 istringstream theXslt( xsltContent, xsltContent.length()); 00063 00064 XalanTransformer theXalanTransformer; 00065 00066 map< string, string >::const_iterator i; 00067 map< string, string >::const_iterator iEnd = sPList.end(); 00068 00069 // hier werden die Paramter für das Stylesheet an Xalan übergeben 00070 for ( i = sPList.begin(); i != iEnd; ++i ) { 00071 string value = quoteSingle( i->second ); 00072 theXalanTransformer.setStylesheetParam( 00073 XalanDOMString( i->first.c_str() ), 00074 XalanDOMString( value.c_str() ) 00075 ); 00076 } 00077 00078 // es wird transformiert, das Ergebnis landet im resultStream_ 00079 theResult = theXalanTransformer.transform( &theXml, 00080 &theXslt, 00081 &resultStream_ ); 00082 00083 // ist alles gut gegangen? 00084 if( theResult != 0 ) { 00085 resultStream_ << "Xslt Xalan:\n" 00086 << theXalanTransformer.getLastError() 00087 << "\n"; 00088 isSuccess_ = false; 00089 return; 00090 } 00091 00092 isSuccess_ = true; 00093 return; 00094 } |
|
der Status.
|
|
das Ergebnis der Transformation.
|