xml-xalan-j-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erin Harris <ehar...@ca.ibm.com>
Subject Re: Problem evaluating xpath with muliple prefix with different namespace
Date Mon, 09 Jul 2007 16:04:59 GMT

I found two problems in the stylesheet.

The first is with the following line:

<xsl:element name="buybiz:postBuy" namespace="{$bizServiceNameSpace}" 

In the XSLT 1.0 Specification, 7.6.2 Attribute Value Templates (
http://www.w3.org/TR/xslt#attribute-value-templates) it says:

NOTE:Not all attributes are interpreted as attribute value templates. 
Attributes whose value is an expression or pattern, attributes of 
top-level elements and attributes that refer to named XSLT objects are not 
interpreted as attribute value templates. In addition, xmlns attributes 
are not interpreted as attribute value templates; it would not be 
conformant with the XML Namespaces Recommendation to do this. 

So xmlns:mod="{$intModelNameSpace}" is just treated as a string value and 
is not evaluated as an AVT.

Since there is a variable declaration: <xsl:variable 
name="intModelNameSpace">http://schemas.xxx.com/model</xsl:variable>, I 
tried replacing xmlns:mod="{$intModelNameSpace}" with 
xmlns:mod="http://schemas.xxx.com/model" but that did not work either 
because now in the stylesheet the prefix mod is bound to the namespace 
http://schemas.xxx.com/model, but in the xml input document the prefix mod 
is bound to http://ws.xxx.com/2007/06/model so there is no match.  So I 
tried just removing that namespace declaration so that:

    <xsl:element name="buybiz:postBuy" namespace="{$bizServiceNameSpace}" 


    <xsl:element name="buybiz:postBuy" namespace="{$bizServiceNameSpace}">

and then everything works.

If you need that namespace declaration for some reason (though it didn't 
look like it was being used) then you can do something like this:

    <xsl:element name="buybiz:postBuy" namespace="{$bizServiceNameSpace}" 
xmlns:mod="http://schemas.xxx.com/model" xmlns:modtarget="


    <xsl:with-param name="cat" 


    <xsl:with-param name="subcat" 

Note that the XSLT processor uses the namespace bound to the prefix to 
match nodes in the xml input document and not the prefix name itself.


Erin Harris

laxman <lchandramouli@gmail.com> 
06/07/2007 03:59 PM


Re: Problem evaluating xpath with muliple prefix with different namespace


   I edited the xml and renamed the xsl for convinence.


laxman wrote:
> Hi Erin,
>     Thanks for the reply I am working with Xalan Java 2.7.0 and jdk
> 1.4.2_08
>    I am attaching the xsl and the input xml. Not sure what the exact
> problem is.
> Thanks
>  http://www.nabble.com/file/p11470588/P1.xsl P1.xsl 
>  http://www.nabble.com/file/p11470588/2.xml 2.xml 

View this message in context: 

Sent from the Xalan - J - Users mailing list archive at Nabble.com.

View raw message