[xsl] Understanding Conditionality of Borders

Subject: [xsl] Understanding Conditionality of Borders
From: "W. Eliot Kimber" <eliot@xxxxxxxxxx>
Date: Wed, 27 Feb 2002 08:45:18 -0600
I'm trying to understand border conditionality. The text in the XSL spec
is pretty brief and because of the way the properties are documented it
isn't obvious that these conditions even exist unless you do a close
reading of the spec.

In section 4.3.1, Space-resolution Rules of XSL 1.0 there is this

"The border or padding at the before-edge or after-edge of a block-area
B may be specified as conditional. If so, then it is set to zero if its
associated edge is a leading edge in a reference-area, and the is-first
trait of B is false, or if its associated edge is a trailing edge in a
reference-area, and the is-last trait of B is false. In either of these
cases, the border or padding is taken to be zero for purposes of the
stacking constraint definitions."

It isn't explicit, but given my experience with how
border-width.conditionality="retain" works with XSL Formatter, my
interpretation of the above is that when .conditionality="retain", it
means that if a block spans two areas (e.g., spans a page), then, for
example, the border-after border for that block is "retained" in the
block for which is-last is false (that is, the occurrence before the
page break). The default for conditionality is "discard".

Is this understanding correct?

Given that I probably never would have figured this out on my own had
the folks at Antenna House not put me on to border-width.conditionality,
I would urge the writers of XSL tutorials to include a discussion of
this important but subtle aspect of XSL-FO. 


W. Eliot Kimber, eliot@xxxxxxxxxx
Consultant, ISOGEN International

1016 La Posada Dr., Suite 240
Austin, TX  78752 Phone: 512.656.4139

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

Current Thread