Arved,

Firstly, thanks for taking the trouble to do this.  Your diagrams make 
your argument beautifully clear, and facilitate discussion for everyone, 
even XSL spec novices.  Even me, who struggles to follow text-only 
arguments.  I haven't followed all of the posting yet, but one question 
has come up for me already.

Look at

<basic-link>a paragraph of text <block>with a block</block> and more 
text</basic-link>

What about the restriction that a given area's children must all be of 
the one type (4.2.1 Area Types)?  Doesn't that oblige us to wrap the 
block within an inline?  Then that inline wrapper can sit in sequence 
with the inline-areas 't', 'e', 'x', 't', ' ', as indeed the basic-link 
inline-area already sits in sequence with 'S','o','m','e',' 
','t','e','x','t',' '?

What's your take on this?

N.B.  I have attached the SVG generated by Dia.  I don't know what the 
quality is like, but if the quality of the generated PNG is anything to 
go by, probably not too good.  If we can all get access to a reasonable 
SVG vector editor that will write PNGs, we will be able to pass the 
editable file around as well, which will greatly facilitate this sort of 
discussion.  Any candidates for a linux-enabled SVG editor?

Peter

Arved Sandstrom wrote:
...

>a) There are no block-level children of the top block, only inlines, so we
>know that the one or more block areas generated by the top-level block are
>going to contain line areas. Because of the page break there are 2 normal
>block areas generated by the top-level block;
>
>b) "some text" is simple - the inline goes neatly into the first line area
>as its first child;
>
>c) Now we hit the basic link. This generates one or more normal inlines,
>which are outlined in orange. The "a paragraph of text" is the first inline
>child of the first normal inline area generated by the basic-link;
>
>d) we hit the nested block. OK, this is where the anguish starts. :-) It
>produces at least one normal block area, by definition. I have given this a
>pale green background. This _cannot_ occupy the first normal inline area
>generated by the basic-link, because that already contains an inline area
>(rule 1). So it must be in a second normal inline area generated by the
>basic-link. By rule 3, the first line area may not contain 2 areas generated
>by the same inline, so that's why we terminate line aea 1 and start another;
>  
>

PNG image

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000802//EN" 
"http://www.w3.org/TR/2000/CR-SVG-20000802/DTD/svg-20000802.dtd";>
<svg width="23cm" height="11cm" viewBox="1 1 23 11">
  <text style="fill: #000000; text-align: center; font-size: 0.8" x="10.75" 
y="2">outer block line-area</text>
  <text style="fill: #000000; text-align: center; font-size: 0.8" x="12.75" 
y="11.25">basic-link inline-area</text>
  <text style="fill: #000000; text-align: center; font-size: 0.8" x="5.5" 
y="10.25">glyph inline-areas</text>
  <text style="fill: #000000; text-align: center; font-size: 0.8" x="21" y="11">inline 
inline-area</text>
  <text style="fill: #000000; text-align: center; font-size: 0.8" x="20.25" 
y="2">inner block block-area</text>
  <rect style="fill: #ffffff" x="2" y="3.75" width="22" height="4.5"/>
  <rect style="stroke-width: 0.1; stroke: #0600ff" x="2" y="3.75" width="22" 
height="4.5"/>
  <rect style="fill: #ffffff" x="7.75" y="4.25" width="15.5" height="3.5"/>
  <rect style="stroke-width: 0.1; stroke: #f06500" x="7.75" y="4.25" width="15.5" 
height="3.5"/>
  <rect style="fill: #ffffff" x="6.5" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="6.5" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="6.75" y="6.25"/>
  <rect style="fill: #ffffff" x="2.75" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="2.75" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="3" 
y="6.25">S</text>
  <rect style="fill: #ffffff" x="3.5" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="3.5" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="3.75" 
y="6.25">o</text>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="4.5" 
y="6.25">...</text>
  <rect style="fill: #ffffff" x="5" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="5" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="5.25" 
y="6.25">x</text>
  <rect style="fill: #ffffff" x="5.75" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="5.75" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="6" 
y="6.25">t</text>
  <rect style="fill: #ffffff" x="14.25" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="14.25" y="5.5" width="0.5" 
height="1"/>
  <rect style="fill: #ffffff" x="8.25" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="8.25" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="8.5" 
