Re: [xsl] Passing an XML fragment as a parameter

Subject: Re: [xsl] Passing an XML fragment as a parameter
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 28 Mar 2019 18:43:47 -0000
On 28.03.2019 18:38, Charles O'Connor coconnor@xxxxxxxxxxxx wrote:

I need to create a transform for our engineers to pass an XML fragment
stored in a SQL database into a document as a parameter. Testing this in
Oxygen using XSLT 3.0 and Saxon 9.7.0.15 is super easy. I can just declare the
parameter and then use the function fn:parse-xml-fragment:

<xsl:template match="article-meta/abstract"> <xsl:copy-of select="fn:parse-xml-fragment($NewAbstract)"/> </xsl:template>

Unfortunately, the transform has to work in an environment limited to XSLT
2.0 (XMLPrime).


Which version of XmlPrime is that? While they don't support XSLT 3 they for sure support XPath 3 functions like that function so, if you have the latest version, I think you can get it to allow the use of such functions by either setting version="3.0" in the XSLT and/or by using a configuration/setting to support XPath 3 instead of 2.


I'm guessing this could be solved by saving the XML fragment as a document,
but is there a way to do it from memory?

Do you run XmlPrime from the command line? Or do you write .NET code
(e.g. C# or VB.NET) to run it? That way you should be able to set up
your own extension function if needed. Or perhaps parse the XML in your
.NET code and pass in a document fragment node to the XSLT.

Current Thread