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