diff options
Diffstat (limited to 'src/function')
-rw-r--r-- | src/function/base.h | 6 | ||||
-rw-r--r-- | src/function/transform.cc | 16 |
2 files changed, 15 insertions, 7 deletions
diff --git a/src/function/base.h b/src/function/base.h index 3ca1d61..f2b3d5c 100644 --- a/src/function/base.h +++ b/src/function/base.h @@ -100,7 +100,11 @@ class FunctionBase : public xalan::Function { static_cast<Implementation*>( const_cast<FunctionBase*>(this) )->constructDocument( - FilesystemContext(locator), + FilesystemContext( + this->include_resolver_->resolve( + locator->getSystemId() + ) + ), XObjectValue::get<typename std::tuple_element< Index, std::tuple<Types...> diff --git a/src/function/transform.cc b/src/function/transform.cc index 7e6207c..059260d 100644 --- a/src/function/transform.cc +++ b/src/function/transform.cc @@ -34,9 +34,6 @@ xercesc::DOMDocument* FunctionTransform::constructDocument( std::string targetPath, xalan::XObjectPtr parameterObject ) { - transformationPath = fsContext.resolve(transformationPath).string(); - targetPath = fsContext.resolve(targetPath).string(); - xercesc::DOMDocument* const domDocument( xercesc::DOMImplementation::getImplementation()->createDocument( nullptr, @@ -50,15 +47,22 @@ xercesc::DOMDocument* FunctionTransform::constructDocument( ); ResultNodeFacade result(domDocument, rootNode, "transformation"); - result.setAttribute("target", targetPath); + + result.setAttribute( + "target", + boost::filesystem::path(targetPath).filename().string() + ); if ( auto transformation = TransformationFacade::try_create( - transformationPath, + fsContext.resolve(transformationPath).string(), this->include_resolver_, handleErrors(result) ) ) { try { - transformation->generate(targetPath, parameterObject); + transformation->generate( + fsContext.resolve(targetPath).string(), + parameterObject + ); result.setAttribute("result", "success"); } |