xsl-list
[Top] [All Lists]

Re: [xsl] Conditional xsl:use-attribute-sets

2009-06-01 15:45:28
At 2009-06-01 12:37 -0700, Karl Stubsjoen wrote:
Am I doing something wrong because this is not working:

        <fo:table-row hyphenate="true">
            <xsl:if test="position() mod 2 = 0">
                <xsl:attribute
name="xsl:use-attribute-sets">background-gray</xsl:attribute>
            </xsl:if>

Is that the correct way to call an attribute set conditionally?

Unfortunately, attribute sets cannot be added conditionally. I've wanted to do this myself in the past.

If you change the attribute set to a called template (no other changes), then you can put the call to the template in the if.

Doing so takes away the cumulative nature of attribute sets in an import/include tree, but if that isn't a concern for you, then a called template should do the trick.

So, change:

  <xsl:attribute-set name="my:background-gray">
    <xsl:attribute name="background-color">#dddddd</
    <xsl:attribute name="border">#222222</
  </xsl:attribute-set>

to:

  <xsl:template name="my:background-gray">
    <xsl:attribute name="background-color">#dddddd</
    <xsl:attribute name="border">#222222</
  </xsl:template>

and use:

   <fo:table-row hyphenate="true">
      <xsl:if test="position() mod 2 = 0">
        <xsl:call-template name="my-background-gray"/>
      </xsl:if>
   ....

I hope this helps.

. . . . . . . . . . . . . Ken


--
XSLT/XSL-FO/XQuery hands-on training - Los Angeles, USA 2009-06-08
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video lesson:    http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
Video overview:  http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
G. Ken Holman                 mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

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