| <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| <html> |
| <head> |
| <title>ASF: Xalan-C++ Overview</title> |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> |
| <meta http-equiv="Content-Style-Type" content="text/css" /> |
| <link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" /> |
| </head> |
| <!-- |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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. |
| --> |
| <body> |
| <div id="title"> |
| <table class="HdrTitle"> |
| <tbody> |
| <tr> |
| <th rowspan="2"> |
| <a href="../index.html"> |
| <img alt="Trademark Logo" src="resources/XalanC-Logo-tm.png" width="190" height="90" /> |
| </a> |
| </th> |
| <th text-align="center" width="75%"> |
| <a href="index.html">Xalan-C/C++ Version 1.11</a> |
| </th> |
| </tr> |
| <tr> |
| <td valign="middle">Xalan-C++ Overview</td> |
| </tr> |
| </tbody> |
| </table> |
| <table class="HdrButtons" align="center" border="1"> |
| <tbody> |
| <tr> |
| <td> |
| <a href="http://www.apache.org">Apache Foundation</a> |
| </td> |
| <td> |
| <a href="http://xalan.apache.org">Xalan Project</a> |
| </td> |
| <td> |
| <a href="http://xerces.apache.org">Xerces Project</a> |
| </td> |
| <td> |
| <a href="http://www.w3.org/TR">Web Consortium</a> |
| </td> |
| <td> |
| <a href="http://www.oasis-open.org/standards">Oasis Open</a> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <div id="navLeft"> |
| <ul> |
| <li> |
| <a href="resources.html">Resources</a> |
| <br /> |
| </li> |
| <li> |
| <a href="../index.html">Home</a> |
| </li></ul><hr /><ul> |
| <li> |
| <a href="index.html">Xalan-C++ 1.11</a> |
| </li> |
| <li> |
| <a href="whatsnew.html">What's New</a> |
| </li> |
| <li> |
| <a href="license.html">Licenses</a> |
| </li></ul><hr /><ul> |
| <li>Overview<br /> |
| </li> |
| <li> |
| <a href="charter.html">Charter</a> |
| </li></ul><hr /><ul> |
| <li> |
| <a href="download.html">Download</a> |
| </li> |
| <li> |
| <a href="buildlibs.html">Build Libraries</a> |
| </li> |
| <li> |
| <a href="install.html">Installation</a> |
| </li> |
| <li> |
| <a href="builddocs.html">Build Documents</a> |
| </li></ul><hr /><ul> |
| <li> |
| <a href="samples.html">Sample Apps</a> |
| </li> |
| <li> |
| <a href="commandline.html">Command Line</a> |
| </li> |
| <li> |
| <a href="usagepatterns.html">Usage Patterns</a> |
| </li></ul><hr /><ul> |
| <li> |
| <a href="programming.html">Programming</a> |
| </li> |
| <li> |
| <a href="extensions.html">Extensions</a> |
| </li> |
| <li> |
| <a href="extensionslib.html">Extensions Library</a> |
| </li> |
| <li> |
| <a href="apiDocs/index.html">API Reference</a> |
| </li></ul><hr /><ul> |
| <li> |
| <a href="faq.html">Xalan-C FAQs</a> |
| </li></ul><hr /><ul> |
| <li> |
| <a href="whatsnew.html#bugs">Bugs</a> |
| </li> |
| <li> |
| <a href="http://xalan.apache.org/old/xalan-j/test/run.html#how-to-run-c">Testing</a> |
| </li> |
| <li> |
| <a href="secureweb.html">Web Security</a> |
| </li> |
| </ul> |
| </div> |
| <div id="content"> |
| <h2>Xalan-C++ Overview</h2> |
| <ul> |
| <li> |
| <a href="#intro">Introduction</a> |
| </li> |
| <li> |
| <a href="#features">Xalan-C++ Features</a> |
| </li> |
| <li> |
| <a href="#towork">Getting to work with Xalan-C++</a> |
| </li> |
| <li> |
| <a href="#uptospeed">Getting up to speed with XSLT</a> |
| </li> |
| <li> |
| <a href="#glossary">Glossary</a> |
| </li> |
| </ul> |
| |
| <a name="intro"></a> |
| <p align="right" size="2"> |
| <a href="#content">(top)</a> |
| </p> |
| <h3>Introduction</h3> |
| <p>Xalan-C++ (named after a rare musical instrument) implements the <a href="http://www.w3.org/TR/xslt">W3C Recommendation 16 November 1999 XSL Transformations (XSLT) Version 1.0</a> and the |
| <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version 1.0</a>. 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 <a href="#uptospeed">Getting up to speed with |
| XSLT</a>.</p> |
| <table class="note"> |
| <tr> |
| <td class="noteImg"> |
| <img src="resources/note.gif" alt="note" /> |
| </td> |
| <td class="noteTxt">XSL also includes a vocabulary for formatting documents, which is not part of Xalan-C++. For more information, see |
| <a href="http://www.w3.org/TR/xsl">Extensible Stylesheet Language (XSL) Version 1.0 W3C Recommendation</a> and the <a href="http://xmlgraphics.apache.org/fop">Apache XML FOP (Formatting Objects Project) |
| </a>. |
| </td> |
| </tr> |
| </table> |
| <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> |
| <table class="note"> |
| <tr> |
| <td class="noteImg"> |
| <img src="resources/note.gif" alt="note" /> |
| </td> |
| <td class="noteTxt">The XSL stylesheet may generate and refer to cascading style sheets (<a href="http://www.w3.org/Style/CSS/">CSS</a>) |
| as part of its output. |
| </td> |
| </tr> |
| </table> |
| <p>In the following example, the foo.xsl stylesheet is used to transform foo.xml into foo.out:</p> |
| <p>foo.xml:</p> |
| <blockquote class="source"> |
| <pre> |
| <?xml version="1.0"?> |
| <doc>Hello</doc> |
| </pre> |
| </blockquote> |
| <p>foo.xsl:</p> |
| <blockquote class="source"> |
| <pre> |
| <?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> |
| </pre> |
| </blockquote> |
| <p>foo.out:</p> |
| <blockquote class="source"> |
| <pre><out>Hello</out></pre> |
| </blockquote> |
| |
| <a name="features"></a> |
| <p align="right" size="2"> |
| <a href="#content">(top)</a> |
| </p> |
| <h3>Xalan-C++ Features</h3> |
| <ul> |
| <li>Xalan-C++ fully implements the <a href="http://www.w3.org/TR/xslt">W3C Recommendation 16 November 1999 XSL Transformations (XSLT) Version 1.0</a>.</li> |
| <li>Xalan-C++ incorporates the <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version 1.0</a>.<br /> |
| <br /> |
| </li> |
| <li>Xalan-C++ uses <a href="http://xerces.apache.org/xerces-c/index.html">Xerces-C++</a> 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 <a href="http://www.w3.org/DOM">DOM</a>. |
| Xalan-C++ 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, Xalan-C++ provides a <a href="commandline.html">command line</a> utility for convenient file-to-file transformations.<br /> |
| <br /> |
| </li> |
| <li>Xalan-C++ supports C++ <a href="extensions.html">extension functions</a> |
| </li> |
| </ul> |
| |
| |
| <a name="towork"></a> |
| <p align="right" size="2"> |
| <a href="#content">(top)</a> |
| </p> |
| <h3>Getting to work with Xalan-C++</h3> |
| <p>For instructions and some suggestions about how to get started using Xalan-C++, see <a href="download.html">Downloading Xalan-C++</a>, |
| <a href="buildlibs.html">Building Xalan-C++</a>, and <a href="install.html">Installing Xalan-C++</a>.</p> |
| |
| |
| <a name="uptospeed"></a> |
| <p align="right" size="2"> |
| <a href="#content">(top)</a> |
| </p> |
| <h3>Getting up to speed with XSLT</h3> |
| <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>Crane Softwright's <a href="http://www.CraneSoftwrights.com/training/">Free preview of Practical |
| Transformation Using XSLT and XPath</a> |
| <br /> |
| <br /> |
| </li> |
| <li>Doug Tidwell's <a href="http://www.oreilly.com/catalog/xslt/">XSLT</a>, O'Reilly, 2001<br /> |
| <br /> </li> |
| <li>Bob DuCharme's <a href="http://www.manning.com/ducharme/index.html">XSLT Quickly</a>, Manning Publications, |
| 2001<br /> |
| <br /> |
| </li> |
| <li>John Robert Gardner and Zarella Rendon's |
| <a href="http://vig.prenhall.com/catalog/academic/product/1,4096,0130404462,00.html">XSLT and XPath: A Guide to |
| Transformations</a>, Prentice-Hall, 2001<br /> |
| <br /> |
| </li> |
| |
| |
| <li>Elliotte Rusty Harold's <a href="http://www.ibiblio.org/xml/books/bible2/chapters/ch17.html">Chapter 17 of |
| the XML Bible: XSL Transformations</a> |
| <br /> |
| <br /> |
| </li> |
| <li>The Mulberry <a href="http://www.mulberrytech.com/xsl/xsl-list/">XSL-List -- Open Forum on XSL</a> |
| (of interest to XSL users at all levels)<br /> |
| <br /> |
| </li> |
| <li>Objects by Design's <a href="http://www.objectsbydesign.com/projects/xmi_to_html.html">Transforming XMI to |
| HTML</a> (oriented towards XMI, "an XML-based, stream representation of a UML model," but also covers "generic" |
| XML transformations) and their related <a href="http://objectsbydesign.com/projects/xslt/xslt_by_example.html">XSLT |
| by Example</a> |
| <br /> |
| <br /> |
| </li> |
| |
| <li>OASIS (the Organization for the Advancement of Structured Information Standards): |
| <a href="http://www.oasis-open.org/cover/xsl.html">Extensible Stylesheet Language (XSL)</a> by Robin |
| Cover<br /> |
| <br /> |
| </li> |
| <li>Aaron Skonnard and Martin Gudgin's |
| <a href="http://www.theserverside.net/tt/books/addisonwesley/EssentialXML/index.tss">Essential |
| XML Quick Reference:</a> A Programmer's Reference to |
| XML, XPath, XSLT, XML Schema, SOAP and More. This reference is published by Addison Wesley, 2003, ISBN/0201740958.<br /> |
| <br /> |
| </li> |
| |
| </ul> |
| <p>When you come across other useful introductory or background materials, please email <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a>, so we can add them to this list.</p> |
| |
| |
| |
| <a name="glossary"></a> |
| <p align="right" size="2"> |
| <a href="#content">(top)</a> |
| </p> |
| <h3>Glossary</h3> |
| <div class="glossary"> |
| <p class="label"> |
| <em>XSLT Namespace</em> |
| </p> |
| <blockquote class="item">The <a href="http://www.w3.org/TR/REC-xml-names/">XML namespace</a> 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 /> |
| </blockquote> |
| |
| <p class="label"> |
| <em>XSL Instruction</em> |
| </p> |
| <blockquote class="item">Any tag associated with the XSLT namespace.<br /> |
| <br /> |
| </blockquote> |
| |
| <p class="label"> |
| <em>Template</em> |
| </p> |
| <blockquote class="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 /> |
| </blockquote> |
| |
| <p class="label"> |
| <em>XSL Template Instruction</em> |
| </p> |
| <blockquote class="item">Any tag that occurs inside an xsl:template element and is associated with the XSLT namespace.<br /> |
| <br /> |
| </blockquote> |
| |
| <p class="label"> |
| <em>Source Tree</em> |
| </p> |
| <blockquote class="item">The XML tree input to the XSL process.<br /> |
| <br /> |
| </blockquote> |
| |
| <p class="label"> |
| <em>Result Tree</em> |
| </p> |
| <blockquote class="item">The tree that is output by the XSL process.<br /> |
| <br /> |
| </blockquote> |
| |
| <p class="label"> |
| <em>Match Pattern</em> |
| </p> |
| <blockquote class="item">The part of a template that defines the kind(s) of nodes to which the template applies.<br /> |
| <br /> |
| </blockquote> |
| |
| </div> |
| <p>For more definitions of XSLT terminology, see Dave Pawson's <a href="http://www.dpawson.co.uk/xsl/xslvocab.html">XSLT |
| Terminology Clarification</a> and the Glossary in Michael Kay's |
| <a href="http://www.wrox.com/Consumer/Store/Details.asp?ISBN=1861003129">XSLT Programmer's Reference</a>.</p> |
| |
| <p align="right" size="2"> |
| <a href="#content">(top)</a> |
| </p> |
| </div> |
| <div id="footer">Copyright © 1999-2012 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Tue 2012-10-09</div> |
| </div> |
| </body> |
| </html> |