xsl-list
[Top] [All Lists]

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

2019-03-28 13:43:04
There's no built-in capability to parse XML from XSLT code in XSLT 2.0. Your 
choices are:

(a) write your own extension function to do it, or

(b) parse the XML in the calling application, and pass the parsed XML tree as a 
parameter, rather than the unparsed lexical XML.

Either way, the details will depend on the interfaces provided by your XSLT 
processor.

Michael Kay
Saxonica

On 28 Mar 2019, at 18:28, Charles O'Connor coconnor(_at_)ariessys(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Unfortunately, <xsl:text> cannot have child elements, and I believe that the 
interpretation as entities is happening upstream.

-----Original Message-----
From: Christophe Marchand cmarchand(_at_)oxiane(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> 
Sent: Thursday, March 28, 2019 1:56 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Passing an XML fragment as a parameter

Someting like

<xsl:text disable-output-escaping="yes"><xsl:copy-of 
select="$NewAbstract"/></text> ?

Christophe

Le 28/03/2019 à 18:38, Charles O'Connor coconnor(_at_)ariessys(_dot_)com a 
écrit :
Hi,

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). Without the function, the angle brackets are interpreted as 
greater and less than entities. (Various semi-embarrassing experiments I've 
done to try to force the issue get the processor to complain that value of 
the parameter is xs:untypedAtomic.)

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?

Thanks,
Charles


Charles O'Connor l Business Analyst
Aries Systems Corporation l www.ariessys.com
50 High Street, Suite 21 l North Andover, MA l 01845 l USA
Direct: 802-585-5655




--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>