XSLT
Definition
“A transformation expressed in XSLT is called a stylesheet. A stylesheet contains a set of template rules. A template rule has two parts: a pattern which is matched against nodes in the source tree and a template which can be instantiated to form part of the result tree. This allows a stylesheet to be applicable to a wide class of documents that have similar source tree structures.” (XSL Transformations (XSLT), retrieved 19:39, 30 May 2007 (MEST))
“A transformation expressed in XSLT describes rules for transforming a source tree into a result tree. The transformation is achieved by associating patterns with templates. A pattern is matched against elements in the source tree. A template is instantiated to create part of the result tree. The result tree is separate from the source tree. The structure of the result tree can be completely different from the structure of the source tree. In constructing the result tree, elements from the source tree can be filtered and reordered, and arbitrary structure can be added.”(XSL Transformations (XSLT), retrieved 19:39, 30 May 2007 (MEST))
Tutorial
Links
2.1 Manuals
2.2 Specifications, standards and official propaganda
Official Frameworks
XML Specifications
- XSL Transformations (XSLT) Specification W3C Recommendation 16 November 1999 (Note: you also need Xpath)
- Transformations XSL (XSLT) Traduction fran�aise
- Extensible Stylesheet Language (XSL) W3C Recommendation October 2001 (this is XSL-FO basically!)
- Recommandation XSL-1 du W3C en version fran�aise (XSL-FO)
- See also: Associating stylesheets with XML documents (W3C proposed recommendation)
- See also: XML Path Language (XPath) W3C Recommendation (9/99, used to identify nodes in a XML tree, e.g. within XSLT or Xptr)
- Langage XML Path (XPath) (traduction fran�aise)
- Xpath 2.0 is used both by XSLT 2.0 and XQuery. [xquery-pointers.html XQuery] is an extension of XPath 2.0 and both XSLT 2.0 and XQuery 2.0 share the same data model. (these are working drafts in nov 2004).
- XQuery 1.0 and XPath 2.0 Functions and OperatorsThis is the specification for functions used both by XQuery 1 and XPath 2.0 (XSLT 2). This still missed a lot, e.g. trigonometric functions that are a must for any kind of visualization. See EXSLT extensions.
2.3 FAQ's
2.4 NewsGroups and Mailing Lists
2.5 General Tutorials
(most are somewhat technical, see also general XML tutorials on [/guides/xml/pointers.html XML Pointers] )
- *** XSL Concepts and Practical Use by Paul Grosso and Norman Walsh
- [/guides/tie/tie.html See our own TIE slides ] (in French: XML, XSLT)
- ***Chapters from the XML bible by E.R. Harold: XSLT, Xlinks and Xpointers. Direct acess: Iblio. See also his collection of Slides (full-day tutorial).
2.6 XSLT Tutorials
IMPORTANT: Some tutorials do not respect the current XSLT Specification [don't have time to clean them ou :( ]
- Discover the Wonders of XSLT by Benoit Marchal a developper.com (2/2004). Very short intro, but follow ups were promised.
- XSLT Chapter from the Paractical XML for the Web Book (oct 2002, not tested)
- XML and XSLT Programming, a Webreference.com tutorial
- XSLT by example at Objects by Design (They also have good XML->HTML tutorials)
- *** E.R. Harolds on-line Book Chapter on XSLT (good, the book too btw)
- ** Hands-on XSL, XSL for fun and diversion ( Don R. Day ). Explains nicely how a rule-based system works.
- XSLT Tutorial I: Basics and first example application at heise.de
- Introduction to XSL On-line reference tool by Miloslav Nic (part of his zvon tutorials)
- XSL Tutorial by Paul Grosso and Norman Walsh. [new version ? an older version was incompatible ... ]
- XSL Templates by Example by James Tauber. Works (but has only simple transformations)
- XSL Tutorial (download, by R.Costello)
- XSLT template library for WEB applications
- Walsh XSL Tutorial (updateded slides 18/1/00). Good tutorial, but slide style. Also useful as on-line XSL reference !
- Producing HTML tables with XSLT
- Jeni's XSLT Pages Various very useful hints (mostly from postings to the XSL-List)
- The Protean Power of Textual Transformation
- Extending XSLT with EXSLT by Bob DuCharme, at xml.com (jan 2005)
2.7 XSLFO Tutorials
- XSL-FO (very good on-line BOOK)
- FOP Slide Kit. Technical article from Paul Sandoz (SUN) about slides with FOP
[#top logo ] |
[#section1 XSL @ TECFA] |
[#section2 Documentation] |
[#section3 XSL for programmers] |
[#section4 Software] |
[#section5 Examples] |
[#section6 Links] |
3. XSL for programmers
See the [/guides/xml/pointers.html XML Pointers] for now.
3.1 PHP's XSLT processor
- Using PHP 5's XSL extension to perform XSL Transformations, tutorial by Tony Marston (8/2004)
[#top logo ] |
[#section1 XSL @ TECFA] |
[#section2 Documentation] |
[#section3 XSL for programmers] |
[#section4 Software] |
[#section5 Examples] |
[#section6 Links] |
4. Software
4.1 XSLT/FO Processors
- SAXON The SAXON package is a collection of tools for processing XML documents, e.g. an XSL (XSLT and XPath).
INSTALLED at Tecfa: [password protected local documentation]. Saxon has extension features that others (Xalan) have not. - Gnome LibXML2 and it's associated XSLT C library. Used in PHP 5.0. There also command line tools for batch use, including xsltproc that also does XInclude. Installed @ Tecfa
- tkxsltproc is a GUI frontend for the Gnome libxslt packages (see above). MacOSX, Win, Linux [9/2004]
- Sablotron Sablotron is a fast, compact and portable XML toolkit implementing XSLT 1.0, DOM Level2 and XPath 1.0. Has some extensions, e.g. multiple output files. This is also the library used in PHP 4.x
- Apache / Xalan-J is a Java-based XSLT 1.0 processor. Works with Xerces-Java (XML parser). Both are also distributed with other Apache products, like FOP. (installed @ Tecfa)
- Apache / FOP is the world's first print formatter driven by XSL formatting objects. It is a Java application that reads a formatting object tree and then turns it into a PDF document. Installed @ Tecfa.
- xmlroff. Sun sponsored xsl formatter for productin PDF and PS (2/2003). Early Beta, [not tested yet].
4.2 XSLT Libraries
- EXSLT. This is vital stuff for visualizations ! Some of these are implemented in XSLT processor, eg. libxslt (the popular processor also used in PHP)
- XSLT Standard Library. The downloads are also in a different place (4/01)
- XSL DocBook Stylesheets by Norman Walsh
- Gallery of Stupid XSL and XSLT Tricks
- XSLT transforms library J.M. Vanel 2000-2003 - under GNU Public Licence
- FXSL -- the Functional Programming Library for XSLT (powerful extensions in XSLT, e.g. a math module)
4.3 Editors and Modes
- Stylus XSLT Editor is part of Stylus XML editor (Windows, payware = $275 academic, 30 Day demo, home edition = $49)
- XSLT-process is a minor mode for GNU Emacs/XEmacs which transforms it into a powerful editor with XSLT processing and debugging capabilities (For people who know Emacs!)
4.4 Other tools
- XSLTDoc, an XSLT stylesheet documentation generator (tested/works)
- catchXSL, an XSL profiler from I3 written in Java, needs Xalan or Saxon.
[#top logo ] |
[#section1 XSL @ TECFA] |
[#section2 Documentation] |
[#section3 XSL for programmers] |
[#section4 Software] |
[#section5 Examples] |
[#section6 Links] |
5. Examples
Showing context-free examples is a tricky issue, since tree transformations and rendering depends on specific DTDs and tasks.
- *XSL Tree Display Stylesheet from Crane Softwrigthts Ltd. Usefull to check the node structure of a document !
- Look at some simple [/guides/xml/cocoon Cocoon examples ] (you need Netscape or know to make IE Internet compatible to look at sources)
- Sourcepole XSL package
- ... more needed here (including Tecfa's own)
[#top logo ] |
[#section1 XSL @ TECFA] |
[#section2 Documentation] |
[#section3 XSL for programmers] |
[#section4 Software] |
[#section5 Examples] |
[#section6 Links] |
6. Links
- See the links on the [xml-pointers.html XML] page
- xslt.com
- Stylesheet Resources (XSL/CSS/DSSL at finetuning.com