[ http://issues.apache.org/jira/browse/XALANJ-738?page=all ]

Brian Minchau updated XALANJ-738:
---------------------------------

    Version: 2.2.0
                 (was: Latest Development Code)

> Problem with setInclude() and a 'ghost' template
> ------------------------------------------------
>
>          Key: XALANJ-738
>          URL: http://issues.apache.org/jira/browse/XALANJ-738
>      Project: XalanJ2
>         Type: Bug
>   Components: Xalan-interpretive, parse-or-compile
>     Versions: 2.2.0
>  Environment: Operating System: Windows NT/2K
> Platform: PC
>     Reporter: Filippo Munafò
>     Assignee: Xalan Developers Mailing List
>  Attachments: ElemCallTemplate.patch
>
> I have the following two xsl's
> ----------------------
> xsl1.xsl:
> ----------------------
> <xsl:template match="/">
>       <xsl:call-template name="main">
>               <xsl:with-param name="title">This is a title</xsl:with-param>
>       </xsl:call-template>
> </xsl:template>
> <xsl:template name="body">
>       Hello world!
> </xsl:template>
> ---------------------------
> ---------------------------
> xsl2.xsl
> ---------------------------
> <xsl:template name="main">
>       <xsl:param name="title"/>
>       <html>
>               <head>
>                       <title>
>                               <xsl:value-of select="$title"/>
>                       </title>
>               </head>
>               <body>
>                       <xsl:call-template name="body"/>
>               </body>
>       </html>
> </xsl:template>
> --------------------------------------------------
> I'd like to include xsl2.xsl in xsl1.xsl using this code:
> -------------------------------------------------------
> TransformerFactory tf = TransformerFactory.newInstance();
> Source xsl1 = new StreamSource(new FileReader(new File("xsl1.xsl")));
> Source xsl2 = new StreamSource(new FileReader(new File("xsl2.xsl")));
> StylesheetRoot sheet1 = (StylesheetRoot)tf.newTemplates(xsl1);
> StylesheetRoot sheet2 = (StylesheetRoot)tf.newTemplates(xsl2);
> sheet1.setInclude(sheet2);
> sheet1.recompose();
> Transformer tr = sheet1.newTransformer();
> tr.transform(xml, result);
> ---------------------------------------------------------
> When I execute this code I get:
> javax.xml.transform.TransformerException: could not find template named: body
> Everything is ok if I have a static include in xsl1.xsl like this (using just 
> one template or directly a transformer):
> <xsl:include href="xsl2.xsl"/>
> Why the transformer doesn't see the template named 'body'?
> I need this kind of dynamic inclusion.
> Filippo Munafò

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to