#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