--- parser3/src/include/pa_stylesheet_connection.h 2001/09/25 09:36:51 1.4 +++ parser3/src/include/pa_stylesheet_connection.h 2001/10/11 14:57:53 1.11 @@ -1,11 +1,10 @@ /** @file - Parser: stylesheet fstylesheet decl. + Parser: Stylesheet connection decl. Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_stylesheet_connection.h,v 1.4 2001/09/25 09:36:51 parser Exp $ + $Id: pa_stylesheet_connection.h,v 1.11 2001/10/11 14:57:53 parser Exp $ */ #ifndef PA_STYLESHEET_CONNECTION_H @@ -17,7 +16,7 @@ #include "pa_exception.h" #include "pa_common.h" -#include +#include "XalanTransformer2.hpp" // defines @@ -31,7 +30,7 @@ class Stylesheet_connection : public Poo public: Stylesheet_connection(Pool& pool, const String& afile_spec) : Pooled(pool), - ftransformer(new XalanTransformer), + ftransformer(new XalanTransformer2), ffile_spec(afile_spec), time_used(0), @@ -63,8 +62,9 @@ public: bool connected() { return fstylesheet!=0; } - const XalanCompiledStylesheet& stylesheet() { - if(time_t new_disk_time=get_new_disk_time()) + const XalanCompiledStylesheet& stylesheet(bool nocache) { + time_t new_disk_time=get_new_disk_time(); + if(nocache || new_disk_time) load(new_disk_time); return *fstylesheet; } @@ -79,11 +79,24 @@ private: void load(time_t new_disk_time) { Pool& pool=*fservices_pool; - int error=ftransformer->compileStylesheet(ffile_spec.cstr(String::UL_FILE_SPEC), fstylesheet); - if(error) - PTHROW(0, 0, - &ffile_spec, - ftransformer->getLastError()); + try{ + ftransformer->compileStylesheet2(ffile_spec.cstr(String::UL_FILE_SPEC), fstylesheet); + } + catch (XSLException& e) { + pool.exception()._throw(pool, &ffile_spec, e); + } + catch (SAXParseException& e) { + pool.exception()._throw(pool, &ffile_spec, e); + } + catch (SAXException& e) { + pool.exception()._throw(pool, &ffile_spec, e); + } + catch (XMLException& e) { + pool.exception()._throw(pool, &ffile_spec, e); + } + catch(const XalanDOMException& e) { + pool.exception()._throw(pool, &ffile_spec, e); + } prev_disk_time=new_disk_time; } @@ -112,7 +125,7 @@ private: private: - XalanTransformer *ftransformer; + XalanTransformer2 *ftransformer; Pool *fservices_pool; };