| <?xml version="1.0" standalone="no"?> |
| <!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd"> |
| |
| <!-- |
| * Copyright 1999-2004 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| --> |
| |
| <s1 title="&xslt4c; Overview"> |
| <ul> |
| <li><link anchor="intro">Introduction</link></li> |
| <li><link anchor="features">&xslt4c; Features</link></li> |
| <li><link anchor="towork">Getting to work with &xslt4c;</link></li> |
| <li><link anchor="uptospeed">Getting up to speed with XSLT</link></li> |
| <li><link anchor="glossary">Glossary</link></li> |
| </ul> |
| |
| <anchor name="intro"/> |
| <s2 title="Introduction"> |
| <p>&xslt4c; (named after a rare musical instrument) implements the <resource-ref idref="XSLT"/> and the |
| <resource-ref idref="XPath"/>. XSLT is the first part of the XSL stylesheet language for XML. It includes the XSL |
| Transformation vocabulary and XPath, a language for addressing parts of XML documents. For links to background materials, |
| discussion groups, frequently asked questions, and tutorials on XSLT, see <link anchor="uptospeed">Getting up to speed with |
| XSLT</link>.</p> |
| <note>XSL also includes a vocabulary for formatting documents, which is not part of &xslt4c;. For more information, see |
| <resource-ref idref="XSL"/> and the <jump href="http://xml.apache.org/fop">Apache XML FOP (Formatting Objects Project) |
| </jump>. |
| </note> |
| <p>You use the XSLT language to compose XSL stylesheets. An XSL stylesheet contains instructions for transforming XML documents |
| from one document type to another document type (XML, HTML, or other). In structural terms, an XSL stylesheet specifies the |
| transformation of one tree of nodes (the XML input) into another tree of nodes (the output or transformation result).</p> |
| <note>The XSL stylesheet may generate and refer to cascading style sheets (<jump href="http://www.w3.org/Style/CSS/">CSS</jump>) |
| as part of its output. |
| </note> |
| <p>In the following example, the foo.xsl stylesheet is used to transform foo.xml into foo.out:</p> |
| <p>foo.xml:</p> |
| <source> |
| <?xml version="1.0"?> |
| <doc>Hello</doc> |
| </source> |
| <p>foo.xsl:</p> |
| <source> |
| <?xml version="1.0"?> |
| <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> |
| <xsl:template match="doc"> |
| <out><xsl:value-of select="."/></out> |
| </xsl:template> |
| </xsl:stylesheet> |
| </source> |
| <p>foo.out:</p> |
| <source><out>Hello</out></source> |
| |
| </s2><anchor name="features"/> |
| <s2 title="&xslt4c; Features"> |
| <ul> |
| <li>&xslt4c; fully implements the <resource-ref idref="XSLT"/>.</li> |
| <li>&xslt4c; incorporates the <resource-ref idref="XPath"/>.<br/><br/></li> |
| <li>&xslt4c; uses <jump href="http://xml.apache.org/xerces-c/index.html">&xml4c;</jump> to parse XML documents and XSL |
| stylesheets.<br/><br/> |
| The input may appear in the form of a file or URL, a stream, or a <resource-ref idref="DOM"/>. |
| &xslt4c; performs the transformations specified in the XSL stylesheet and produces a file, a stream, or a DOM as you |
| specify when you set up the transformation.<br/><br/></li> |
| <li>Along with a complete API for performing transformations in your C++ applications, &xslt4c; provides a <link |
| idref="commandline">command line</link> utility for convenient file-to-file transformations.<br/><br/></li> |
| <li>&xslt4c; supports C++ <link idref="extensions">extension functions</link></li> |
| </ul> |
| </s2> |
| |
| <anchor name="towork"/> |
| <s2 title="Getting to work with &xslt4c;"> |
| <p>For instructions and some suggestions about how to get started using &xslt4c;, see <link idref="download">Downloading &xslt4c;</link>, |
| <link idref="build_instruct">Building &xslt4c;</link>, and <link idref="install">Installing &xslt4c;</link>.</p> |
| </s2> |
| |
| <anchor name="uptospeed"/> |
| <s2 title="Getting up to speed with XSLT"> |
| <p>If you are still working through the details of the XSLT spec (the W3C 1.0 Recommendation), you may want |
| to consult one or more of the following:</p> |
| <ul> |
| <li>XSLT - XSL Transformations in |
| <jump href="http://www.brics.dk/~amoeller/XML/">The XML Revolution: Technologies for the future Web</jump> by |
| Anders Møller and Michael I. Schwartzbach (Web pages, but designed for sequential reading)</li> |
| <li>Crane Softwright's <jump href="http://www.CraneSoftwrights.com/training/">Free preview of Practical |
| Transformation Using XSLT and XPath</jump><br/><br/></li> |
| <li>Doug Tidwell's <jump href="http://www.oreilly.com/catalog/xslt/">XSLT</jump>, O'Reilly, 2001<br/><br/></li> |
| <li>Bob DuCharme's <jump href="http://www.manning.com/ducharme/index.html">XSLT Quickly</jump>, Manning Publications, |
| 2001<br/><br/></li> |
| <li>John Robert Gardner and Zarella Rendon's |
| <jump href="http://vig.prenhall.com/catalog/academic/product/1,4096,0130404462,00.html">XSLT and XPath: A Guide to |
| Transformations</jump>, Prentice-Hall, 2001<br/><br/></li> |
| <li>Michael Kay's <jump href="http://www.wrox.com/Books/Book_Details.asp?ISBN=1861005067">XSLT Programmer's |
| Reference</jump>, 2nd ed., Wrox Press, 2001<br/><br/></li> |
| <!-- |
| <li>Steven Holzner's <jump href="http://www.newriders.com/books/title.cfm?isbn=0735711364">Inside XSLT</jump>, |
| New Riders, 2001<br/><br/></li> |
| --> |
| <li>Neil Bradley's <jump href="http://www.aw-bc.com/catalog/academic/product/0,1144,0201770830,00.html">XSL Companion</jump>, |
| Addison-Wesley, 2000<br/><br/></li> |
| <!-- |
| <li>Khun Yee Fung's <jump href="http://www.awlonline.com/product/0,2627,0201711036,00.html">XSLT: Working with XML and |
| HTML</jump>, Addison-Wesley, 2001<br/><br/></li> |
| --> |
| <li>Dave Pawson's <resource-ref idref="dpawsonxslfaq"/> to search out particular answers and techniques<br/><br/></li> |
| <li>Miloslav Nic's <jump href="http://zvon.vscht.cz/HTMLonly/XSLTutorial/Books/Book1/index.html">XSL Tutorial</jump>, |
| a collection of stylesheet examples<br/><br/></li> |
| <li>Elliotte Rusty Harold's <jump href="http://www.ibiblio.org/xml/books/bible2/chapters/ch17.html">Chapter 17 of |
| the XML Bible: XSL Transformations</jump><br/><br/></li> |
| <li>The Mulberry <jump href="http://www.mulberrytech.com/xsl/xsl-list/">XSL-List -- Open Forum on XSL</jump> |
| (of interest to XSL users at all levels)<br/><br/></li> |
| <li>Objects by Design's <jump href="http://www.objectsbydesign.com/projects/xmi_to_html.html">Transforming XMI to |
| HTML</jump> (oriented towards XMI, "an XML-based, stream representation of a UML model," but also covers "generic" |
| XML transformations) and their related <jump href="http://objectsbydesign.com/projects/xslt/xslt_by_example.html">XSLT |
| by Example</jump><br/><br/></li> |
| <li>OASIS (the Organization for the Advancement of Structured Information Standards): |
| <jump href="http://www.oasis-open.org/cover/xsl.html">Extensible Stylesheet Language (XSL)</jump> by Robin |
| Cover<br/><br/></li> |
| <li>Donald Ball's <jump href="http://www.webslingerZ.com/balld/xsl/designer_manual.xml">A Guide to XML and XSL for |
| Designers</jump><br/><br/></li> |
| </ul> |
| <p>When you come across other useful introductory or background materials, please email <human-resource-ref |
| idref="xalandev"/>, so we can add them to this list.</p> |
| |
| </s2> |
| |
| <anchor name="glossary"/> |
| <s2 title="Glossary"> |
| <gloss> |
| <label>XSLT Namespace</label> |
| <item>The <jump href="http://www.w3.org/TR/REC-xml-names/">XML namespace</jump> for XSLT. An XML namespace is a |
| collection of element and attribute names, identified by a Unique Resource Identifier (URI), which often takes |
| the form of a URL, but is really just a unique string, not a pointer to a web page. The XSLT namespace URI is |
| http://www.w3.org/1999/XSL/Transform. In each XSLT stylesheet, you must declare this namespace in the stylesheet |
| element tag and bind it to a local prefix. Like the XSLT specification, we always use xsl as the XSLT namespace |
| prefix in our descriptions and examples, although you are free to bind any prefix to this namespace.<br/><br/></item> |
| |
| <label>XSL Instruction</label> |
| <item>Any tag associated with the XSLT namespace.<br/><br/></item> |
| |
| <label>Template</label> |
| <item>An element, usually with child elements, that specifies a "rule" or set of instructions to perform when a |
| particular kind of node is encountered in the source tree.<br/><br/></item> |
| |
| <label>XSL Template Instruction</label> |
| <item>Any tag that occurs inside an xsl:template element and is associated with the XSLT namespace.<br/><br/></item> |
| |
| <label>Source Tree</label> |
| <item>The XML tree input to the XSL process.<br/><br/></item> |
| |
| <label>Result Tree</label> |
| <item>The tree that is output by the XSL process.<br/><br/></item> |
| |
| <label>Match Pattern</label> |
| <item>The part of a template that defines the kind(s) of nodes to which the template applies.<br/><br/></item> |
| |
| </gloss> |
| <p>For more definitions of XSLT terminology, see Dave Pawson's <jump href="http://www.dpawson.co.uk/xsl/xslvocab.html">XSLT |
| Terminology Clarification</jump> and the Glossary in Michael Kay's |
| <jump href="http://www.wrox.com/Consumer/Store/Details.asp?ISBN=1861003129">XSLT Programmer's Reference</jump>.</p> |
| </s2> |
| </s1> |