<?xml version="1.0"?>
<!DOCTYPE book SYSTEM "sbk:/style/dtd/book.dtd">

<!--
 * The Apache Software License, Version 1.1
 *
 *
 * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights 
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer. 
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution,
 *    if any, must include the following acknowledgment:  
 *       "This product includes software developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowledgment may appear in the software itself,
 *    if and wherever such third-party acknowledgments normally appear.
 *
 * 4. The names "Xalan" and "Apache Software Foundation" must
 *    not be used to endorse or promote products derived from this
 *    software without prior written permission. For written 
 *    permission, please contact apache@apache.org.
 *
 * 5. Products derived from this software may not be called "Apache",
 *    nor may "Apache" appear in their name, without prior written
 *    permission of the Apache Software Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation and was
 * originally based on software copyright (c) 1999, Lotus
 * Development Corporation., http://www.lotus.com.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 -->

<book title="Xalan XSL Transformer User's Guide" copyright="2002 The Apache Software Foundation">
  <resources source="sbk:/sources/xalan/resources.xml"/>
  <document id="whatsnew" label="What's New" source="xalan/whatsnew.xml"/>
  <document id="dtm" label="DTM" source="xalan/dtm.xml"/>
  <document id="xsltc_usage" label="XSLTC Translets" source="xalan/xsltc_usage.xml"/>
  <separator/>
  <document id="overview" label="Overview" source="xalan/overview.xml"/>
  <document id="getstarted" label="Getting Started" source="xalan/getstarted.xml"/>
  <separator/>
  <faqs id="faq" label="FAQs" source="xalan/faq.xml"/>
  <separator/>
  <document id="samples" label="Sample Apps" source="xalan/samples.xml"/>
  <document id="commandline" label="Command Line" source="xalan/commandline.xml"/>
  <separator/>
  <document id="usagepatterns" label="Usage Patterns" source="xalan/usagepatterns.xml"/>
  <document id="features" label="Features" source="xalan/features.xml"/>
  <separator/>
  <document id="trax" label="TrAX" source="xalan/trax.xml"/>
  <external href="apidocs/index.html" label="API (Javadoc)"/>
  <separator/>
  <document id="extensions" label="Extensions" source="xalan/extensions.xml"/>
  <document id="extensionslib" label="Extensions Library" source="xalan/extensionslib.xml"/>
  <document id="extensions_xsltc" label="XSLTC Exts" source="xalan/extensions_xsltc.xml"/>
  <separator/>
  <document id="readme" label="Release Notes" source="xalan/readme.xml"/>
  <hidden id="history" source="xalan/history.xml"/>
  <hidden id="xsltc_history" source="xalan/xsltc_history.xml"/>
  <hidden id="commandline_xsltc" source="xalan/commandline_xsltc.xml"/>
  <separator/>
  <external href="design/design2_0_0.html" label="Xalan 2 Design"/>
  <external href="xsltc/index.html" label="XSLTC Design"/>
  <separator/>
  <external href="readme.html#bugs" label="Bugs"/>
  <external href="http://xml.apache.org/xalan-j/test/overview.html" label="Testing"/>
  <document id="builds" label="Builds" source="xalan/builds.xml"/>
  <separator/>
  <external href="readme.html#developer-list" label="Credits"/>
  <external href="xsltc/todo.html#developer-list" label="XSLTC Credits"/>  
</book>
