<!-- $Id: overview.html,v 1.2 2004/09/09 20:38:21 rdonkin Exp $
  
 Copyright 2001-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>Overview Documentation for COMMONS-DIGESTER</title>
</head>
<body bgcolor="white">
The <em>Digester</em> component of the Jakarta Commons subproject supports
rules-based processing of arbitrary XML documents.</p>

<p>See the
<a href="org/apache/commons/digester/package-summary.html#package_description">
Package Description</a> for the <code>org.apache.commons.digester</code>
package for more information.</p>
</body>
</html>
