Hauptseite   Liste aller Namensbereiche   Klassenhierarchie   Alphabetische Liste   Übersicht   Auflistung der Dateien   Elemente eines Namensbereiches   Datenstruktur-Elemente   Datei-Elemente  

SflexXsltXalan Klassenreferenz

Ein XSLT-Transformator, der Xalan verwendet. Mehr...

#include <SflexXsltXalan.hpp>

Abgeleitet von SflexXslt.

Klassendiagramm für SflexXsltXalan:

Inheritance graph
[Legende]
Zusammengehörigkeiten von SflexXsltXalan:

Collaboration graph
[Legende]
Aufstellung aller Elemente

Ö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...


Ausführliche Beschreibung

Ein XSLT-Transformator, der Xalan verwendet.


Beschreibung der Konstruktoren und Destruktoren

SflexXsltXalan::SflexXsltXalan  
 

00027     : isSuccess_( false )
00028 {
00029     // ohne die statischen Funktione geht bei Xalan gar nichts
00030     XMLPlatformUtils::Initialize();
00031     XalanTransformer::initialize();
00032 }

SflexXsltXalan::~SflexXsltXalan   [virtual]
 

00037 {
00038     // Freigeben der statischen Ressourcen
00039     XalanTransformer::terminate();
00040     XMLPlatformUtils::Terminate();
00041 }


Dokumentation der Elementfunktionen

const std::string SflexXsltXalan::getResult   const [virtual]
 

Liefert das Ergebnis des jeweiligen Arbeiters.

Im Falle eines Fehlers liefert diese Methode auch die Fehlermeldung.

Rückgabe:
das Ergebnis.

Implementiert SflexWorker.

00108 {
00109     return resultStream_.str();
00110 }

bool SflexXsltXalan::isSuccess   const [virtual]
 

Liefert den Status des Arbeiters.

Rückgabe:
der Status

Implementiert SflexWorker.

00100 {
00101     return isSuccess_;
00102 }

void SflexXsltXalan::work std::map< std::string, std::string > &    styleParamList,
std::string &    xmlContent,
std::string &    xslContent
[virtual]
 

Veranlaßt die Transformation.

Parameter:
styleParamList  der Container mit den Stylesheet-Paramtern
xmlContent  der Inhalt der XML-Datei
xslContent  der Inhalt der XSLT-Datei

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 }


Dokumentation der Datenelemente

bool SflexXsltXalan::isSuccess_ [private]
 

der Status.

std::ostringstream SflexXsltXalan::resultStream_ [private]
 

das Ergebnis der Transformation.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Fri Apr 12 10:57:19 2002 für SfleX von doxygen1.2.14 geschrieben von Dimitri van Heesch, © 1997-2002