<?xml version="1.0"?>
<!DOCTYPE book SYSTEM "sbk:/style/dtd/book.dtd">
<!--
 * 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.
-->
<book title="Xalan Testing" copyright="2000 The Apache Software Foundation">

  <!--resources source="sbk:/sources/tests/resources.xml"/-->
  
  <document id="overview"
            label="Overview"
            source="tests/overview.xml"/>
			
  <document id="getstarted"
            label="Getting Started"
            source="tests/getstarted.xml"/>
			
  <separator/>
  
  <external href="apidocs/index.html" label="Java API"/>
  
  <separator/>
 
  <document id="faq"
            label="FAQ"
            source="tests/faq.xml"/>

  <document id="run"
            label="Running Tests"
            source="tests/run.xml"/>  
  
  <document id="submit"
            label="Writing New Tests"
            source="tests/submit.xml"/>
			
  <document id="design"
            label="Test Standards"
            source="tests/design.xml"/>

  <document id="xalanc"
            label="Xalan-C Tests"
            source="tests/xalanctests.xml"/>
  <separator/>
  <!-- How do you create a separator or item with text, but no link? -->
  <external href="http://xml.apache.org/xalan-j" label="Xalan-J 2.x"/>
  <external href="http://xml.apache.org/xalan" label="Xalan-J 1.x"/>
  <external href="http://xml.apache.org/xalan-c" label="Xalan-C 1.x"/>
			
</book>
  
