Hi,
An attribute-set's attributes are evaluated for each instance of it being 
applied, so you can add xsl:choose to the body of xsl:attribute.  You just need 
to make sure each case returns a valid value so you don't get empty attributes, 
something like this:

<xsl:attribute-set name="section.level1.properties">
  <xsl:attribute name="break-before">
    <xsl:choose>
      <xsl:when test="@role = 'nobrk'">auto</xsl:when>
      <xsl:otherwise>page</xsl:otherwise>
    </xsl:choose>
  </xsl:attribute>
</xsl:attribute-set>

You cannot have it skip the attribute, but you can change its value to the 
default "auto"

Bob Stayton
Sagehill Enterprises
[email protected]


  ----- Original Message ----- 
  From: [email protected] 
  To: [email protected] 
  Sent: Thursday, June 23, 2011 10:57 AM
  Subject: [docbook-apps] Attribute set override. 




  I have a situation where I have an attribute-set in my fo custom layer. 

  <xsl:attribute-set name="section.level1.properties">
    <xsl:attribute name="break-before">page</xsl:attribute>
  </xsl:attribute-set>

  Now the situation is a need to override this behavior in certain instances. 
  I have added an attribute to certain sect1 elements, role="nobrk" where I 
want to override this behavior. 

  My question is how do go about setting up the stylesheets to skip or ignore 
the break-before attribute for the certain elements designated as nobrk. 

  I am guessing something like : 

  <xsl:template match="sect1[@role='nobrk']">
    <fo:block xsl:use-attribute-sets="section.level1.properties">
         ...

  but am stumped as to how to get it to ignore the break-before override?
  Any suggestions would be most welcome!
  Thanks!
  /Gregorio

Reply via email to