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
bobs@sagehill.net