<!--
 * Copyright 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.
-->
<html>
<head><title>Xalan-Java 2</title></head>
<body>
<p>Xalan-Java implements the <A href="http://www.w3.org/TR/xslt" target="_top">W3C Recommendation 16 November 1999 XSL
Transformations (XSLT) Version 1.0</A>.</p>
<p>XLST is a stylesheet language for transforming XML documents into other XML documents, HTML documents, 
other document types, or text. The language includes the XSL Transformation vocabulary and XPath, a language for
addressing parts of an XML document. An XSL stylesheet describes how to transform the tree of nodes in the XML
input into another tree of nodes.</p>
</body>
</html>