xsl-list
[Top] [All Lists]

RE: ClassCastException

2003-12-12 04:26:57
A ClassCastException or any other kind of exception that causes a stack
trace like this, with no user extension functions involved, is prima
facie evidence of a bug in your XSLT processor and should be reported to
your supplier.

Michael Kay


-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
alana(_at_)mastek(_dot_)com
Sent: 11 December 2003 11:07
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] ClassCastException


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.executeChildTempl
ates(Unknown Source) at 
org.apache.xalan.templates.ElemChoose.execute(Unknown Source) 
at 
org.apache.xalan.transformer.TransformerImpl.executeChildTempl
ates(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.executeChildTempl
ates(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.executeChildTempl
ates(Unknown Source) at 
org.apache.xalan.templates.ElemLiteralResult.execute(Unknown 
Source) at 
org.apache.xalan.transformer.TransformerImpl.executeChildTempl
ates(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.executeChildTempl
ates(Unknown Source) at 
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNo
de(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-instructi
on()) + 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



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



<Prev in Thread] Current Thread [Next in Thread>