Reply to your comment re: Space resolution rules

Nikolai,

Thank you for your comment to xsl-editors@w3.org archived at
http://lists.w3.org/Archives/Public/xsl-editors/2002AprJun/0024.html

The WG discussed this and realized that the XSL 1.0 spec's wording
in this area was misleading.  

Informally, the idea is that all conditional space at the beginning
of a reference area up to (but not including) anything other than
conditional space should be suppressed.  Once anything else (whether
an FO or retained space) is encountered, nothing else gets suppressed.

The following is the suggested rewording of the spec to makes this so
(apologies for the markup, but this is literally what we plan to use):

-------
the last two paragraphs in section 4.2.5 should change to:

=====================
<p>An area <var>A</var> <term>begins</term> an area <var>P</var> if
<var>A</var> is a descendant of <var>P</var> and <var>P</var> and 
<var>A</var> have either a block-stacking constraint or an inline-stacking 
constraint, provided that no descendant of <var>P</var> which is an ancestor
of <var>A</var> has a space-before (in the case of a block-stacking 
constraint) or a space-start (in the case of an inline-stacking 
constraint) whose computed minimum, maximum, or optimum values
are nonzero.  In this case the second of the adjacent edges of 
<var>P</var> and <var>A</var> is defined to be a <term>leading 
edge</term> in <var>P</var>. A space-specifier which applies to
the leading edge is also defined to <term>begin</term> <var>P</var>.</p>

<p>Similarly, An area <var>A</var> <term>ends</term> an area
<var>P</var> if <var>A</var> is a descendant of <var>P</var> 
and <var>A</var> and <var>P</var> have either a
block-stacking constraint or an inline-stacking constraint,
provided that no descendant of <var>P</var> which is an ancestor
of <var>A</var> has a space-after (in the case of a block-stacking
constraint) or a space-end (in the case of an inline-stacking constraint)
whose computed minimum, maximum, or optimum values are nonzero.
In this case the first of the adjacent edges of <var>A</var> and 
<var>P</var> is defined to be a <term>trailing edge</term> in 
<var>P</var>. A space-specifier which applies to the trailing 
edge is also defined to <term>end</term> <var>P</var>.</p>
=====================

In addition, in section 4.3.1, the first space-resolution rule should
have additional clarifying sentences and read as follows:

=====================
<item><p>If any of the space-specifiers in <var>S'</var> is conditional,
and begins a reference-area or line-area, then it is <term>suppressed</term>,
which means that its resolved space-specifier is zero. Further, any
conditional space-specifiers which consecutively follow it in the sequence 
are also suppressed.
For purposes of this rule, a space-specifier <var>U</var>
<term>consecutively follows</term> a space-specifier <var>V</var> if it
<var>U</var> follows <var>V</var> and <var>U</var> and <var>V</var> are
separated in the sequence only by conditional space-specifiers and/or
space-specifiers whose computed minimum, maximum, and optimum values are
zero.</p>

<p>If a conditional space-specifier ends a reference-area or line-area,
then it is suppressed together with any other conditional space-specifiers 
which consecutively precede it in the sequence.
For purposes of this rule, a space-specifier <var>U</var>
<term>consecutively precedes </term> a space-specifier <var>V</var> if
it <var>U</var> precedes <var>V</var> and <var>U</var> and <var>V</var>
are separated in
the sequence only by conditional space-specifiers and/or
space-specifiers whose computed minimum, maximum, and optimum values are
zero.
</p></item>
=====================

-------

Please Reply (cc-ing xsl-editors@w3.org) if you wish to make
an objection to our resolution.

Thank you for your interest in XSL.

Paul Grosso for the XSL FO Subgroup of the XSL WG 

Received on Tuesday, 23 July 2002 16:36:16 UTC