[xsl] Problem with simple xsl:when test expression

Subject: [xsl] Problem with simple xsl:when test expression
From: Phil Mitchell <philip_mitchell@xxxxxxxxxxx>
Date: Tue, 03 Jul 2001 16:09:39 -0400
I am trying to write a test expression for a when clause that will be true when the context node has a child 'restriction' element whose 'base' attribute is "string" -- i.e. <restriction base="string">. I think this clause should simply be:

        <xsl:choose>
	  <xsl:when test="./restriction[@base='string']">
	  </xsl:when>
        </xsl:choose>

But it doesn't seem to work -- it doesn't match. What is wrong with this? Here is the context node:

<simpleType name="MedlarsNameString">
  </annotation>
  <restriction base="string">
  </restriction>
</simpleType>

And here is the stylesheet fragment (slightly edited -- yes, the second choose block is meant to be nested in an otherwise block.):

<xsl:template match="xsd:simpleType">
  <xsl:param name="elementName"/>
   <xsl:choose>
      <xsl:when test="@name='TextBlock'">
       Do this....
      </xsl:when>
      <xsl:otherwise>
        <xsl:choose>
	  <xsl:when test="./restriction[@base='string']">
	  Print here.
           </xsl:when>
        </xsl:choose>
      </xsl:otherwise>
    </xsl:choose>
</xsl:template>



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


Current Thread