  | |  | Problem evaluating xpath with muliple prefix with different namespace | Problem evaluating xpath with muliple prefix with different namespace 2007-07-06 - By Erin Harris
Hi,
I tried to reproduce the problem with the following test case and using Xalan Java 2.7.0 but could not. What level of Xalan are you using (to determine the version enter 'java org.apache.xalan.Version' from the command line)? Could you provide a complete stylesheet and sample input document that demonstrates the problem?
Thanks.
Stylesheet:
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:buytypes="http://ws.fedbid.com/2007/06/buyservice" xmlns:mod="http://ws.fedbid.com/2007/06/model" exclude-result-prefixes="buytypes mod" version="1.0">
<xsl:template match='/order'> <out> <xsl:choose> <xsl:when test="postLiveBuyRequest/buytypes:liveBuy/buytypes:category"> <xsl:call-template name="setCategory"> <xsl:with-param name="cat" select="postLiveBuyRequest/buytypes:liveBuy/buytypes:category/mod:catName"/> </xsl:call-template> </xsl:when> </xsl:choose> </out> </xsl:template>
<xsl:template name="setCategory"> <xsl:param name="cat"/> <xsl:element name="buybiz:b2bCatName" namespace="http://buybiz.org"> <xsl:value-of select="$cat" /> </xsl:element> </xsl:template>
</xsl:stylesheet>
Sample input document:
<?xml version="1.0"?> <order xmlns:mod="http://ws.fedbid.com/2007/06/model"> <postLiveBuyRequest> <liveBuy xmlns="http://ws.fedbid.com/2007/06/buyservice"> <category> <mod:catName>#19882</mod:catName> </category> </liveBuy> </postLiveBuyRequest> </order>
Output using Xalan-J 2.7.0 (output the same whether using interpreter or compiler (XSLTC)):
<?xml version="1.0" encoding="UTF-8"?><out><buybiz:b2bCatName xmlns:buybiz="http://buybiz.org">#19882</buybiz:b2bCatName></out>
Erin Harris
laxman <lchandramouli@(protected)> 06/07/2007 11:41 AM
To xalan-j-users@(protected) cc
Subject Problem evaluating xpath with muliple prefix with different namespace
Hi,
I have been trying run XSL tranformation for elements defined in multiple schema and each having its prefix and namespace. My xsl looks like this
<xsl:choose> <xsl:when test="postLiveBuyRequest/buytypes:liveBuy/buytypes:category"> <xsl:call-template name="setCategory"> <xsl:with-param name="cat" select="postLiveBuyRequest/buytypes:liveBuy/buytypes:category/mod:catName"/> </xsl:call-template> </xsl:when> </xsl:choose>
the namespace for buytypes and mod are xmlns:buytypes="http://ws.fedbid.com/2007/06/buyservice" xmlns:mod="http://ws.fedbid.com/2007/06/model" defined in the xsl.
<xsl:template name="setCategory"> <xsl:param name="cat"/> <xsl:element name="buybiz:b2bCatName" namespace="{$bizServiceNameSpace}"> <xsl:value-of select="$cat" /> </xsl:element> </xsl:template>
the problem here is that in am not getting the value in b2bCatName. Has it got something to do with the xalan implementation of namespacecontext.
the funny thing to note is that if i call apply-template and pass upto postLiveBuyRequest/buytypes:liveBuy/buytypes:category then I am able to access the elements using
<xsl:value-of select="mod:catName"/> with category in the current context.
In my view the first method should work fine also. The problem with the first method in my view is that xalan is not able to evaluate multiple prefixes.
Any help regarding this issue is greatly appreciated.
Thanks
-- View this message in context: http://www.nabble.com/Problem-evaluating-xpath-with-muliple-prefix-with -different-namespace-tf4036498.html#a11467559
Sent from the Xalan - J - Users mailing list archive at Nabble.com.
<br><font size=2 face="sans-serif">Hi,</font> <br> <br><font size=2 face="sans-serif">I tried to reproduce the problem with the following test case and using Xalan Java 2.7.0 but could not. What level of Xalan are you using (to determine the version enter 'java org.apache.xalan.Version' from the command line)? Could you provide a complete stylesheet and sample input document that demonstrates the problem?</font> <br> <br><font size=2 face="sans-serif">Thanks.</font> <br> <br><font size=2 face="sans-serif"><u>Stylesheet:</u></font> <br> <br><font size=2 face="Courier New"><?xml version="1.0"?></font> <br><font size=2 face="Courier New"><xsl:stylesheet</font> <br><font size=2 face="Courier New"> xmlns:xsl="http://www.w3 .org/1999/XSL/Transform"</font> <br><font size=2 face="Courier New"> xmlns:buytypes="http:/ /ws.fedbid.com/2007/06/buyservice"</font> <br><font size=2 face="Courier New"> xmlns:mod="http://ws .fedbid.com/2007/06/model"</font> <br><font size=2 face="Courier New"> exclude-result-prefixes=" ;buytypes mod"</font> <br><font size=2 face="Courier New"> version="1.0">< /font> <br> <br><font size=2 face="Courier New"><xsl:template match='/order'></font> <br><font size=2 face="Courier New"> <out></font> <br><font size=2 face="Courier New"> <xsl:choose></font> <br><font size=2 face="Courier New"> <xsl:when test= "postLiveBuyRequest/buytypes:liveBuy/buytypes:category"></font> <br><font size=2 face="Courier New"> <xsl:call -template name="setCategory"></font> <br><font size=2 face="Courier New"> <xsl:with-param name="cat" select="postLiveBuyRequest /buytypes:liveBuy/buytypes:category/mod:catName"/></font> <br><font size=2 face="Courier New"> </xsl:call -template></font> <br><font size=2 face="Courier New"> </xsl:when>< /font> <br><font size=2 face="Courier New"> </xsl:choose></font> <br><font size=2 face="Courier New"> </out></font> <br><font size=2 face="Courier New"></xsl:template></font> <br> <br><font size=2 face="Courier New"><xsl:template name="setCategory "></font> <br><font size=2 face="Courier New"> <xsl:param name="cat"/ ></font> <br><font size=2 face="Courier New"> <xsl:element name="buybiz :b2bCatName" namespace="http://buybiz.org"></font> <br><font size=2 face="Courier New"> <xsl:value-of select=" ;$cat" /></font> <br><font size=2 face="Courier New"> </xsl:element></font> <br><font size=2 face="Courier New"></xsl:template></font> <br> <br><font size=2 face="Courier New"></xsl:stylesheet></font> <br><font size=2 face="sans-serif"> </font> <br> <br><font size=2 face="sans-serif"><u>Sample input document:</u></font> <br> <br><font size=2 face="Courier New"><?xml version="1.0"?></font> <br><font size=2 face="Courier New"><order xmlns:mod="http://ws.fedbid .com/2007/06/model"></font> <br><font size=2 face="Courier New"> <postLiveBuyRequest></font> <br><font size=2 face="Courier New"> <liveBuy xmlns="http: //ws.fedbid.com/2007/06/buyservice"></font> <br><font size=2 face="Courier New"> <category></font> <br><font size=2 face="Courier New"> <mod:catName >#19882</mod:catName></font> <br><font size=2 face="Courier New"> </category>< /font> <br><font size=2 face="Courier New"> </liveBuy></font> <br><font size=2 face="Courier New"> </postLiveBuyRequest></font> <br><font size=2 face="Courier New"></order></font> <br> <br> <br><font size=2 face="sans-serif"><u>Output using Xalan-J 2.7.0 (output the same whether using interpreter or compiler (XSLTC)):</u></font> <br> <br><font size=2 face="Courier New"><?xml version="1.0" encoding= "UTF-8"?><out><buybiz:b2bCatName xmlns:buybiz="http://buybiz.org">#19882</buybiz:b2bCatName> </out></font> <br> <br><font size=2 face="sans-serif"><br> Erin Harris<br> </font> <br> <br> <br> <table width=100%> <tr valign=top> <td width=40%><font size=1 face="sans-serif"><b>laxman <lchandramouli@(protected) .com></b> </font> <p><font size=1 face="sans-serif">06/07/2007 11:41 AM</font> <td width=59%> <table width=100%> <tr valign=top> <td> <div align=right><font size=1 face="sans-serif">To</font></div> <td><font size=1 face="sans-serif">xalan-j-users@(protected)</font> <tr valign=top> <td> <div align=right><font size=1 face="sans-serif">cc</font></div> <td> <tr valign=top> <td> <div align=right><font size=1 face="sans-serif">Subject</font></div> <td><font size=1 face="sans-serif">Problem evaluating xpath with muliple prefix with different namespace</font></table> <br> <table> <tr valign=top> <td> <td></table> <br></table> <br> <br> <br><tt><font size=2><br> Hi,<br> <br> I have been trying run XSL tranformation for elements defined in multiple<br> schema and each having its prefix and namespace. My xsl looks like this<br> <br> <xsl:choose><br> <xsl:when test="postLiveBuyRequest/buytypes:liveBuy/buytypes :category"><br> <xsl:call-template name="setCategory"><br> <xsl:with-param name="cat" <br> <br> select="postLiveBuyRequest/buytypes:liveBuy/buytypes:category/mod:catName "/><br> </xsl:call-template><br> </xsl:when><br> </xsl:choose><br> <br> the namespace for buytypes and mod are <br> xmlns:buytypes="http://ws.fedbid.com/2007/06/buyservice" ;<br> xmlns:mod="http://ws.fedbid.com/2007/06/model"<br> defined in the xsl.<br> <br> <xsl:template name="setCategory"><br> <xsl:param name="cat"/><br> <xsl:element name="buybiz:b2bCatName" namespace="{ $bizServiceNameSpace}"><br> <xsl:value-of select="$cat" /><br> </xsl:element><br> </xsl:template><br> <br> the problem here is that in am not getting the value in b2bCatName. Has it<br> got something to do with the xalan implementation of namespacecontext.<br> <br> the funny thing to note is that if i call apply-template and pass upto<br> postLiveBuyRequest/buytypes:liveBuy/buytypes:category then I am able to<br> access the elements using <br> <br> <xsl:value-of select="mod:catName"/> with category in the current context.<br> <br> In my view the first method should work fine also. The problem with the<br> first method in my view is that xalan is not able to evaluate multiple<br> prefixes.<br> <br> Any help regarding this issue is greatly appreciated.<br> <br> <br> Thanks<br> <br> <br> -- <br> View this message in context: http://www.nabble.com/Problem-evaluating-xpath -with-muliple-prefix-with-different-namespace-tf4036498.html#a11467559<br> Sent from the Xalan - J - Users mailing list archive at Nabble.com.<br> <br> </font></tt> <br>
|
|
 |