diff options
author | Adrian Kummerländer | 2014-05-02 22:06:37 +0200 |
---|---|---|
committer | Adrian Kummerländer | 2014-05-02 22:06:37 +0200 |
commit | e5ed418907f09bf8905463f42a44593d51159bc9 (patch) | |
tree | 25d70d23625877946486ce8d46d7c4fb98a836f9 /src/transformation_facade.cc | |
parent | e9c4e2b716798002c9ccbf96ee509eb91ad56553 (diff) | |
download | InputXSLT-e5ed418907f09bf8905463f42a44593d51159bc9.tar InputXSLT-e5ed418907f09bf8905463f42a44593d51159bc9.tar.gz InputXSLT-e5ed418907f09bf8905463f42a44593d51159bc9.tar.bz2 InputXSLT-e5ed418907f09bf8905463f42a44593d51159bc9.tar.lz InputXSLT-e5ed418907f09bf8905463f42a44593d51159bc9.tar.xz InputXSLT-e5ed418907f09bf8905463f42a44593d51159bc9.tar.zst InputXSLT-e5ed418907f09bf8905463f42a44593d51159bc9.zip |
Changed external functions to enable global installation
* up until now all external functions were locally installed to a specific XalanTransformer instance contained within a TransformationGuard instance
** this had to change as I planned to add a "execute-transformation" function based on TransformationGuard which would have led to recursive self-instantiation
** global external functions have to be thread-safe
* as global external function can not be provided with a reference to a transformation-specific FilesystemFacade instance, the working path is now determined using xalan::Locator
** currently using pointer arithmetics on XMLCh* to remove the "file://" prefix of the URI returned by locator->getSystemId(), may be unsafe
* added compilation unit for PlattformGuard as it now contains function installation in addition to plattform lifetime management
Diffstat (limited to 'src/transformation_facade.cc')
-rw-r--r-- | src/transformation_facade.cc | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/src/transformation_facade.cc b/src/transformation_facade.cc index 3fee24f..91d761d 100644 --- a/src/transformation_facade.cc +++ b/src/transformation_facade.cc @@ -6,38 +6,11 @@ #include <sstream> #include <iostream> -#include "function/read_file.h" -#include "function/read_xml_file.h" -#include "function/read_directory.h" - namespace InputXSLT { TransformationFacade::TransformationFacade(const std::string& transformation): - fs_context_(boost::filesystem::path(transformation).parent_path().string()), transformation_{}, transformer_() { - const xalan::XalanDOMString customNamespace( - "function.inputxslt.application" - ); - - this->transformer_.installExternalFunction( - customNamespace, - xalan::XalanDOMString("read-file"), - InputXSLT::FunctionReadFile(this->fs_context_) - ); - - this->transformer_.installExternalFunction( - customNamespace, - xalan::XalanDOMString("read-xml-file"), - InputXSLT::FunctionReadXmlFile(this->fs_context_) - ); - - this->transformer_.installExternalFunction( - customNamespace, - xalan::XalanDOMString("read-directory"), - InputXSLT::FunctionReadDirectory(this->fs_context_) - ); - this->transformer_.compileStylesheet( xalan::XSLTInputSource(transformation.data()), this->transformation_ |