From a02dce3c8e6086acbfe9c57c3ee4bb386bfbebc2 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Sat, 5 Jul 2014 21:55:48 +0200 Subject: Revamped implementation to support FunctionTransform XalanNode input * FunctionTransform now accepts xalan::XalanNode base xalan::XSLTInputSource instances as input parameter ** such xalan::XSLTInputSource instances were already supported for the stylesheet parameter but not for the input parameter ** e.g. it is now possible to generate a DOM inside a transformation, pass the DOM into a embedded transformation as input, modifiy the output of that transformation, pass this modified DOM into another transformation and so on... you get the point * this required a revamp of TransformationFacade ** it is now a transformation independent wrapper for xalan::XalanTransformer *** as such is was renamed to TransformerFacade ** removed error catching template factory method "try_create" as it is not needed anymore ** "std::basic_ostream&" taking "generate" member method overloads were removed ** the set of "generate" member overloads was reduced to two methods accepting xalan::XSLTInputSource and xalan::FormatterListener as parameters * the core problem first documented in 299d0f6 was solved by transforming the input parameter into a xerces DOM and wrapping this DOM inside a xalan::XercesDOMWrapperParsedSource instance * serialization of the transformation result for file / std::cout output is now performed directly by the ixslt frontend * removed 'stylesheet parameter' parameter from FunctionTransform ** the functionality provided by this is easily replicated using the now possible DOM input parameter ** this was done to simplify the interface and reduce unnecessary feature duplication * updated FunctionTransform test case accordingly * added "generate" template function to ixslt frontend ** wraps TransformerFacade and manages ist input arguments ** handles serialization to stream * this commit marks a important milestone towards the goals defined in 741a70f --- test/transform/reference.xml | 4 ++-- test/transform/test.xsl | 10 ++++------ test/transform/transformation.xsl | 25 +++++++++++++++---------- 3 files changed, 21 insertions(+), 18 deletions(-) (limited to 'test') diff --git a/test/transform/reference.xml b/test/transform/reference.xml index e537bbc..1c702e8 100644 --- a/test/transform/reference.xml +++ b/test/transform/reference.xml @@ -1,10 +1,10 @@ - + Hello 1 Hello 2 Hello 3 Hello 4 - + 42 diff --git a/test/transform/test.xsl b/test/transform/test.xsl index 7469f92..a9f04a5 100644 --- a/test/transform/test.xsl +++ b/test/transform/test.xsl @@ -14,16 +14,14 @@ indent="yes" /> - - - - - + + + - + diff --git a/test/transform/transformation.xsl b/test/transform/transformation.xsl index 686bbf5..1002540 100644 --- a/test/transform/transformation.xsl +++ b/test/transform/transformation.xsl @@ -23,12 +23,10 @@ - @@ -36,13 +34,11 @@ - - + - @@ -62,12 +58,21 @@ - [test.xml] + + + + Hello 1 + Hello 2 + Hello 3 + Hello 4 + + + 21 + + + test.xsl test_actual.xml - - 21 - -- cgit v1.2.3