XSLT: Difference between revisions
m (using an external editor) |
m (→Online) |
||
(12 intermediate revisions by 4 users not shown) | |||
Line 3: | Line 3: | ||
== Definition == | == Definition == | ||
{{quotation|XSLT is designed to transform XML documents into other XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one}} ([http://en.wikipedia.org/wiki/Xslt Wikipedia], retrieved | {{quotation|XSLT is designed to transform XML documents into other XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one}} ([http://en.wikipedia.org/wiki/Xslt Wikipedia], retrieved 21:32, 30 May 2007 (MEST)). | ||
{{quotation|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.}} | {{quotation|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.}} | ||
([http://www.w3.org/TR/xslt XSL Transformations (XSLT)], retrieved | ([http://www.w3.org/TR/xslt XSL Transformations (XSLT)], retrieved 21:32, 30 May 2007 (MEST)) | ||
{{quotation | 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.}}([http://www.w3.org/TR/xslt XSL Transformations (XSLT)], retrieved | {{quotation | 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.}}([http://www.w3.org/TR/xslt XSL Transformations (XSLT)], retrieved 21:32, 30 May 2007 (MEST)) | ||
This page just provides a few links .... | |||
== EduTechWiki Tutorials == | |||
* [[XSLT Tutorial - Basics]] | |||
* [[XPath tutorial - basics]] | |||
* [[XSLT to generate SVG tutorial]] | |||
== In education == | |||
Since some authoring environments favor some sort of XML-based datastructure, XSLT stylesheets can be used to "export" that data to some some delivery format (HTML, PDF, [[IMS Content Packaging]], etc. | |||
An example would be the [[eLML]] framework. | |||
== Links == | == Links == | ||
Line 33: | Line 42: | ||
* See also: [http://www.w3.org/TR/xml-stylesheet Associating stylesheets with XML documents] (W3C proposed recommendation) | * See also: [http://www.w3.org/TR/xml-stylesheet Associating stylesheets with XML documents] (W3C proposed recommendation) | ||
* See also: [http://www.w3.org/TR/xpath XML Path Language (XPath)] W3C Recommendation (9/99, used to identify nodes in a XML tree, e.g. within XSLT or Xptr) | * See also: [http://www.w3.org/TR/xpath XML Path Language (XPath)] W3C Recommendation (9/99, used to identify nodes in a XML tree, e.g. within XSLT or Xptr) | ||
* [http://xmlfr.org/w3c/TR/xpath Langage XML Path (XPath)] (traduction | * [http://xmlfr.org/w3c/TR/xpath Langage XML Path (XPath)] (traduction française) | ||
* [http://www.w3.org/TR/xpath20/ Xpath 2.0] is used both by XSLT 2.0 and XQuery. [ | * [http://www.w3.org/TR/xpath20/ Xpath 2.0] is used both by XSLT 2.0 and XQuery. | ||
* [http://www.w3.org/TR/xquery-operators/ XQuery 1.0 and XPath 2.0 Functions and Operators]This is the specification for functions used both by XQuery 1 and XPath 2.0 (XSLT 2). This still | * [[XQuery]] is an XML Query language (built on top of XPath 2.0. Both XSLT 2.0 and XQuery 2.0 share the same data model). | ||
* [http://www.w3.org/TR/xquery-operators/ XQuery 1.0 and XPath 2.0 Functions and Operators]. This is the specification for functions used both by XQuery 1 and XPath 2.0 (XSLT 2). This still misses a lot, e.g. trigonometric functions that are a must for any kind of visualization. See [http://www.exslt.org/ EXSLT extensions]. | |||
=== FAQ's === | === FAQ's === | ||
Line 47: | Line 57: | ||
== Tutorials == | == Tutorials == | ||
=== Introductory Tutorials === | |||
* [http://www.nwalsh.com/docs/tutorials/xsl/xsl/slides.html XSL Concepts and Practical Use ] by Paul Grosso and Norman Walsh | * [http://www.nwalsh.com/docs/tutorials/xsl/xsl/slides.html XSL Concepts and Practical Use ] by Paul Grosso and Norman Walsh | ||
Line 63: | Line 75: | ||
* [http://zvon.vscht.cz/HTMLonly/XSLTutorial/Books/Book1/index.html Introduction to XSL] On-line reference tool by Miloslav Nic (part of his [http://zvon.vscht.cz/ZvonHTML/Zvon/zvonTutorials_en.html zvon tutorials]) | * [http://zvon.vscht.cz/HTMLonly/XSLTutorial/Books/Book1/index.html Introduction to XSL] On-line reference tool by Miloslav Nic (part of his [http://zvon.vscht.cz/ZvonHTML/Zvon/zvonTutorials_en.html zvon tutorials]) | ||
* [http://www.xfront.com/ XSL Tutorial] (tutorial to download, by R.Costello) | * [http://www.xfront.com/ XSL Tutorial] (tutorial to download, by R.Costello) | ||
Line 70: | Line 80: | ||
* [http://nwalsh.com/docs/tutorials/xsl Walsh XSL Tutorial] Good tutorial, but slide style. Also useful as on-line XSL reference ! | * [http://nwalsh.com/docs/tutorials/xsl Walsh XSL Tutorial] Good tutorial, but slide style. Also useful as on-line XSL reference ! | ||
* [http://www. | * [http://www.xml.com/pub/a/2005/01/05/tr-xml.html Extending XSLT with EXSLT] by Bob DuCharme, at xml.com (jan 2005) | ||
* [http://www.xml.com/pub/a/2000/07/26/xslt/xsltstyle.html Style-free XSLT Style Sheets], by Eric van der Vlist, July 26, 2000 | |||
* [http://www.xml.com/pub/a/ | |||
=== XSL Templates and tricks === | === XSL Templates and tricks === | ||
* [http://www.jenitennison.com/xslt/index.html Jeni's XSLT Pages] Various very useful hints (mostly from postings to the XSL-List) | * [http://www.jenitennison.com/xslt/index.html Jeni's XSLT Pages] Various very useful hints (mostly from postings to the XSL-List) | ||
* http://en.wikipedia.org/wiki/XSLT_elements XSLT elements] List of XSLT elements at Wikipedia. This is a good page once you know your [[XSLT Tutorial - Basics|XSLT Basics]] | * [http://en.wikipedia.org/wiki/XSLT_elements XSLT elements] List of XSLT elements at Wikipedia. This is a good page once you know your [[XSLT Tutorial - Basics|XSLT Basics]] | ||
=== XSLFO Tutorials === | === XSLFO Tutorials === | ||
Line 96: | Line 103: | ||
=== XSLT/FO Processors === | === XSLT/FO Processors === | ||
==== Online ==== | |||
* [http://www.online-xslt-processor.tk/ Automatic As You Type Online XSLT Processor] | |||
* [http://www.freeformatter.com/xsl-transformer.html XSLT Transformer] (Freeformater.com) | |||
* [http://www.online-toolz.com/tools/xslt-transformation.php XSLT transformation] (Onlinze-toolz) | |||
==== Tools for programmers and web servers ==== | |||
* [http://saxon.sourceforge.net/ SAXON] The SAXON package is a collection of tools for processing XML documents, e.g. an XSL (XSLT and XPath).<br /> INSTALLED at Tecfa: [http://tecfa2.unige.ch/guides/xml/local/saxon/doc [password protected ] local documentation]. Saxon has extension features that others (Xalan) have not. | * [http://saxon.sourceforge.net/ SAXON] The SAXON package is a collection of tools for processing XML documents, e.g. an XSL (XSLT and XPath).<br /> INSTALLED at Tecfa: [http://tecfa2.unige.ch/guides/xml/local/saxon/doc [password protected ] local documentation]. Saxon has extension features that others (Xalan) have not. | ||
* [http://www.xmlsoft.org/XSLT.html 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 | * [http://www.xmlsoft.org/XSLT.html 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 | ||
Line 106: | Line 119: | ||
=== XSLT Libraries === | === XSLT Libraries === | ||
* [http://wwbota.free.fr/XSLT_models/README.html XSLT transforms library] (last update, 2004) | |||
* [http://www.exslt.org/ EXSLT]. This is vital stuff for visualizations ! Some of these are implemented in XSLT processor, eg. libxslt (the popular processor also used in PHP) | * [http://www.exslt.org/ EXSLT]. This is vital stuff for visualizations ! Some of these are implemented in XSLT processor, eg. libxslt (the popular processor also used in PHP) | ||
* [http://xsltsl.sourceforge.net/ XSLT Standard Library]. The [http://prdownloads.sourceforge.net/xsltsl/ downloads] are also in a different place (4/01) | * [http://xsltsl.sourceforge.net/ XSLT Standard Library]. The [http://prdownloads.sourceforge.net/xsltsl/ downloads] are also in a different place (4/01) | ||
Line 111: | Line 125: | ||
* [http://incrementaldevelopment.com/xsltrick/ Gallery of Stupid XSL and XSLT Tricks] | * [http://incrementaldevelopment.com/xsltrick/ Gallery of Stupid XSL and XSLT Tricks] | ||
* [http://wwbota.free.fr/XSLT_models/README.html XSLT transforms library] J.M. Vanel 2000-2003 - under GNU Public Licence | * [http://wwbota.free.fr/XSLT_models/README.html XSLT transforms library] J.M. Vanel 2000-2003 - under GNU Public Licence | ||
* [http://fxsl.sourceforge.net/ FXSL -- the Functional Programming Library for XSLT] (powerful | * [http://fxsl.sourceforge.net/ FXSL -- the Functional Programming Library for XSLT] (powerful library of functions, written entirely in XSLT, implements higher order functions (HOF), functional composition and currying (partial applications) in XSLT. All standard XPath 2.0 Functions and Operators are implemented as HOF. Other functions implemented are the equivalent of Haskell's Prelude, math functions, text processing, general LR Parsing Framework, ..., etc.) | ||
=== Editors and Plugins === | === Editors and Plugins === | ||
Line 118: | Line 132: | ||
[[Category: XML]] | [[Category: XML]] | ||
[[Category:web standards]] |
Latest revision as of 17:09, 22 March 2013
Definition
“XSLT is designed to transform XML documents into other XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one” (Wikipedia, retrieved 21:32, 30 May 2007 (MEST)).
“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 21:32, 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 21:32, 30 May 2007 (MEST))
This page just provides a few links ....
EduTechWiki Tutorials
In education
Since some authoring environments favor some sort of XML-based datastructure, XSLT stylesheets can be used to "export" that data to some some delivery format (HTML, PDF, IMS Content Packaging, etc. An example would be the eLML framework.
Links
Manuals
Specifications, standards and official propaganda
- Official Frameworks
- 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 is an XML Query language (built on top of XPath 2.0. Both XSLT 2.0 and XQuery 2.0 share the same data model).
- XQuery 1.0 and XPath 2.0 Functions and Operators. This is the specification for functions used both by XQuery 1 and XPath 2.0 (XSLT 2). This still misses a lot, e.g. trigonometric functions that are a must for any kind of visualization. See EXSLT extensions.
FAQ's
NewsGroups and Mailing Lists
Tutorials
Introductory Tutorials
- XSL Concepts and Practical Use by Paul Grosso and Norman Walsh
- 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).
- 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. Note: IBM developWorks has dozens of other XSLT-related articles.
- Introduction to XSL On-line reference tool by Miloslav Nic (part of his zvon tutorials)
- XSL Tutorial (tutorial to download, by R.Costello)
- Walsh XSL Tutorial Good tutorial, but slide style. Also useful as on-line XSL reference !
- Extending XSLT with EXSLT by Bob DuCharme, at xml.com (jan 2005)
- Style-free XSLT Style Sheets, by Eric van der Vlist, July 26, 2000
XSL Templates and tricks
- Jeni's XSLT Pages Various very useful hints (mostly from postings to the XSL-List)
- XSLT elements List of XSLT elements at Wikipedia. This is a good page once you know your XSLT Basics
XSLFO Tutorials
(should be moved)
- XSL-FO (very good on-line BOOK)
- FOP Slide Kit. Technical article from Paul Sandoz (SUN) about slides with FOP
3.1 PHP's XSLT processor
- Using PHP 5's XSL extension to perform XSL Transformations, tutorial by Tony Marston (8/2004)
Software
XSLT/FO Processors
Online
- Automatic As You Type Online XSLT Processor
- XSLT Transformer (Freeformater.com)
- XSLT transformation (Onlinze-toolz)
Tools for programmers and web servers
- 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].
XSLT Libraries
- XSLT transforms library (last update, 2004)
- 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 library of functions, written entirely in XSLT, implements higher order functions (HOF), functional composition and currying (partial applications) in XSLT. All standard XPath 2.0 Functions and Operators are implemented as HOF. Other functions implemented are the equivalent of Haskell's Prelude, math functions, text processing, general LR Parsing Framework, ..., etc.)
Editors and Plugins
- See XML editors