[xsl] ClassCastException

Subject: [xsl] ClassCastException
From: alana@xxxxxxxxxx
Date: Thu, 11 Dec 2003 16:37:05 +0530
why do i get the exception.....the node.xsl file is pasted below
************************************************************************************
//XML
<DATA>
<component id="description_of_plates" type="question">
                <property id="label">
                    <value>Description of Plates:</value>
                </property>
                <property id="help"/>
                <property id="tooltip"/>
                <property id="format">
                    <value>textbox</value>
                </property>
                <property id="cid"></property>
                <component id="description_of_plates" type="answer">
                    <property id="ans">
                        <value></value>
                    </property>
                </component>
            </component>

</DATA>


************************************************************************************
//XSL
<xsl:call-template name="getvalue2">
	<xsl:with-param name="nodew">
          /DATA/component/<xsl:value-of select="$reqnode"/>
      </xsl:with-param>
 	<xsl:with-param name="selectid">ans</xsl:with-param>
      <xsl:with-param name="attr"><xsl:value-of select="."/></xsl:with-param>
</xsl:call-template>


<xsl:template name="getvalue2" >
        <xsl:param name="nodew"/>
        <xsl:param name="selectid"/>
        <xsl:param name="attr"/>
        <xsl:value-of select="$nodew"/>
        <xsl:call-template name="node:xpath">
	        <xsl:with-param name="node" >
                <xsl:value-of select="$nodew"/>
                </xsl:with-param>
	  </xsl:call-template>
</xsl:template>
************************************************************************************


This code gives the following error

java.lang.ClassCastException; SystemID: http://127.0.0.1:9999/liberty/xsl/node.xsl; Line#: 17; Column#: 61 javax.xml.transform.TransformerException:j
 ava.lang.ClassCastException at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Unknown Source) at org.apache.xalan.templates.ElemChoose.execute(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Unknown Source) at org.apache.xalan.templates.ElemTemplate.execute(Unknown Source) at org.apache.xalan.templates.ElemCallTemplate.execute(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Unknown Source) at org.apache.xalan.templates.ElemTemplate.execute(Unknown Source) at org.apache.xalan.templates.ElemCallTemplate.execute(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Unknown Source) at org.apache.xalan.templates.ElemLiteralResult.execute(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Unknown Source) at org.apache.xalan.templates.ElemLiteralResult.execute(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Unknown Source) at org.apache.xalan.templates.ElemLiteralResult.execute(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Unknown Source)


******************************************************************************
node.xsl
<?xml version="1.0"?>

<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
	xmlns:node="http://xsltsl.org/node";
	>



  <xsl:template name="node:xpath">
    <xsl:param name="node" select="."/>

    <xsl:choose>

      <xsl:when test="$node">

        <xsl:for-each select="$node[1]/ancestor-or-self::*">
          <xsl:text/>/<xsl:value-of select="name()"/>
          <xsl:text/>[<xsl:value-of select="count(preceding-sibling::*[name() = name(current())]) + 1"/>]<xsl:text/>
        </xsl:for-each>

        <xsl:choose>

          <xsl:when test="$node[1]/self::comment()">
            <xsl:text>/comment()</xsl:text>
            <xsl:text/>[<xsl:value-of select="count($node[1]/preceding-sibling::comment()) + 1" />]<xsl:text/>
          </xsl:when>

          <xsl:when test="$node[1]/self::processing-instruction()">
            <xsl:text>/processing-instruction()</xsl:text>
            <xsl:text/>[<xsl:value-of select="count($node[1]/preceding-sibling::processing-instruction()) + 1" />]<xsl:text/>
          </xsl:when>

          <xsl:when test="$node[1]/self::text()">
            <xsl:text>/text()</xsl:text>
            <xsl:text/>[<xsl:value-of select="count($node[1]/preceding-sibling::text()) + 1" />]<xsl:text/>
          </xsl:when>

          <xsl:when test="not($node[1]/..)">
            <xsl:text>/</xsl:text>
          </xsl:when>

          <xsl:when test="count($node[1]/../namespace::* | $node[1]) = count($node[1]/../namespace::*)">
            <xsl:text/>/namespace::<xsl:value-of select="name($node[1])" />
          </xsl:when>

          <xsl:when test="count($node[1]/../@* | $node[1]) = count($node[1]/../@*)">
            <xsl:text/>/@<xsl:value-of select="name($node[1])" />
          </xsl:when>

        </xsl:choose>      
      </xsl:when>

      <xsl:otherwise>
        <xsl:text>/..</xsl:text>
      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>



  <xsl:template name="node:type">
    <xsl:param name="node" select="."/>

    <xsl:choose>
      <xsl:when test="not($node)"/>
      <xsl:when test="$node[1]/self::*">
	<xsl:text>element</xsl:text>
      </xsl:when>
      <xsl:when test="$node[1]/self::text()">
	<xsl:text>text</xsl:text>
      </xsl:when>
      <xsl:when test="$node[1]/self::comment()">
	<xsl:text>comment</xsl:text>
      </xsl:when>
      <xsl:when test="$node[1]/self::processing-instruction()">
	<xsl:text>processing instruction</xsl:text>
      </xsl:when>
      <xsl:when test="not($node[1]/parent::*)">
        <xsl:text>root</xsl:text>
      </xsl:when>
      <xsl:when test="count($node[1] | $node[1]/../namespace::*) = count($node[1]/../namespace::*)">
        <xsl:text>namespace</xsl:text>
      </xsl:when>
      <xsl:when test="count($node[1] | $node[1]/../@*) = count($node[1]/../@*)">
        <xsl:text>attribute</xsl:text>
      </xsl:when>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>
****************************************************************************************************

--


MASTEK
"Making a valuable difference"
Mastek in NASSCOM's 'India Top 20' Software Service Exporters List.
In the US, we're called MAJESCO

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Opinions expressed in this e-mail are those of the individual and not that of Mastek Limited, unless specifically indicated to that effect. Mastek Limited does not accept any responsibility or liability for it. This e-mail and attachments (if any) transmitted with it are confidential and/or privileged and solely for the use of the intended person or entity to which it is addressed. Any review, re-transmission, dissemination or other use of or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. This e-mail and its attachments have been scanned for the presence of computer viruses. It is the responsibility of the recipient to run the virus check on e-mails and attachments before opening them. If you have received this e-mail in error, kindly delete this e-mail from all computers.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread