Hi Erin,

   Thanks for pointing it out. It was a complete oversight on my part. 

    Sorry for this.

Thanks



Erin Harris wrote:
> 
> Hi,
> 
> I found two problems in the stylesheet.
> 
> The first is with the following line:
> 
> <xsl:element name="buybiz:postBuy" namespace="{$bizServiceNameSpace}" 
> xmlns:mod="{$intModelNameSpace}">
> 
> 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}" 
> xmlns:mod="{$intModelNameSpace}">
> 
> becomes:
> 
>     <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="
> http://ws.xxx.com/2007/06/model";>
> 
>     ...
> 
>     <xsl:with-param name="cat" 
> select="serviceBusMessage/payload/buytypes:postLiveBuyRequest/buytypes:liveBuy/buytypes:category/modtarget:catName"/>
> 
>     ....
> 
>     <xsl:with-param name="subcat" 
> select="serviceBusMessage/payload/buytypes:postLiveBuyRequest/buytypes:liveBuy/buytypes:category/modtarget:subCatName"/>
> 
> 
> 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.
> 
> 
> Thanks.
> 
> Erin Harris
> 
> 
> 
> 
> 
> laxman <[EMAIL PROTECTED]> 
> 06/07/2007 03:59 PM
> 
> To
> xalan-j-users@xml.apache.org
> cc
> 
> Subject
> Re: Problem evaluating xpath with muliple prefix with different namespace
> 
> 
> 
> 
> 
> 
> 
> Hi,
> 
>    I edited the xml and renamed the xsl for convinence.
> 
> Thanks
> 
> 
> 
> 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: 
> http://www.nabble.com/Problem-evaluating-xpath-with-muliple-prefix-with-different-namespace-tf4036498.html#a11471552
> 
> Sent from the Xalan - J - Users mailing list archive at Nabble.com.
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Problem-evaluating-xpath-with-muliple-prefix-with-different-namespace-tf4036498.html#a11505992
Sent from the Xalan - J - Users mailing list archive at Nabble.com.

Reply via email to