y="6.25">a</text>
  <rect style="fill: #ffffff" x="11.25" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="11.25" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="11.5" 
y="6.25">r</text>
  <rect style="fill: #ffffff" x="10.5" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="10.5" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="10.75" 
y="6.25">a</text>
  <rect style="fill: #ffffff" x="9.75" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="9.75" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="10" 
y="6.25">p</text>
  <rect style="fill: #ffffff" x="9" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="9" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="9.25" y="6.25"/>
  <rect style="fill: #ffffff" x="12" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="12" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="12.25" 
y="6.25">a</text>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="13" 
y="6.25">...</text>
  <rect style="fill: #ffffff" x="13.5" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="13.5" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="13.75" 
y="6.25">x</text>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="14.5" 
y="6.25">t</text>
  <rect style="fill: #ffffff" x="15" y="5.5" width="0.5" height="1"/>
  <rect style="stroke-width: 0.08; stroke: #000000" x="15" y="5.5" width="0.5" 
height="1"/>
  <text style="fill: #000000; text-align: center; font-size: 0.7" x="15.25" y="6.25"/>
  <rect style="fill: #ffffff" x="16" y="4.5" width="6" height="3"/>
  <rect style="stroke-width: 0.1; stroke: #ea191c" x="16" y="4.5" width="6" 
height="3"/>
  <rect style="fill: #ffffff" x="16.5" y="5" width="5" height="2"/>
  <rect style="stroke-width: 0.1; stroke: #26be0c" x="16.5" y="5" width="5" 
height="2"/>
  <text style="fill: #000000; text-align: center; font-size: 0.8" x="19" 
y="6.25">Block details</text>
  <text style="fill: #000000; text-align: center; font-size: 0.8" x="22.75" 
y="6.25">.....</text>
  <line style="stroke-width: 0.1; stroke: #000000" x1="13" y1="2.25" x2="13" 
y2="3.75"/>
  <polygon style="fill: #ffffff" points="12.75,3.15 13,3.75 13.25,3.15 "/>
  <polygon style="stroke-width: 0.1; stroke: #000000" points="12.75,3.15 13,3.75 
13.25,3.15 "/>
  <line style="stroke-width: 0.1; stroke: #000000" x1="6.5" y1="9.25" x2="10" 
y2="6.5"/>
  <polygon style="fill: #ffffff" points="9.68266,7.06727 10,6.5 9.37375,6.67411 "/>
  <polygon style="stroke-width: 0.1; stroke: #000000" points="9.68266,7.06727 10,6.5 
9.37375,6.67411 "/>
  <line style="stroke-width: 0.1; stroke: #000000" x1="20.75" y1="2.75" x2="19" 
y2="5"/>
  <polygon style="fill: #ffffff" points="19.171,4.3729 19,5 19.5657,4.67987 "/>
  <polygon style="stroke-width: 0.1; stroke: #000000" points="19.171,4.3729 19,5 
19.5657,4.67987 "/>
  <line style="stroke-width: 0.1; stroke: #000000" x1="13" y1="10" x2="15.5" 
y2="7.75"/>
  <polygon style="fill: #ffffff" points="15.2213,8.3372 15.5,7.75 14.8868,7.96556 "/>
  <polygon style="stroke-width: 0.1; stroke: #000000" points="15.2213,8.3372 15.5,7.75 
14.8868,7.96556 "/>
  <line style="stroke-width: 0.1; stroke: #000000" x1="19" y1="10" x2="19" y2="7.5"/>
  <polygon style="fill: #ffffff" points="19.25,8.1 19,7.5 18.75,8.1 "/>
  <polygon style="stroke-width: 0.1; stroke: #000000" points="19.25,8.1 19,7.5 
18.75,8.1 "/>
  <line style="stroke-width: 0.1; stroke: #000000" x1="5.25" y1="9.25" x2="3.75" 
y2="6.5"/>
  <polygon style="fill: #ffffff" points="4.25679,6.90702 3.75,6.5 3.81784,7.14645 "/>
  <polygon style="stroke-width: 0.1; stroke: #000000" points="4.25679,6.90702 3.75,6.5 
3.81784,7.14645 "/>
</svg>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to