blob: 0ec43f285ad660e6ae2da81817c060b8b99f30b1 [file] [log] [blame]
<!-- $Id$ -->
<html>
<head>
<title>Xerces2</title>
<link rel='stylesheet' type='text/css' href='css/site.css'>
<style type='text/css'>
.needs { font-size: smaller }
</style>
</head>
<body>
<span class='netscape'>
<a name='TOP'></a>
<h1>Xerces2</h1>
<a name='TOC'></a>
<h2>Table of Contents</h2>
<p>
<ul>
<li><a href='#Goals'>Goals</a></li>
<li><a href='#Scenarios'>Scenarios</a></li>
<li><a href='#Documentation'>Documentation</a></li>
<li><a href='#SourceCode'>Source Code</a>
<ul>
<li><a href='#SourceCode.MainBranches'>Main Branches</a></li>
<li><a href='#SourceCode.SupplementalBranches'>Supplemental Branches</a></li>
</ul>
</li>
</ul>
</p>
<hr>
<a name='Goals'></a>
<h2>Goals</h2>
<p>
The ultimate goal of the Xerces2 refactoring effort is to
develop an XML parser that is simple, clean, and modular.
By clearly defining the internal interfaces of the parser
components, the design of the parser will be better understood
and enable people to add features and fix bugs. Also, the
modularity of the design will enable custom configurations of
the parser that can be used in a wide variety of applications.
</p>
<a name='Scenarios'></a>
<h2>Scenarios</h2>
<p>
Xerces is a general purpose XML parser designed to be suitable
for a wide range of applications. A parser with better
performance can be written but it is believed that a general
design will suit a larger audience of XML application developers.
Therefore, any design should take into consideration what the
<em>users</em> of the parser need.
</p>
<p>
A few scenarios highlight the disparate needs of the developer
audience:
<ul>
<li>
<strong>XML Editor</strong><br>
<span class='needs'>grammar access; document
editing and events; re-validation</span>
</li>
<li>
<strong>Transaction Server that "Speaks" XML</strong><br>
<span class='needs'>high performance; grammar caching</span>
</li>
<li>
<strong>Client-side XML Applets</strong><br>
<span class='needs'>small footprint; serialization</span>
</li>
</ul>
</p>
<a name='Documentation'></a>
<h2>Documentation</h2>
<p>
<dl>
<!--
<dt><a href='schedule.html'>Implementation Schedule</a></dt>
-->
<dt><a href='coding.html'>Coding Conventions</a></dt>
<dt>Design Documents</dt>
<dd>
Evaluation of <a href='crimson.html'>Crimson</a> and
<a href='xerces.html'>Xerces</a> Code
</dd>
<dd><a href='architecture.html'>Xerces2 Architecture</a></dd>
<dd><a href='entities.html'>Entity Management</a></dd>
<dd><a href='issues.html'>Implementation Issues</a></dd>
<dt>Presentations</dt>
<dd>
<a href='http://www.apache.org/~andyc/speeches/20010407/Xerces2.ppt'>Xerces2</a> (PowerPoint 2000) <br>
07 Apr 2001: XML Developer's Day - Tokyo, Japan
</dd>
<dd>
<a href='http://www.apache.org/~andyc/speeches/20010611/xerces2ws.ppt'>Xerces2
Workshop</a> (PowerPoint 2000) <br>
11 Jun 2001: Xerces2 Workshop - Cupertino, CA
</dd>
<dt>Interfaces and Classes</dt>
<dd>
Design
[<a href='design.html'>.html</a>]
[<a href='css/design.css'>.css</a>]
[<a href='xml/design.dtd'>.dtd</a>]
[<a href='xml/design-all.xml'>.xml</a>]
[<a href='xsl/design.xsl'>.xsl</a>]
<!-- The DesignDoc program is currently broken. -Ac
[<a href='design.zip'>.zip</a>]
-->
</dd>
<dt>Useful Programs</dt>
<dd>
Stylesheet
[<a href='src/Stylesheet.java'>.java</a>]
[<a href='src/Stylesheet.class'>.class</a>]
</dd>
<!-- The DesignDoc program is currently broken. -Ac
<dd>
DesignDoc
[<a href='src/DesignDoc.java'>.java</a>]
[<a href='src/DesignDoc.class'>.class</a>]
[<a href='src/DesignDoc$IndentingWriter.class'>.class</a>]
</dd>
-->
</dl>
</p>
<a name='SourceCode'></a>
<h2>Source Code</h2>
<p>
The source code is available in the Apache CVS repository
in the "xerces_j_2" branch of the "xml-xerces" module. For
anonymous access to the source code, use the following
commands to checkout the code into a local directory named
"x2":
<pre>
set CVSROOT=:pserver:anoncvs@cvs.apache.org:/home/cvspublic
cvs login <em>(password: anoncvs)</em>
cvs checkout -d x2 -r xerces_j_2 xml-xerces/java
</pre>
</p>
<a name='SourceCode.MainBranches'></a>
<h3>Main Branches</h3>
<p>
<table border='0' cellspacing='2' cellpadding='3'>
<tr><th>Branch</th><th>Description</th></tr>
<tr>
<td>xerces_j_2</td>
<td>
Main development branch for the Xerces2 implementation.
</td>
</tr>
<tr>
<td>x2m1</td>
<td>
Milestone 1<br>
The code from this milestone implements basic document parsing.
Only element, attributes, and text content is supported; all other
XML constructs are <strong>not</strong> supported. The SAXParser
and SAX examples can be used to test the code.
</td>
</tr>
<!--
<tr>
<td></td>
<td>
</td>
</tr>
-->
</table>
</p>
<a name='SourceCode.SupplementalBranches'></a>
<h3>Supplemental Branches</h3>
<p>
All of the supplemental branches are created from the main
development branch named "xerces_j_2". Supplemental branches are
used for discovery work with the intention that code and/or
ideas from the branch will be merged back into the "xerces_j_2"
branch.
</p>
<p>
<table border='0' cellspacing='2' cellpadding='3'>
<tr><th>Branch</th><th>Description</th></tr>
<tr>
<td>x2entities</td>
<td>
Code to implement a bare bones entity management system.
<strong>Warning:</strong> The entity scanner is very inefficient
and is not for production use. This entity scanner is only used
to implement the essential entity scanning methods needed by the
document scanner. <em>Note:</em> This branch is no longer needed
and the files have been removed.
<dl style='margin: 0'>
<dt>Contents:</dt>
<dd>src/org/apache/xerces/readers/XMLEntityManager.java</dd>
<dd>src/org/apache/xerces/readers/XMLEntityScanner.java</dd>
</dl>
</td>
</tr>
<tr>
<td>x2design</td>
<td>
A re-organization of class and interface packages to seperate core
functionality from implementation. <em>Note:</em> This
work has now been merged back into the "xerces_j_2" branch.
<dl style='margin: 0'>
<dt>Contents:</dt>
<dd>design/xml/design.xml</dd>
</dl>
</td>
</tr>
<tr>
<td>parserConfig</td>
<td>
Experimentation with parser configuration. <em>Note:</em> This
work has now been merged back into the "xerces_j_2" branch.
<dl style='margin: 0'>
<dt>Contents:</dt>
<dd>src/org/apache/xerces/parsers (directory)</dd>
</dl>
</td>
</tr>
<!--
<tr>
<td></td>
<td>
</td>
</tr>
-->
</table>
</p>
</span>
<a name='BOTTOM'></a>
<hr>
<span class='netscape'>
Author: Andy Clark <br>
Last modified: $Date$
</span>
</body>
</html>