1

Whilst working on a personal project, I discovered the existence of an old version of the XSLT specification, identified by the namespace http://www.w3.org/TR/WD-xsl instead of the modern https://www.w3.org/1999/XSL/Transform.

According to this answer on Stack Overflow, this refers to the IE4 implementation of a working draft of the XSLT specification. This implementation differed substantially from the final version and is not compatible.

So that people dealing with this would not have to write XSLT to convert WD-xsl into conforming XSLT, apparently Microsoft wrote a tool to aid the transition. But I can barely find any information at all that isn't just people complaining about WD-xsl.

What information about WD-xsl is there available? A schema? The version of the spec the IE4 team used to implement it? The possibly-fictional tool to convert it into compliant XSLT?

3

WD-xsl is still available as a working draft specification on the W3C site. It appears to be a proto-XSLT/XSLT-FO, with many features, including their names, still in flux; the biggest issue that I see with it is that there's a lot of underspecification. For example, in the draft ("2.7.6 Processing with Template Rules"):

In the absence of a select attribute, the xsl:apply-templates instruction processes all of the children of the current node, including text nodes. However, text nodes that have been stripped as specified in Section 2.4.8: Whitespace Stripping will not be processed.

Ed. Note: There is no WG consensus on the use xsl:apply-templates without a select attribute to process all children of a node.

Compare with the XSLT 1.0 wording ("5.4 Applying Template Rules"):

In the absence of a select attribute, the xsl:apply-templates instruction processes all of the children of the current node, including text nodes. However, text nodes that have been stripped as specified in [3.4 Whitespace Stripping] will not be processed. If stripping of whitespace nodes has not been enabled for an element, then all whitespace in the content of the element will be processed as text, and thus whitespace between child elements will count in determining the position of a child element as returned by the position function.

I didn't do a comprehensive check of the whole document, but it's extremely similar to the final XSLT/XSLT-FO 1.0 documents: my guess is the conversion tool did some mechanical changes to renamed items. In addition, my guess as to the number of documents affected by this was very small, given the time between the working document and the approved specification.

  • There was considerable tension at the time between two camps: one that wanted to make it extremely like DSSSL, and one that wanted to make it as different to DSSSL as possible. Given that DSSSL was Scheme with embedded CSS, I'm glad that that side didn't win. – scruss Oct 2 '18 at 11:49

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.