Created from a draft of: Mon Nov 17 14:17:09 EST 2003
Copyright © 2004 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
The XSL Specification has been produced by the XSL Working Group as part of the Style activity of the W3C.
This document lists the known errata to the XSL 1.0 specification. Each entry has the following information:
Please send general comments about this document to the public mailing list xsl-editors@w3.org. An archive is available at http://lists.w3.org/Archives/Public/xsl-editors/.
Add:
the following sentence to the end of the first paragraph after the first note:
The expanded-name of extension elements must have a non-null namespace URI.
Replace:
the last two paragraphs
with
An area A begins an area P if A is a descendant of P and P and A have either a block-stacking constraint or an inline-stacking constraint, provided that no descendant of P which is an ancestor of A 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 P and A is defined to be a leading edge in P. A space-specifier which applies to the leading edge is also defined to begin P.
Similarly, An area A ends an area P if A is a descendant of P and A and P have either a block-stacking constraint or an inline-stacking constraint, provided that no descendant of P which is an ancestor of A 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 A and P is defined to be a trailing edge in P. A space-specifier which applies to the trailing edge is also defined to end P.
Replace:
the text for space-resolution rule 1.
with
If any of the space-specifiers in S' is conditional, and begins a reference-area or line-area, then it is suppressed, 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 U consecutively follows a space-specifier V if it U follows V and U and V are separated in the sequence only by conditional space-specifiers and/or space-specifiers whose computed minimum, maximum, and optimum values are zero.
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 U consecutively precedes a space-specifier V if it U precedes V and U and V are separated in the sequence only by conditional space-specifiers and/or space-specifiers whose computed minimum, maximum, and optimum values are zero.
Add:
a paragraph to the note below the first figure:
See also section 5.3.2 for how the margin properties affect the indents.
Replace:
the text of item 4
with
Forced line-breaks are respected. Specifically, if C is a descendant of F, and C is a fo:character whose Unicode character is U+000A, and A is the area generated by C, then either C is a child of F and A is the last area in a subset Si, or C is a descendant of a child C' of F, and A ends (in the sense of 4.2.5) an area A' returned by C', such that A' is the last area in a subset Si.
Replace:
the text of item 5
with
The partition follows the ordering of the area tree, except for certain glyph substitutions and deletions. Specifically, if B1, B2, ..., Bp are the normal child areas of the area or areas returned by F, (ordered in the pre-order traversal order of the area tree), then there is a one-to-one correspondence between these child areas and the partition subsets (i.e. n = p), and for each i,
· Si consists of a single block-area and Bi is that block-area, or
· Si consists of inline-areas and Bi is a line-area whose child areas are the same as the inline-areas in Si, and in the same order, except that where the rules of the language and script in effect call for glyph-areas to be substituted, inserted, or deleted, then the substituted or inserted glyph-areas appear in the area tree in the corresponding place, and the deleted glyph-areas do not appear in the area tree. For example, insertions and substitutions may occur because of addition of hyphens or spelling changes due to hyphenation, or glyph image construction from syllabification, or ligature formation. Deletions occur as specified in (6.), below.
Add:
item 6
white-space-treatment is enforced. In particular, deletions in (5.) occur when there is a glyph area G such that
(a.) the white-space-treatment of G is "ignore" and the character of G is classified as white space in XML; or
(b.) the white-space-treatment of G is "ignore-if-before-linefeed" or "ignore-if-surrounding-linefeed", the suppress-at-line-break of G is "suppress", and G would end a line-area; or
(c.) the white-space-treatment of G is "ignore-if-after-linefeed" or "ignore-if-surrounding-linefeed", the suppress-at-line-break of G is "suppress", and G would begin a line-area.
In these cases the area G is deleted; this may cause the condition in clauses (b.) or (c.) to become true and lead to further deletions.
Replace:
in the third paragraph "the normal and/or anchor inline-areas returned by the child formatting objects,"
with
"the normal and/or anchor inline-areas and normal block-areas returned by the child formatting objects,"
Add:
a link from "computed value" in the first sentence of the function definition to "5.1 Specified, Computed, and Actual Values, and Inheritance".
Add:
at the end of the function description:
Similarly, if the argument specifies a property of a compound datatype and if the expression only consists of the from-nearest-specified-value function with an argument matching the property being computed, it is interpreted as an expansion with each component of the compound property having a valye of from-nearest-specified-value with an argument matching the component. It is an error if arguments matching a property of a compound datatype are used in any other way.
Add:
at the end of the function description:
Similarly, if the argument specifies a property of a compound datatype and if the expression only consists of the from-parent function with an argument matching the property being computed, it is interpreted as an expansion with each component of the compound property having a valye of from-parent with an argument matching the component. It is an error if arguments matching a property of a compound datatype are used in any other way.
Add:
at the end of the function description:
If the argument specifies a shorthand property and if the expression only consists of the from-table-column function with an argument matching the property being computed, it is interpreted as an expansion of the shorthand with each property into which the shorthand expands, each having a value of from-table-column with an argument matching the property. It is an error if arguments matching a shorthand property are used in any other way. Similarly, if the argument specifies a property of a compound datatype and if the expression only consists of the from-table-column function with an argument matching the property being computed, it is interpreted as an expansion with each component of the compound property having a valye of from-table-column with an argument matching the component. It is an error if arguments matching a property of a compound datatype are used in any other way.
Add:
at the end of the function description:
If the argument specifies a shorthand property and if the expression only consists of the inherited-property-value function with an argument matching the property being computed, it is interpreted as an expansion of the shorthand with each property into which the shorthand expands, each having a value of inherited-property-value with an argument matching the property. It is an error if arguments matching a shorthand property are used in any other way. Similarly, if the argument specifies a property of a compound datatype and if the expression only consists of the inherited-property-value function with an argument matching the property being computed, it is interpreted as an expansion with each component of the compound property having a valye of inherited-property-value with an argument matching the component. It is an error if arguments matching a property of a compound datatype are used in any other way.
Add:
at the end of the function description:
If the argument specifies a shorthand property and if the expression only consists of the merge-property-values function with an argument matching the property being computed, it is interpreted as an expansion of the shorthand with each property into which the shorthand expands, each having a value of merge-property-values with an argument matching the property. It is an error if arguments matching a shorthand property are used in any other way. Similarly, if the argument specifies a property of a compound datatype and if the expression only consists of the merge-property-values function with an argument matching the property being computed, it is interpreted as an expansion with each component of the compound property having a valye of merge-property-values with an argument matching the component. It is an error if arguments matching a property of a compound datatype are used in any other way.
Add:
a note at the end of the definition of <string>:
NOTE:
Given the allowable Expression Value Conversions (section 5.9.12), a property value of type <string> must be a quoted value, an NCName, or a expression that evaluates to a <string>; anything else (e.g., an integer) is an error. An implementation may recover from this error by treating the unevaluated property value as a string.
Replace:
the definition of the <language> datatype
with
A string of characters conforming to either a [ISO639-2] 3-letter terminology or bibliographic code or a [ISO639] 2-letter code representing the name of a language.
Add:
a definition for the following datatype:
"rect (" <top> <right> <bottom> <left> ")" where <top>, <bottom> <right>, and <left> specify offsets from the respective sides of the content rectangle of the area.
<top>, <right>, <bottom>, and <left> may either have a <length> value or 'auto'. Negative lengths are permitted. The value 'auto' means that a given edge of the clipping region will be the same as the edge of the content rectangle of the area (i.e., 'auto' means the same as '0pt'.)
Add:
valid in accordance with production [2] of XML. For example, "c" or "∂".
Add:
in the second paragraph, after the second note, before "The formulae...":
The computed value of the of the absolute "margin" property is determined by the CSS descriptions of the properties and the relevant sections (in particular section 10.3) of the CSS Recommendation referenced by these properties.
Add:
a section 5.4.6:
A value being a 2-letter code in conformance with [ISO639] is converted to the corresponding 3-letter [ISO639-2] terminology code, a 3-letter code in conformance with [ISO639-2] bibliographic code is converted to the corresponding 3-letter terminology code, a value of 'none' or 'mul' is converted to 'und'.
Replace:
"formatting" in the third sentence of the 5th paragraph
with
area tree generation
Add:
after the first paragraph
NOTE:
The expression language supports operations on a limited set of datatypes. These do not include <angle>, <time>, and <frequency>. Values of these datatypes must be strings in the expression language. The definition of these datatypes specify the allowed form of these strings.
Replace:
in list item 1, first bullet, the full stop and the sentence "In XSL this is assumed to be 0.28mm [approximately 1/90"] for print, desktop computer monitors, and hand-held devices viewed at normal viewing distances."
with
"or superceding errata."
Replace:
"normal-sequence-reference-areas" in the first paragraph in "Areas:"
with
normal-flow-reference-areas
Add:
a paragraph to the "Areas" section:
The page-viewport-areas identify one of the sides as a page binding edge. This recommendation does not specify the mechanism for selecting which side is the page binding edge.
NOTE:
If the User Agent can determine that the result is to be bound, then the page binding edge of any given page is the edge on which that page is intended to be bound.
Commonly the page binding edge of a page with an odd ordinal is the start-edge of that page and the binding-edge of a page with an even ordinal is the end-edge of that page.
The binding can be a simple as stapling or may be as complex as producing a book using an imposition scheme.
Replace:
in XSL stylesheet: <fo:external-graphic src="{@image}"/>
with
<fo:external-graphic src="'url({@image})'"/>
Replace:
fo: element and attribute tree: <fo:external-graphic src="TH0317A.jpg"/>
with
<fo:external-graphic src="'url(TH0317A.jpg)'"/>
Replace:
in the "Areas:" portion "returns these areas, any page-level-out-of-line areas, and any reference-level-out-of-line areas returned by the children"
with
"returns these areas, together with any normal block-areas, page-level-out-of-line areas, and reference-level-out-of-line areas returned by the children"
Replace:
in the "Areas:" portion "returns these areas, any page-level-out-of-line areas, and any reference-level-out-of-line areas returned by the children"
with
"returns these areas, together with any normal block-areas, page-level-out-of-line areas, and reference-level-out-of-line areas returned by the children"
Replace:
the xsl:otherwise element in the XSL stylesheet
with
<xsl:choose> <xsl:when test="@valign='top'"> <xsl:attribute name="display-align">before</xsl:attribute> </xsl:when> <xsl:when test="@valign='bottom'"> <xsl:attribute name="display-align">after</xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:attribute name="display-align">before</xsl:attribute> </xsl:otherwise>
Replace:
the value "top" of the display-align property for the first table cell in the Result Instance
with
before
Replace:
the last paragraph and the last note under "Constraints"
with
It is an error if two table-cells overlap or if a table-cell would extend beyond the current table row group (i.e., the current table-body, table-header, or table-footer).
NOTE:
Such overlap could be due to the same column-number being assigned to two different cells in the same row, or due to column or row spanning causing an overlap. A table-cell might extend beyond the current table row group by having a number-columns-spanned or number-rows-spanned value that is larger than the remaining number of columns or rows in the spanned direction.
Replace:
in the "Areas:" portion "returns these areas, any page-level-out-of-line areas, and any reference-level-out-of-line areas returned by the children"
with
"returns these areas, together with any normal block-areas, page-level-out-of-line areas, and reference-level-out-of-line areas returned by the children"
Replace:
the value label <integer>.
with
<number>
Add:
to the definition of the value:
If a zero, negative, or non-integer value is provided, the value will be rounded to the nearest integer value greater than or equal to 1.
Replace:
the definitions of the property values
with
Any glyph-area whose Unicode character is classified as white space in XML, except for U+000A, shall be deleted during line-building and inline-building (see 4.1.6 and 4.2.6).
Any glyph-area whose Unicode character is classified as white space in XML shall not be deleted during line-building and inline-building.
Any glyph-area with a suppress-at-line-break value of 'suppress' shall be deleted during line-building and inline-building if it would be the last glyph-area descendant of a line-area.
Any glyph-area with a suppress-at-line-break value of 'suppress' shall be deleted during line-building and inline-building if it would be the first glyph-area descendant of a line-area.
Any glyph-area with a suppress-at-line-break value of 'suppress' shall be deleted during line-building and inline-building if it would be the first or last glyph-area descendant of a line-area.
Replace:
Specifies the code point of the Unicode character to be presented.
with
Specifies the Unicode character to be presented.
Replace:
the definition of the "suppress" value
with
The glyph area generated by the fo:character is eligible to be suppressed at the start or end of a line-area depending on the white-space-treatement property. (q.v.)
Replace:
the definition of the "retain" value
with
The glyph area generated by the fo:character shall be placed in the area tree whether or not it first or last in a line-area.
Add:
at the end of the first paragraph:
The normative "applies to" information in XSL is given with the formatting objects instead of with the formatting properties.
Add:
after the current text a new paragraph:
If there is no ancestral fo:list-block, the value used for the provisional-label-separation and provisional-distance-between-starts in the above formula shall be equal to inherited-property-value(provisional-label-separation) and inherited-property-value(provisional-distance-between-starts) respectively of the FO in which the body-start() function is evaluated.
Add:
after the current text a new paragraph:
If there is no ancestral fo:list-block, the value used for the provisional-distance-between-starts in the above formula shall be equal to inherited-property-value(provisional-distance-between-starts) of the FO in which the body-start() function is evaluated.
Replace:
in sentence starting "In bicameral scripts", replace "(font size divided by x-height)"
with
"(x-height divided by font size)"
Add:
after the definition of the variable "y"
a = aspect value of first-choice font
Replace:
the definition of the <language> value
with
A 3-letter code conforming to a [ISO639-2] terminology or bibliographic code or a 2-letter code conforming to a [ISO639] 2-letter code.
Replace:
the last paragraph
with
NOTE:
ISO 639 2-letter and ISO 639-2 terminology 3-letter codes are also used in the language component of [RFC3066], but user-defined and IANA registered language codes that are allowed in RFC 3066 are not allowed as the value of this property.