A need for consistency and precision when referring to "XSL"

Robert & others,

The issue addressed in this post may go some way to help some list members 
understand  why they are having problems understanding parts of the "XSL" 
Candidate Recommendation, which in my view would be better termed as the 
"XSL-FO" CR.

What follows is a slight re-edit of a past post on another list.

***Re-edited quote begins***

This post is a plea for a beginning in consistent use of the term "XSL" in
W3C documents. The current CR stage of XSL-FO and the first WD of XSLT 1.1
give an opportunity to W3C to remove longstanding inconsistent usage and to
introduce coherence and consistency.

For those who have not yet considered the problem let me summarise the
difficulty and inconsistency by the use of two "equations" which summarise
two mutually contradictory positions about what "XSL" is which are taken
(implicitly or explicitly) in the current versions of W3C documents.

To avoid ambiguity I use the term "XSLT" to indicate XSL Transformations and
the term "XSL-FO" to indicate XSL Formatting Objects.

The two equations are:
 1.    XSL = XSLT + XSL-FO (see e.g. Abstract of XSL-FO CR)
 2.   XSL = XSL-FO

Stated as baldly as this I expect to potentially elicit howls of protest 
along the lines
of "Of course XSL is the summation of XSLT and XSL-FO". But the statements
currently present in various W3C documents contradict this assumed clarity
and consistency.

Let me illustrate. .... In the XSLT 1.0 Recommendation of November 1999 it is
stated in the Abstract, "XSLT is also designed to be used independently of
XSL.", a statement which cannot be true if XSL = XSL-FO + XSLT (XSLT cannot
be used independently of "XSL" since XSLT is _part of_ "XSL") and
contradicts, for example, the Abstract of the XSL-FO CR. However the 
statement also
contradicts the position taken earlier in the Abstract of XSLT 1.0: "In
addition to XSLT, XSL includes ....". So, XSLT seems to be "included in" XSL 
but
is also can be used "independent of" it. Something doesn't add up. What is 
happening is that the first part of the preceding sentence refers implicitly 
to equation 1. and the latter part to equation 2.

Thus, in theXSLT 1.0 Recommendation (and repeated verbatim in the XSLT 1.1 
WD) we have the use of both "equations". Which equation is true? Does XSL = 
XSL-FO + XSLT or is XSL = XSL-FO? XSLT 1.0 effectively uses these two mutually
contradictory positions within a few lines of each other.

The same inconsistency also appears in the current XSL-FO CR. As mentioned
above the Abstract indicates unequivocally that XSL includes both XSLT and
XSL-FO. But in Section 2, confusingly labelled "Introduction to XSL
Transformations" it is stated, "The XSL namespace has the URI
http://www.w3.org/1999/XSL/Format.". The placement of a statement about what 
I would call the XSL-FO namespace in a section on XSLT is confusing enough. 
But if, as the Abstract of the CR implicitly states, XSL = XSL-FO + XSLT then 
there are two "XSL" namespaces viz. http:www.w3.org/1999/XSL/Format AND
http://www.w3.org/XSL/Transform, not one as the XSL-FO CR states.

There are many ways of slicing up these inconsistencies but, in my view, they
are founded in the use of "XSL" in the same documents to have two distinct
meanings. Is "XSL" the same as "XSL-FO + XSLT"? Or is "XSL" the same as
"XSL-FO"?

I would suggest that the W3C "XSL" editors ... by which I mean the editors 
for the XSL-FO CR and the new XSLT 1.1 WD need to decide what "XSL" is and 
then use the term precisely and consistently. At present neither precision 
nor consistency is achieved.

I hope these two examples serve to illustrate the ambiguity or inconsistency
of the use of the term "XSL" in current W3C documents. I could, quite
possibly, go on at length about how the inconsistency plays out in various
W3C documents. Rather, I think it is more important to find a solution that
is logical, clear and consistent.

Suffice to say that the inconsistency within XSL/XSL-FO/XSLT specs plays out 
to some degree in other specs too.

My suggestion for how to move toward coherence would be:

1. Confine the generic term "XSL" to situations which refer to XSLFO _and_
XSLT collectively.
2. When referring to XSL Formatting Objects the abbreviation to be used
should be either "XSL-FO" or "XSLFO".
3. When referring to XSL Transformations the abbreviation used should be
"XSL-T" or "XSLT".
4. It should be recognised that there are two "XSL Namespaces". The XSLT
Namespace has a namespace URI of http://www.w3.org/1999/XSL/Transform. The 
XSL-FO Namespace has a namespace URI of http://www.w3.org/1999/XSL/Format.
5. The confusing "indicative prefix" (my term) for those two namespaces
should be corrected/made consistent. I would suggest that the XSLT namespace
use the "indicative prefix" of "xslt" rather than "xsl" i.e. as an example, 
the present
<xsl:stylesheet> element would become <xslt:stylesheet>. Similarly the "fo"
indicative prefix would become "xslfo" i.e. <fo:root> would become
<xslfo:root>.

I would propose that the W3C Core XML Group (do I have the terminology
correct?) review the current inconsistency in terminology across W3C specs 
currently in draft or under revision and give clear, unambiguous guidance on 
which meaning "XSL" has in W3C documents.

<side_issue>
[ With regard to the more specific problem relating to the naming of the
current XSL-FO CR could that not be called the "Extensible Stylesheet
Language Formatting Objects, XSL-FO" Recommendation in due time? And could
another very short "XSL" REC indicate that XSL version 1.0 subsumes the XSLT
REC of November 1999 and the XSL-FO REC, currently at CR stage? Then when
XSLT 1.1 is finalised "XSL 1.1" could be defined as "XSL-FO 1.0" plus "XSLT
1.1"? Just a thought. :) ]
</side_issue>

Consistent usage of the term "XSL" is desirable. With the current fluidity of
a XSL-FO CR and an XSLT 1.1 WD there is an early opportunity for W3C to
introduce consistency where hitherto inconsistent and confusing usage of the
term "XSL" has been rather too visible.

*** Re-edited quote ends ***

Returning to Robert's question about the "fo" namespace and the confusion 
that that term caused him - If my suggestions were adopted we would refer to 
that as the XSL-FO namespace with, in my view, much less ambiguity than a 
supposed but essentially spurious "XSL namespace".

Sorry, to those for which this is pretty hard going. You need to be fairly 
familiar with how the specs use the terms to see that there is a problem. And 
perhaps more familiar to diagnose it and suggest a (hopefully coherent) 
remedy.

I hope that the XSL-editors wil prove responsive to these suggestions. It 
would make teaching some parts of XSL/XSL-FO/XSLT to relative beginners just 
a little bit easier if the "standard" terms were used consistently in the 
definitive documents.

Andrew Watt

Received on Tuesday, 16 January 2001 15:44:44 UTC