#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.
|
1.2.14 geschrieben von Dimitri van Heesch,
© 1997-2002