Extensible Stylesheet Language
Encyclopedia
In computing
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...

, the term Extensible Stylesheet Language (XSL) is used to refer to a family of
languages used to transform and render XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

 documents.

Historically, the XSL Working Group in W3C produced a draft specification under the name XSL, which eventually split into three parts:
  1. XSL Transformation (XSLT
    XSL Transformations
    XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

    ): is an XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     language for transforming XML documents
  2. XSL Formatting Objects (XSL-FO
    XSL Formatting Objects
    XSL Formatting Objects, or XSL-FO, is a markup language for XML document formatting which is most often used to generate PDFs. XSL-FO is part of XSL , a set of W3C technologies designed for the transformation and formatting of XML data. The other parts of XSL are XSLT and XPath...

    ): an XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     language for specifying the visual formatting of an XML document
  3. the XML Path Language (XPath
    XPath
    XPath is a language for selecting nodes from an XML document. In addition, XPath may be used to compute values from the content of an XML document...

    ): a non-XML language used by XSLT, and also available for use in non-XSLT contexts, for addressing the parts of an XML document.


As a result, the term XSL is now used with a number of different meanings:
  • Sometimes it refers to XSLT
    XSL Transformations
    XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

    : this usage is best avoided. However, "xsl" is used both as the conventional namespace prefix for the XSLT namespace, and as the conventional filename suffix for files containing XSLT stylesheet modules
  • Sometimes it refers to XSL-FO: this usage can be justified by the fact that the XSL-FO specification carries the title Extensible Stylesheet Language (XSL); however, the term XSL-FO is less likely to be misunderstood
  • Sometimes it refers to both languages considered together, or to the working group that develops both languages
  • Sometimes, especially in the Microsoft world, it refers to a now-obsolete variant of XSLT developed and shipped by Microsoft as part of MSXML
    MSXML
    Microsoft XML Core Services is a set of services that allow applications written in JScript, VBScript, and Microsoft development tools to build Windows-native XML-based applications...

     before the W3C specification was finalized


This article is concerned with the various usages of the term XSL: for details of the various languages embraced by the term, see the relevant article.

History

XSL began as an attempt to bring the functionality of DSSSL
Document Style Semantics and Specification Language
Document Style Semantics and Specification Language is a computer language for specifying stylesheets for SGML documents, based on a subset of the Scheme programming language. It is specified by the standard ISO/IEC 10179:1996...

, particularly in the area of print and high-end typesetting
Typesetting
Typesetting is the composition of text by means of types.Typesetting requires the prior process of designing a font and storing it in some manner...

, to XML.

In response to a submission from Arbortext, Inso, and Microsoft, a W3C working group
Working group
A working group is an interdisciplinary collaboration of researchers working on new research activities that would be difficult to develop under traditional funding mechanisms . The lifespan of the WG can last anywhere between a few months and several years...

 on XSL started operating in December 1997, with Sharon Adler and Steve Zilles as co-chairs, with James Clark
James Clark (XML expert)
James Clark, is the author of groff and expat and has done much work with open-source software and XML. Born in London, and educated at Charterhouse and Merton College, Oxford, Clark has lived in Bangkok, Thailand since 1995, and is now a permanent resident...

 acting as editor (and unofficially as chief designer), and Chris Lilley
Chris Lilley (W3C)
Chris Lilley was educated at Broxburn Academy in West Lothian, Scotland. He obtained a Bachelors degree in Biochemistry at the University of Stirling, Scotland and then worked in Haematology and Blood transfusion at the hospital laboratories of Stirling and Falkirk.He obtained a Masters degree in...

 as the W3C staff contact. The group released a first public Working Draft on 18 August 1998. XSLT and XPath became W3C Recommendations on 16 November 1999 and XSL-FO reached Recommendation status on 15 October 2001.

"XSL" in Microsoft products

Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

's MSXML
MSXML
Microsoft XML Core Services is a set of services that allow applications written in JScript, VBScript, and Microsoft development tools to build Windows-native XML-based applications...

, first released in March 1999, contained an incomplete implementation of the December 1998 transformation language published in the W3C XSL Working Draft. Microsoft documentation used the term "XSL" to refer to this language as implemented in MSXML, including MSXML-specific extensions and omissions. Subsequently, when MSXML was updated to support the final W3C XSLT 1.0 Recommendation, Microsoft documentation referred to the obsolete dialect as "XSL" and to the new language as "XSLT". Other commentators follow the lead of Michael Kay
Michael Kay (software engineer)
Michael H. Kay FBCS is the editor of the W3C specification of the XSLT 2.0 language for performing XML transformations, and the developer of the Saxon XSLT and XQuery processing software....

 in referring to the older language as WD-xsl. Current versions of MSXML (as of 2009) continue to support the obsolete dialect, but no longer mention it in the documentation.

Since the mid-2000 release of MSXML 3.0, MSXML has had complete support for both XSLT 1.0 alongside the older dialect. MSXML 3.0 became the default XML services library of Internet Explorer
Internet Explorer
Windows Internet Explorer is a series of graphical web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems, starting in 1995. It was first released as part of the add-on package Plus! for Windows 95 that year...

 (IE) upon the release of IE 6.0 in August 2001. Older versions of IE could use MSXML 3.0 only with a custom install in "replace mode".

