RE: [xsl] problem with tags

Subject: RE: [xsl] problem with tags
From: "Mikael Petterson \(KI/EAB\)" <mikael.petterson@xxxxxxxxxxxx>
Date: Tue, 28 Feb 2006 12:19:02 +0100
Hi,

Current node is dataType.

This is what I do:

 <xsl:when test="boolean">
       ERROR<xsl:value-of select="../@name"/>
     public static final String <xsl:call-template
name="Camel2Underscore">
     <xsl:with-param name="str"
select="../@name"/></xsl:call-template>_ATTR_TYPE = "boolean";
     public static final String <xsl:call-template
name="Camel2Underscore">
     <xsl:with-param name="str" select="../@name"/></xsl:call-template>
= "<xsl:value-of select="../@name"/>";
     public static final boolean    <xsl:call-template
name="Camel2Underscore">
     <xsl:with-param name="str"
select="../@name"/></xsl:call-template>_DEF_VALUE = <xsl:value-of
select="boolean/defaultValue"/>;
     public static final boolean    <xsl:call-template
name="Camel2Underscore">
     <xsl:with-param name="str"
select="../@name"/></xsl:call-template>_MIN_VALUE = false;
     public static final boolean    <xsl:call-template
name="Camel2Underscore">
     <xsl:with-param name="str"
select="../@name"/></xsl:call-template>_MAX_VALUE = true;

     public static final String <xsl:call-template
name="Camel2Underscore">
     <xsl:with-param name="str"
select="../@name"/></xsl:call-template>_MANDATORY = <xsl:choose>
        <!-- Check for <Mandatory> as child for
             <attribute>. If <mandatory> exists attr.
             is mandatory. Otherwise always optional.
             -->
        <xsl:when test="../mandatory">
            <xsl:text>"mandatory";</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>"optional";</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
     public static final String <xsl:call-template
name="Camel2Underscore">
     <xsl:with-param name="str"
select="../@name"/></xsl:call-template>_READWRITE = <xsl:choose>
        <!-- Check for <readOnly> as child for
             <attribute>. If <readOnly> exists attr.
             is readOnly. Otherwise always <readAndWrite>
             -->
          <xsl:when test="../readOnly">
            <xsl:text>"readOnly";</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>"readAndWrite";</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
     public static final String <xsl:call-template
name="Camel2Underscore">
     <xsl:with-param name="str"
select="../@name"/></xsl:call-template>_PERSISTENT= <xsl:choose>
     <!-- Check for <nonPersistent> as child for
             <attribute>. If <nonPersistent> exists attr.
             is false. Otherwise always true.
             -->
          <xsl:when test="../nonPersistent">
            <xsl:text>"false";</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>"true";</xsl:text>
          </xsl:otherwise>
        </xsl:choose>


I still get the same error.

cheers,

//mikael

-----Original Message-----
From: Peter Flynn [mailto:pflynn@xxxxxx]
Sent: den 28 februari 2006 10:29
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] problem with tags

On Tue, 2006-02-28 at 09:19, Mikael Petterson (KI/EAB) wrote:
> Hi,
>
> I am using
>
> <xsl:when test="boolean">
>  <xsl:value-of select="../@name"> <!-- Selects the attribute name in
> xml-->
> <xsl:when>

You don't say what the current node is when this test gets applied, nor
what the other conditions within the xsl:choose are, but assuming that
what you are doing is equivalent to:

  <xsl:template match="dataType">
    <xsl:if test="boolean">
      <xsl:value-of select="../@name"/>
    </xsl:if>
  </xsl:template>

then Saxon correctly returns the attribute value in both cases.

///Peter

>
> I my xml I have the following:
>
> Alt 1
> =====
> <attribute name="averagePow">
>   <description>
>   </description>
>   <noNotification/>
>   <nonPersistent/>
>   <readOnly/>
>   <dataType>
>    <boolean/>
>   </dataType>
> </attribute>
>
> Alt 2
> =====
> <attribute name="cqiAdj">
>   <description>
>   </description>
>   <noNotification/>
>   <nonPersistent/>
>   <readOnly/>
>   <dataType>
>    <boolean>
> 	<defaultValue>false</defaultValue>
>    </boolean>
>   </dataType>
> </attribute>
>
> When I have alt 1 then no attribute name is selected. But it is in alt

> 2.
> Why is this the case? I am using Xalan 2.4.1
>
> cheers,
>
> //mikael

Current Thread