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 <[EMAIL PROTECTED]>
06/07/2007 11:41 AM
To
[email 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.