XSL PR - border-collapse="collapse-with-precedence"

The new XSL PR spec defines two collapsing border modes -- 
border-collapse="collapse" and "collapse-with-precedence".
This change seems nice, but I have still a few questions.

In [6.7.10 fo:table-cell]:

    If the value of the border-collapse trait is 
    "collapse-with-precedence" the border for each side of the cell is 
    determined by, for each segment of a border, selecting, from all 
    border specifications for that segment, the border that has the 
    highest precedence. It is an error if there are two such borders 
    that have the same precedence but are not identical.

It is not very clear when one border has border-style="none" (default) 
and the other border on the same segment is not "none".

For example:

<fo:table border-collapse="collapse-with-precedence">
  <fo:table-body>
    <fo:table-row border-before-style="solid">
      <fo:table-cell>
        <fo:block>This cell has no border but the row has border-before
        </fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-body>
</fo:table>

Is the border-before on the table-row discarded? The table-cell's border 
precedence is higher than the table-row's (the initial value of border 
precedence is fo:table-cell: 4, fo:table-row: 3), and the "none" border 
on the table-cell wins?

Another example:

<fo:table border-collapse="collapse-with-precedence">
  <fo:table-body>
    <fo:table-row>
      <fo:table-cell>
        <fo:block>This cell has no border</fo:block>
      </fo:table-cell>
      <fo:table-cell border-start-style="solid">
        <fo:block>This cell has border-start</fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-body>
</fo:table>

Is this an error? The border between two cells has conflict -- the first 
cell has border-end-style="none" (default) and the second cell has 
border-start-style="solid", and both have the same precedence.

I think that the "none" border should always have lowest priority.

In addition, IMHO, the sentence "It is an error if there are two such 
borders that have the same precedence but are not identical" should be 
corrected as follows: If there are two such borders that have the same 
precedence but are not identical, the border is determined by the rules 
same as border-collapse="collapse", i.e., "narrow borders are discarded 
in favor of wider ones." etc.


One more question.
Why the border precedence properties do not apply to the fo:table-column?
In [7.26.1 "border-after-precedence"] etc.:

    Initial:    fo:table: 5, fo:table-cell: 4, fo:table-row: 3, 
                fo:table-body: 2, fo:table-header: 1, fo:table-footer: 0

    Applies to: fo:table, fo:table-body, fo:table-header, 
                fo:table-footer, fo:table-row, fo:table-cell

fo:table-column is missing!  I believe this is an error of the spec.

----
Shinyu Murakami
Antenna House XSL Formatter team

Received on Wednesday, 19 September 2001 10:42:34 UTC