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
xalan-j-users@xml.apache.org
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.


Reply via email to