xsl-list
[Top] [All Lists]

Why is apply-templates not called?

2002-12-09 18:35:45
I suspect I'm going to expose a fundamental misunderstanding of how XSLT
works, but here goes...

Using the following script snippet, both <Color> elements are output
correctly:

<xsl:template match="jdf:ColorantControl">
  <ProcessColorMap>
    <xsl:for-each select="jdf:ColorPool/jdf:Color[(@Name='Cyan') or
(@Name='Yellow') or (@Name='Magenta') or (@Name='Black')]">
      <Color
       colorName="{(_at_)Name}"
      >
      </Color>
    </xsl:for-each>
  </ProcessColorMap>
  <SpotColorMap>
    <xsl:for-each select="jdf:ColorPool/jdf:Color[not((@Name='Cyan') or
(@Name='Yellow') or (@Name='Magenta') or (@Name='Black'))]">
      <Color
         colorName="{(_at_)Name}"
      >
      </Color>
    </xsl:for-each>
  </SpotColorMap>
</xsl:template>

This approach works, but contains duplicate XML.  What I'd like to do is put
this common XML in another template, so I would have:

...
<SpotColorMap>
    <xsl:for-each select="jdf:ColorPool/jdf:Color[not((@Name='Cyan') or
(@Name='Yellow') or (@Name='Magenta') or (@Name='Black'))]">
       <xsl:apply-templates/>
    </xsl:for-each>
  </SpotColorMap>
...

<xsl:template match="jdf:Color">
      <Color
         colorName="{(_at_)Name}"
      >
      </Color>
</xsl:template>


But she no work!

I'm using instant Saxon 6.5.2

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



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