From 086779c6d3d40f244b6aafd6d402fd29b921a735 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Sat, 12 Jul 2014 16:15:42 +0200 Subject: Implemented external "generate" function * this function essentially provides the same functionality as FunctionTransform with the addition of directly committing the result to the filesystem ** this is needed if one wants to generate doctype-containing transformations from inside a transformation as "write-file" is not able to infer the doctype of a given xalan::XalanNode pointer ** this is a integral limitation of (at least) XSLT 1.0 as implemented in Apache Xalan *** a document can of course only have a single document type *** e.g. we can not include a doctype node in the result tree of FunctionTransform * implemented test case for FunctionGenerate * transformation "test.xsl" is shared between the FunctionTransform and FunctionGenerate test cases * modified README.md accordingly --- src/plattform_guard.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/plattform_guard.cc') diff --git a/src/plattform_guard.cc b/src/plattform_guard.cc index cc3c9c0..5d19e32 100644 --- a/src/plattform_guard.cc +++ b/src/plattform_guard.cc @@ -10,6 +10,7 @@ #include "function/write_file.h" #include "function/read_directory.h" #include "function/transform.h" +#include "function/generate.h" #include "function/external_text_formatter.h" namespace InputXSLT { @@ -47,6 +48,12 @@ PlattformGuard::PlattformGuard(const std::vector& path): InputXSLT::FunctionTransform(&this->include_resolver_) ); + xalan::XalanTransformer::installExternalFunctionGlobal( + customNamespace, + xalan::XalanDOMString("generate"), + InputXSLT::FunctionGenerate(&this->include_resolver_) + ); + xalan::XalanTransformer::installExternalFunctionGlobal( customNamespace, xalan::XalanDOMString("external-text-formatter"), -- cgit v1.2.3