In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, the term Extensible Stylesheet Language (XSL) is used to refer to a family of languages used to transform and render
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
documents (e.g., XSL is used to determine how to display a XML document as a webpage).
Historically, the
W3C
The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working together in ...
XSL Working Group produced a draft specification under the name "XSL", which eventually split into three parts:
# XSL Transformation (
XSLT
XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text, or XSL Formatting Objects. These formats c ...
): an
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
language for transforming XML documents
# XSL Formatting Objects (
XSL-FO): an
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
language for specifying the visual formatting of an XML document
# XML Path Language (
XPath
XPath (XML Path Language) is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) in 1999, and can be used to compute values (e.g., strings, numbers, or ...
): 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
XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text, or XSL Formatting Objects. These formats c ...
: 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 developed 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 before the W3C specification was finalized
History
XSL began as an attempt to bring the functionality of
DSSSL
The Document Style Semantics and Specification Language (DSSSL) is an international standard developed to provide stylesheets for SGML documents.
DSSSL consists of two parts: a tree transformation process that can be used to manipulate the tree ...
, particularly in the area of print and high-end
typesetting
Typesetting is the composition of text for publication, display, or distribution by means of arranging physical ''type'' (or ''sort'') in mechanical systems or '' glyphs'' in digital systems representing '' characters'' (letters and other ...
, to XML.
In response to a submission from Arbortext, Inso, and Microsoft,
a W3C
working group
A working group is a group of experts working together to achieve specified goals. Such groups are domain-specific and focus on discussion or activity around a specific subject area. The term can sometimes refer to an interdisciplinary collab ...
on ''XSL'' started operating in December 1997, with
Sharon Adler and
Steve Zilles as co-chairs, with
James Clark acting as editor (and unofficially as chief designer), and
Chris Lilley 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.
The XSL family
XSL Transformations
The original version of XSLT (1.0) was published in November 1999, and was widely implemented. Some of the early implementations have fallen into disuse, but notable implementations
actively used in 2023 include those integrated into the mainstream
web browser
A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
s, as well as
Altova's RaptorXML,
libxslt,
Saxon
The Saxons, sometimes called the Old Saxons or Continental Saxons, were a Germanic people of early medieval "Old" Saxony () which became a Carolingian " stem duchy" in 804, in what is now northern Germany. Many of their neighbours were, like th ...
, the
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
.NET
The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
implementation System.Xml.Xsl, and
Xalan which is integrated into the Oracle
JVM
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descri ...
. These products all have a high level of conformance to the specification, though they also offer proprietary vendor extensions, and some of them omit support for optional features such as disable-output-escaping.
Subsequent versions of XSLT include XSLT 2.0 (January 2007) and XSLT 3.0 (June 2017); there is work in progress on a version 4.0. These versions have not been as widely implemented as 1.0: the main implementations in widespread use in 2023 are
Saxon
The Saxons, sometimes called the Old Saxons or Continental Saxons, were a Germanic people of early medieval "Old" Saxony () which became a Carolingian " stem duchy" in 804, in what is now northern Germany. Many of their neighbours were, like th ...
(available in various versions for different platforms, including web browsers), and
Altova's RaptorXML.
XSL Formatting Objects
Support for XSL Formatting Objects is available in a number of products:
* the
XEP package from
RenderX 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
The Apache ( ) are several Southern Athabaskan language-speaking peoples of the Southwestern United States, Southwest, the Southern Plains and Northern Mexico. They are linguistically related to the Navajo. They migrated from the Athabascan ho ...
project can render a portion of the XSL formatting objects 1.0 specification to
PDF
Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
* XML2PDF Formatting Engine Server from AltSoft has near 100% support for the XSL-FO 1.1
These products support output in a number of
file format
A file format is a Computer standard, standard way that information is encoded for storage in a computer file. It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary format, pr ...
s, to varying degrees:
*
Portable Document Format
Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating syste ...
*
PostScript
PostScript (PS) is a page description language and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it c ...
*
SVG
*
MIF
*
PCL
*
text file
A text file (sometimes spelled textfile; an old alternative name is flat file) is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists stored as data within a computer file system.
In ope ...
s
XPath
XML Path Language (
XPath
XPath (XML Path Language) is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) in 1999, and can be used to compute values (e.g., strings, numbers, or ...
), itself part of the XSL family, functions within
XSLT
XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text, or XSL Formatting Objects. These formats c ...
as a means of navigating an XML document.
Another
W3C
The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working together in ...
project,
XQuery
XQuery (XML Query) is a query language and functional programming language designed to query and transform collections of structured and unstructured data, primarily in the form of XML. It also supports text data and, through implementation-sp ...
, aims to provide similar capabilities for querying XML documents using
XPath
XPath (XML Path Language) is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) in 1999, and can be used to compute values (e.g., strings, numbers, or ...
.
References
External links
*
*
*
tutorial and reference of XSLT and XSL-FOXML Focus Topics: CSS, XSL, XSL-FOIBM XSL Formatting Objects Composer
{{Authority control
World Wide Web Consortium standards
Stylesheet languages
Markup languages
XML-based standards
Computer-related introductions in 1998