Subject: Re: Problem with embeded XHTML in an XML file and transformation to XSL:FO
From: "andrew welch" <andrew.j.welch@xxxxxxxxx>
Date: Sat, 12 Aug 2006 19:02:05 +0100
|
On 8/12/06, Luuk Jansen <subscribe@xxxxxxxxxxxxxxxxx> wrote:
On Sat, 2006-08-12 at 22:06 +0530, Mukul Gandhi wrote:
> On 8/12/06, Luuk Jansen <subscribe@xxxxxxxxxxxxxxxxx> wrote:
> > I understand the logic, just a practical question.
> > I wrote the application with the javax.xml.transform. Is there a similar
> > function as saxon:parse() which I can use with my excising code or and
> > easy way to sue it without having to rewrite and retest the whole
> > application?
>
> The classes and interfaces in the package javax.xml.transform are just
> wrappers around a specific XSLT engine (for e.g. Xalan or Saxon).
> Which XSLT engine you use with javax.xml.transform is determined by a
> JAXP property (I don't remember the name just now; but you can easily
> find it by googling). To use Saxon, set the value of this JAXP
> property to the Saxon class. Then the system will recognize
> saxon:parse() function.
>
Oke, thanks again, getting closer...
The next problem is: Cannot find a matching 1-argument function named
{http://icl.com/saxon}parse()
With the xsl:template as follows:
<xsl:template match="Content" xmlns:saxon="http://icl.com/saxon">
<xsl:if test=". != ''">
<fo:block space-after="10mm">
<xsl:variable name="htmlContent" select="saxon:parse(.)"/>
<xsl:apply-templates select="$htmlContent"/>
</fo:block>
</xsl:if>
</xsl:template>
How can I get the function to be found/work?
You'll need to use the lastest version of Saxon - version 8.7.3 (the
extension came in around 7.x but you may as well use the latest) and
then use the correct namespace http://saxon.sf.net/
|