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; > >
<?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]