<?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>
&lt;?xml version="1.0"?>
&lt;doc>Hello&lt;/doc>
</source>
<p>foo.xsl:</p>
<source>
&lt;?xml version="1.0"?> 
&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
&lt;xsl:template match="doc">
&lt;out>&lt;xsl:value-of select="."/>&lt;/out>
&lt;/xsl:template>
&lt;/xsl:stylesheet>
</source>
<p>foo.out:</p>
<source>&lt;out>Hello&lt;/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&oslash;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> 
