XSLT was produced as a result of the Extensible Stylesheet Language (XSL) development effort within W3C during 1998–1999, which also produced XSL Formatting Objects (XSL-FO) and the XML Path Language, XPath.
XSLT stylesheets are declarative, not procedural; rather than defining a sequence of operations to execute, they define rules and other hints applied during processing, according to a fixed algorithm.
XSLT relies upon the W3C's XPath language for identifying subsets of the source document tree, as well as for performing calculations.
XSLT is a notoriously difficult language to understand, but this book, while being a complete reference to the recommendation, will also give code examples showing how it all ties together and can be effectively employed in a real-world development scenario.
XSLT is a flexible, customizable, and cross-platform language.
There are also digestible examples of XSLT used to format a long text document (for the XML standard itself), genealogy data (for a family tree), and a chess problem.
Until now it was believed that although XSLT is based on functional programming ideas, it is not as yet a full functional programming language, as it lacks the ability to treat functions as a first-class data type.
Based on numerous concrete XSLT implementations of some of the major functional programming design patterns, including some of the most generic list-processing and tree-processing functions, this article provides ample proof that XSLT is in fact a full-pledged functional programming language.
XSLT has two parts: a transformation language, and a formatting language.
XSLT and its cousin XSL Formatting Objects (XSL-FO) are used to manipulate the structure of XML and other types of documents (e.g.
The good news is that most modern browsers now support XSLT, and although the language requires new thinking about data processing and solving common problems, it’s fairly easy to pick up.
Also required is the version and valid namespace of the version you are using.
XSLT implements transformation "by example", not just "by program logic", and builds in support for the kinds of transformation typically needed to present information.
The XSLT recommendation describes how XSLT engines can choose to support different ways to serialize the templates you have added, in combination with the information you glean from your source tree, to the result tree.
Your stylesheet templates can include your instructions to the XSLT engine to hunt down information anywhere in your input XML file, or many XML input files, to fill in holes in your template where your own information belongs.
The input for the function is generated by the XSLT processor through processing the xsl:message element body and passing the result to the message_handler.
The modules are loaded in the namespace of XSLT Perl package and XPath::Expression package.
In addition, it has built-in extensions file upload feature, time functions, dynamic importing of sylesheets and method for HTTP headers printing.
XSLT is not a general-purpose regular expression language for transforming arbitrary data.
When the XSLT processor reads the input document, the first node it sees is the root.
More precisely, an XSLT processor accepts as input a tree represented as an XML document and produces as output a new tree, also represented as an XML document.
XSLT is designed for use as part of XSL, which is a stylesheet language for XML.
With XSLT one can adapt one model to another, which is a tried-and-true integration strategy, implemented in a language optimized for this precise purpose.
XSLT is notoriously difficult to understand, but this book provides code examples showing how it all ties together and can be effectively employed in a real world development scenario.
It is possible to create the xslt extension as a shared object module statically linked with salbot and expat (I needed it for a project hosted in sourceforge where the sablot library is available).
This extension is different than the sablotron extension distributed with versions of PHP prior to PHP 4.1, currently only the new XSLT extension in PHP 4.1 is supported.
With xslt_set_scheme_handlers(), you can give the XSLT engine an advanced access to the file system (or even to the other I/O interfaces), and perform various tasks (checking the existence of a file, creating new files "on the fly", deleting, etc...)
The resultant DIV structure shows up in the browser as straight text with no formatting, and is meant to preserve the semantics and structure of the OPML.
For the processors that use Java (Saxon, Xalann, Oracle, etc.) the command-line syntax is identical on Unix.
For any OPML file with this simple declaration added:
New in Saxon 8.5: Saxon-SA now provides an efficient binary storage form for documents that are used frequently as input to transformations and queries, and a method of processing large documents as input to a transformation without reading the whole document into memory.
Saxon comes in two packages: Saxon-B implements the "basic" conformance level for XSLT 2.0 and XQuery, while Saxon-SA is a schema-aware XSLT and XQuery processor.
The commercial schema-aware implementation of XSLT 2.0, XPath 2.0, XQuery 1.0, and XML Schema 1.0 from Saxonica Limited.
The SAXON XSLT Processor - Java XSLT processor developed by Michael Kay [Open source, MPL].
DataPower Products - DGXT is an optimized software-based XSLT interpreter that is cross-platform and fully compliant with the current XSL specification.
We use the XSLT language, which itself uses XPath, to specify how an implementation of an XSLT processor is to create our desired output from our given marked-up input.
But the flexibility inherent in the power given to each of us to develop our own vocabularies, and for industry associations, e-commerce consortia, and the W3C to develop their own vocabularies, presents the need to be able to transform information marked up in XML from one vocabulary to another.
Two W3C Recommendations, XSLT (the Extensible Stylesheet Language Transformations) and XPath (the XML Path Language), meet that need.
Visual XSLT extends the familiar Visual Studio environment with XSLT-specific features.
Visual Schema Mapper — save time and effort by creating XML to XML transforms in an intuitive drag-and-drop interface — XSLT code is generated from the visual map
The resulting environment helps programmers to quickly build robust and sophisticated XML transformations.
Visually design advanced XSLT stylesheets using an intutive drag-and-drop interface.
Analyze the performance of your XSLT stylesheets, eliminate bottlenecks, and discover ways to make your XSLT more efficient.
Stylus Studio includes many powerful and intuitive XSLT tools for accelerating XSLT-related development tasks, such as a visual XSLT Mapper, Editor, Debugger, Profiler, and more!
The code for the book is no longer available on the Wrox site (since Wrox went under), but you can download the code from here.
These pages contain information for people trying to learn how to use and make the most of XSLT.
I'd still recommend Mike Kay's XSLT Programmer's Reference, or XSLT 2.0 Programmer's Reference and XPath 2.0 Programmer's Reference, if you need a reference for XSLT.
There are functions for string values, numeric values, date and time comparison, node and QName manipulation, sequence manipulation, Boolean values, and more.
The World Wide Web Consortium (W3C) started to develop XSL because there was a need for an XML-based style sheet language.
The element contains rules to apply when a specified node is matched.
It implements XSL Transformations (XSLT) Version 1.0 and XML Path Language (XPath) Version 1.0 and can be used from the command line, in an applet or a servlet, or as a module in other program.
For the licences that apply to the JARs other than xalan.jar, see the licenses and associated readme files in the root directory of this distribution.
Xalan-Java is an XSLT processor for transforming XML documents into HTML, text, or other XML document types.
Bob DuCharme shows how an XSLT stylesheet can read simplified XML-conversion instructions and create a new, working XSLT stylesheet from those instructions.
Micah Dubinko says that the way Ajax technologies are presently deployed will eventually run into complexity barriers.
Bob DuCharme compares the push and pull styles of XSLT stylesheet architectures and looks at two new XSLT 2.0 instructions that aid push-style development.
The recipes range from simple string-manipulation and mathematical processing to more complex topics like extending XSLT, testing and debugging XSLT stylesheets, and graphics creation with SVG.
Solutions and Examples for XML and XSLT Developers
The XSLT Cookbook is a collection of hundreds of solutions to problems that Extensible Stylesheet Language Transformations (XSLT) developers regularly face.
Useful as XSLT is, its complexities can be daunting.
Doug Tidwell, a developer with years of XSLT experience, eases the pain by building from the basics to the more complex and powerful possibilities of XSLT, so you can jump in at your own level of expertise.
XSLT (Extensible Stylesheet Transformations) is a critical bridge between XML processing and more familiar HTML, and dominates the market for conversions between XML vocabularies.
To those who are not familiar with all the XML jargon, XSLT stands for eXtensible Stylesheet Language Transform - basically, a programming language for transforming XML documents for rendering in HTML or between different formats.
Check out the new and redone XSLT resources section, which lets you submit links directly to the database.
XSLT.com is a site dedicated to providing XSLT, XPath and some XSL:FO infrormation for programmers.
Other stuff is gravy, because of the fall-back rules; I like Palatino (which installs with MS Office as "Book Antiqua") and Georgia, myself, but as long as "Times New Roman" is in there, you'll dodge the serif/Map Symbols bullet.
The first XSLT conference took place in April 2001 Report and photographs
To amuse the bored, here's a random faq generator, on Chris Bayes site.