Definition of the Language
XSLT or Extensible Stylesheet Language Transformations is a language which is used to carry out certain transformations on XML documents. These involve transforming an XML document into other XML documents or different formats such as XSL Formatting Objects or HTML to be used in web pages.
The resultant XSL Formatting Objects can later be converted to other formats like PDF or PNG. XSLT does not alter the first document – it only creates a new document using the content from the original one. In addition, XSLT can identify every single computation that a computer can carry out, making it a ‘Turing-complete’ language.
History of XSLT
XSLT has been significantly influenced by functional languages, as well as text-based pattern matching languages such as SNOBOL during its development. However, it is thought of as the successor to the language DSSSL, which transformed SGML documents, just like XSLT does for XML. Versions of XSLT documents throughout the course of history:
- XSLT 1.0 was involved in the World Wide Web Consortium (W3C)’s efforts for developing Extensible Stylesheet Language or XSL during 1998-1999. Some of the workers in this project, such as James Clark, the editor was also involved in the creation of DSSSL. XSLT 1.0 was launched in November 1999.
- There were some efforts to create a version1.1 of the language in 2001, but they were abandoned as the XSL working team started working with the XQuery team to create XPath 2.0. The development of XSLT 2.0 was later initiated with Michael Kay as the editor. This version of the language was published as a recommendation in January 2007. However, as of 2010, the version 1.0 is stilled used extensively. This is because the XSLT 2.0 is not supported in some web browsers and environments, such as LAMP on the internet.
- As of October 2014, the version 3.0 of XSLT possessed a W3C Last Call Working Draft status. It has been equipped with several new features, such as: Streaming Transformations, which allow XML streaming, which, in turn, enables the processing of documents that are too large to be incorporated in the memory. In previous versions of XSLT, processing of documents started only after the entire document had been read into the memory and output could not be created until the processing had ceased; improvements in dealing with dynamic errors; and enhancements in the modularity of large stylesheets.