XSL Transformations

XSL Transformations
XSL Transformations
XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

 (XSLT) has many implementations available. Several web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

s, including Internet Explorer
Internet Explorer
Windows Internet Explorer is a series of graphical web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems, starting in 1995. It was first released as part of the add-on package Plus! for Windows 95 that year...

 (using the MSXML
MSXML
Microsoft XML Core Services is a set of services that allow applications written in JScript, VBScript, and Microsoft development tools to build Windows-native XML-based applications...

 engine), Opera
Opera (web browser)
Opera is a web browser and Internet suite developed by Opera Software with over 200 million users worldwide. The browser handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, chatting on IRC, downloading files via BitTorrent,...

 (native engine) and Safari
Safari (web browser)
Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Safari is also the...

, all support transformation of XML to HTML (or other languages) through XSLT. Other notable implementations include Saxon
Saxon XSLT
Saxon is an XSLT and XQuery processor created by Michael Kay. There are open-source and also closed-source commercial versions. Versions exist for Java and .NET.The current version, as of December 2010, is 9.3.- Versions :...

 and Xalan
Xalan
Xalan is a popular open source software library from the Apache Software Foundation, originally created by IBM under the name LotusXSL, that implements the XSLT 1.0 XML transformation language and the XPath 1.0 language. The Xalan XSLT processor is available for both the Java and C++ programming...

.

Support in Firefox
Mozilla Firefox
Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. , Firefox is the second most widely used browser, with approximately 25% of worldwide usage share of web browsers...

, Mozilla
Mozilla
Mozilla is a term used in a number of ways in relation to the Mozilla.org project and the Mozilla Foundation, their defunct commercial predecessor Netscape Communications Corporation, and their related application software....

, and Netscape
Netscape (web browser)
Netscape 7 was a series of proprietary cross-platform Internet suites created by Netscape Communications Corporation and then in-house by AOL to continue the Netscape series after Netscape 6. There were three main editions released from the Netscape 7 series; being Netscape 7.0, 7.1 and 7.2...

 (all using the TransforMiiX
TransforMiiX
TransforMiiX is an XSLT processor used in Gecko browsers, such as Firefox, to transform XML into HTML.TransforMiiX identifies itself by setting the system property xsl:vendor as Transformiix.-External links:*...

 engine) is incomplete. Support of disable-output-escaping does not work which is why HTML Fragments are not rendered properly. This bug is known since 2001 https://bugzilla.mozilla.org/show_bug.cgi?id=98168 .

XSL Formatting Objects

Support for XSL Formatting Objects is available in a number of products:
  • the XEP
    XEP
    XEP is a commercial XSL-FO layout engine written in Java mainly used to convert XML to PDF. XEP is proprietary software by RenderX.- History :...

     package from RenderX
    RenderX
    RenderX, Inc is a commercial software development company that provides standards-based software products, used for typeset-quality electronic and print output of business content...

     has near 100% support for XSL-FO 1.0
  • XSLFormatter from Antenna House also has near 100% support for the XSL-FO 1.0 specification and has 100% support for all new features within the XSL-FO 1.1 specification
  • XINC from Lunasil has a great amount of support for the XSL-FO 1.0 specification
  • FOP from the Apache
    Apache Software Foundation
    The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and incorporated in Delaware, U.S., in June 1999.The Apache Software Foundation is a decentralized community of developers...

     project can render a portion of the XSL formatting objects 1.0 specification to PDF
    Portable Document Format
    Portable Document Format is an open standard for document exchange. This file format, created by Adobe Systems in 1993, is used for representing documents in a manner independent of application software, hardware, and operating systems....

  • Xml2PDF Server 2007 from AltSoft has near 100% support for the XSL-FO 1.1


These products support output in a number of file format
File format
A file format is a particular way that information is encoded for storage in a computer file.Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice-versa. There are different kinds of formats for...

s, to varying degrees:
  • Portable Document Format
    Portable Document Format
    Portable Document Format is an open standard for document exchange. This file format, created by Adobe Systems in 1993, is used for representing documents in a manner independent of application software, hardware, and operating systems....

  • PostScript
    PostScript
    PostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...

  • SVG
    Scalable Vector Graphics
    Scalable Vector Graphics is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic . The SVG specification is an open standard that has been under development by the World Wide Web Consortium since 1999.SVG images and their...

  • MIF
    Maker Interchange Format
    Maker Interchange Format is a proprietary markup language associated with Adobe Systems' FrameMaker product for technical document preparation....

  • PCL
  • text file
    Text file
    A text file is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists within a computer file system...

    s

XPath

XML Path Language (XPath
XPath
XPath is a language for selecting nodes from an XML document. In addition, XPath may be used to compute values from the content of an XML document...

), itself part of the XSL family, functions within XSLT
XSL Transformations
XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

 as a means of navigating an XML document.

Another W3C project, XQuery
XQuery
- Features :XQuery provides the means to extract and manipulate data from XML documents or any data source that can be viewed as XML, such as relational databases or office documents....

, aims to provide similar capabilities for querying XML documents using XPath
XPath
XPath is a language for selecting nodes from an XML document. In addition, XPath may be used to compute values from the content of an XML document...

.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK