Index: /home/ekuns/workspace/castor-1/src/doc/sourcegen.xml
===================================================================
--- /home/ekuns/workspace/castor-1/src/doc/sourcegen.xml	(revision 6550)
+++ /home/ekuns/workspace/castor-1/src/doc/sourcegen.xml	(working copy)
@@ -1,6 +1,5 @@
-<?xml version="1.0"?>
-
-<document url="http://castor.org/sourcegen.xml">
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<document url="http://castor.codehaus.org/sourcegen.xml">
 
   <properties>
     <title>The Source Code Generator</title>
@@ -7,8 +6,8 @@
     <author email="keith AT kvisco DOT com">Keith Visco</author>
     <author email="blandin@intalio.com">Arnaud Blandin</author>
     <abstract>
-       Describes how to use the Source Code Generator, and what
-       is currently supported.
+       Describes how to use the Source Code Generator, and what features and
+       options are currently supported.
     </abstract>
     <status>Draft</status>
   </properties>
@@ -17,7 +16,10 @@
 
     <title>Using the Source Code Generator</title>
     <header>
-      <p>API Reference: <api package="org.exolab.castor.builder">The Source Builder API</api></p>
+      <p>
+        API Reference: <api package="org.exolab.castor.builder">The Source
+         Builder API</api>
+      </p>
     </header>
 
     <section title="News">
@@ -22,222 +24,289 @@
 
     <section title="News">
 
-	    <section title="Source generation &amp; Java 5.0">
-	
-	        <p>Since <b>release 1.0.2</b>, the Castor source generator now supports the 
-	           generation of Java 5.0 compliant code. The generated code - with the 
-	           new feature enabled - will make use of the following Java 5.0-specific
-	           artefacts:
-	           
-	           <ul>
-	            <li>Use of parameterized collections, e.g. ArrayList&lt;String&gt;.</li>
-	            <li>Use of @Override annotations with the generated methods 
-	                that require it.</li>
-	            <li>Use of @SupressWarnings with "unused" method parameters 
-	                on the generated methods that needed it.</li>
-	            <li>Added "enum" to the list of reserved keywords.</li>
-	           </ul></p>
-	                   
-	        <p>To enable this feature (off by default), please uncomment the
-	           following property in your custom <tt>castorbuilder.properties</tt>
-	           file:</p>
-	                   
-	        <code-panel>
-	# This property specifies whether the sources generated
-	# should comply with java 1.4 or 5.0; defaults to 1.4
-	org.exolab.castor.builder.javaVersion=5.0
-	        </code-panel>
-	                
-	    </section>
+      <section title="Source generation &amp; Java 5.0">
+
+        <p>
+          Since <b>release 1.0.2</b>, the Castor source generator supports
+          the generation of Java 5.0 compliant code. The generated code --
+          with the new feature enabled -- will make use of the following
+          Java 5.0-specific artifacts:
+        </p>
+
+        <ul>
+          <li>
+            Use of parameterized collections, e.g.
+            <tt>ArrayList&lt;String&gt;</tt>.
+          </li>
+          <li>
+            Use of <tt>@Override</tt> annotations with the generated methods
+            that require it.
+          </li>
+          <li>
+            Use of <tt>@SuppressWarnings</tt> with "unused" method parameters
+            on the generated methods that needed it.
+          </li>
+          <li>Added "enum" to the list of reserved keywords.</li>
+        </ul>
+
+        <p>
+          To enable this feature (off by default), please add or uncomment
+          the following property in your custom
+          <tt>castorbuilder.properties</tt> file:
+        </p>
+
+        <code-panel>
+# Specifies whether the sources generated should be source compatible with
+# Java 1.4 or Java 5.  Legal values are "1.4" and "5.0".  When "5.0" is
+# selected, generated source will use Java 5 features such as generics and
+# annotations.
+# Defaults to "1.4".
+#
+org.exolab.castor.builder.javaVersion=5.0
+        </code-panel>
+
+      </section>
 
     </section>
-    
+
     <section title="Introduction">
 
+      <p>
+        Castor's Source Code Generator creates a set of Java classes which
+        represent an object model for an XML Schema (W3C XML Schema 1.0 Second
+        Edition, Recommendation)<sup>1</sup>, as well as the necessary Class
+        Descriptors used by the <a href="xml-framework.xml">marshaling
+        framework</a> to obtain information about the generated classes.
+      </p>
 
-      <p>Castor's Source Code Generator creates
-         a set of Java classes
-         which represent an object model for an XML Schema
-         (W3C XML Schema, 20010502 Recommendation)<sup>1</sup>, as well as the
-         necessary Class Descriptors used by the <a href="xml-framework.xml">marshalling framework</a>
-         to obtain information about the generated classes.
-         <note>
-            Currently the generated source files will need to be compiled. We
-            will be adding an Ant taskdef eventually to handle this automatically.
-         </note>
-     </p>
+      <note>
+        The generated source files will need to be compiled.  A later
+        release may add an Ant taskdef to handle this automatically.
+      </note>
 
-        <code-panel top-caption="Example:">
+      <code-panel top-caption="Example:">
 java org.exolab.castor.builder.SourceGeneratorMain -i foo-schema.xsd \
     -package com.xyz
-        </code-panel>
+      </code-panel>
+
+      <p>
+        This will generate a set of source files from the the XML Schema
+        <tt>foo-schema.xsd</tt> and place them in the package
+        <tt>com.xyz</tt>.
+      </p>
+
+      <p>
+        To compile the generated classes, simply run javac or your favorite
+        compiler:
+      </p>
 
-      <p>This will generate a set of source files from the the XML Schema, foo-schema.xsd,
+      <code-panel>javac com/xyz/*.java</code-panel>
 
-         and place them in the com/xyz/* package.</p>
+      <p>
+        Created class will have marshal and unmarshal methods which are used to
+        go back and forth between XML and an Object instance.
+      </p>
 
+    </section>
 
+    <section title="Source Generator Options">
 
-      <p>To compile the generated classes simply run javac, or your favorite compiler:
+      <tip>
+        For additional information about the Source Generator and its options,
+        you can download the <a href="./SourceGeneratorUser.pdf">Source
+        Generator User Document (PDF).</a> Please note that the use of a
+        binding file is not dicussed in that document.
+      </tip>
 
-         <code-panel>javac com/xyz/*.java</code-panel>
+      <p>
+        The source code generator has a number of different options which may
+        be set. Some of these are done using the command line and others are
+        done using a properties file located by default at
+        <tt>"org/exolab/castor/builder/castorbuilder.properties"</tt>.
       </p>
 
-      <p>Created class will have marshal and unmarshal methods which are used to go back
+      <section title="Command Line Options">
 
-         and forth between XML and an Object instance.</p>
+        <ctable border="1" cellspacing="0">
+          <cheader>
+            <th align="center">Option</th>
+            <th>Args</th>
+            <th>Description</th>
+            <th>Optional?</th>
+          </cheader>
+          <crow>
+            <td align="center">i</td>
+            <td><i>filename</i></td>
+            <td>The input XML Schema file</td>
+            <td>Required</td>
+          </crow>
+          <crow>
+            <td align="center">package</td>
+            <td><i>package-name</i></td>
+            <td>The package for the generated source</td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">dest</td>
+            <td><i>path</i></td>
+            <td>
+              The destination directory in which to create the generated source
+            </td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">line-separator</td>
+            <td><i>unix | mac | win</i></td>
+            <td>
+              Sets the line separator style for the desired platform. This is
+              useful if you are generating source on one platform, but will
+              be compiling/modifying on another platform.
+            </td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">types</td>
+            <td><i>type-factory</i></td>
+            <td>
+              Sets which type factory to use. This is useful if you want JDK
+              1.2 collections instead of JDK 1.1 or if you want to pass in your
+              own FieldInfoFactory (see <a href="#Collection-Types">Collection
+              types</a>).
+            </td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">h</td>
+            <td><br/></td>
+            <td>Shows the help/usage information.</td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">f</td>
+            <td><br/></td>
+            <td>
+              Forces the source generator to suppress all non-fatal errors,
+              such as overwriting pre-existing files.</td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">nodesc</td>
+            <td><br/></td>
+            <td>Do not generate the class descriptors</td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">nomarshall</td>
+            <td><br/></td>
+            <td>
+              Do not generate the marshaling framework methods (marshal,
+              unmarshal, validate)</td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">testable</td>
+            <td><br/></td>
+            <td>
+              Generate the extra methods used by the CTF (Castor Testing
+              Framework)
+            </td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">sax1</td>
+            <td><br/></td>
+            <td>
+              Generate marshaling methods that use the SAX1 framework
+              (default is false).
+            </td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">binding-file</td>
+            <td>The binding file name.</td>
+            <td>
+              Configures the use of a Binding File to allow finely-grained
+              control of the generated classes
+            </td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">generateImportedSchemas</td>
+            <td><br/></td>
+            <td>
+              Generates sources for imported XML Schemas in addition to the
+              schema provided on the command line (default is false).
+            </td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">case-insensitive</td>
+            <td><br/></td>
+            <td>
+              The generated classes will use a case insensitive method for
+              looking up enumerated type values.
+            </td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">verbose</td>
+            <td><br/></td>
+            <td>Enables extra diagnostic output from the source generator</td>
+            <td>Optional</td>
+          </crow>
+          <crow>
+            <td align="center">fail</td>
+            <td><br/></td>
+            <td>
+              Instructs the source generator to fail on the first error. When
+              you are trying to figure out what is failing during source
+              generation, this option will help.
+            </td>
+            <td>Optional</td>
+          </crow>
+        </ctable>
 
-    </section>
+        <section title="Collection Types">
 
-    <section title="Source Generator Options">
+          <p>
+            The source code generator has the ability to use the following
+            types of collections when generating source code:
+          </p>
 
-      <tip>For additional information about the Source Generator and options, you can 
-           download the <a href="./SourceGeneratorUser.pdf">Source Generator User 
-           Document(PDF).</a> Please note that the usage of the binding file is 
-           not dicussed in that document.</tip>
+          <ctable>
+            <crow>
+              <th>Type</th>
+              <th>Value</th>
+              <th>Default</th>
+            </crow>
+            <crow>
+              <td>Java 1.1</td>
+              <td><i>default</i></td>
+              <td><tt>java.util.Vector</tt></td>
+            </crow>
+            <crow>
+              <td>Java 1.2</td>
+              <td><tt>-type j2</tt></td>
+              <td><tt>java.util.Collection</tt></td>
+            </crow>
+            <crow>
+              <td>ODMG 3.0</td>
+              <td><tt>-types odmg</tt></td>
+              <td><tt>odmg.DArray</tt></td>
+            </crow>
+          </ctable>
 
-       <p>The source code generator has a number of different options which
-          may be set. Some of these are done using the command line, and 
-          others are done using a properties file located at 
-          <tt>"org/exolab/castor/builder/castorbuilder.properties"</tt>.</p>
+          <p>
+            You can also write your own FieldInfoFactory to handle specific
+            collection types. All you have to do is to pass in the fully
+            qualified name of that FieldInfoFactory as follows:
+          </p>
 
-       <section title="Command Line Options">
-        
-          <ctable border="1" cellspacing="0">
-             <cheader>
-               <th align="center">Option</th>
-               <th>Args</th>
-               <th>Description</th>
-               <th>Optional?</th>
-             </cheader>
-             <crow>
-               <td align="center">i</td>
-               <td><i>filename</i></td>
-               <td>The input XML Schema file</td>
-               <td>Required</td>
-             </crow>
-             <crow>
-               <td align="center">package</td>
-               <td><i>package-name</i></td>
-               <td>The package for the generated source</td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">dest</td>
-               <td><i>path</i></td>
-               <td>The destination in which to put the generated source</td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">line-separator</td>
-               <td><i>unix | mac | win</i></td>
-               <td>Sets the line separator style for the desired platform. This is
-                   useful if you are generating source on one platform, but will
-                   be compiling/modifying on another platform.</td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">types</td>
-               <td><i>type-factory</i></td>
-               <td>Sets which type factory to use. This is useful if you want JDK 1.2 
-                   collections instead of JDK 1.1 or if you want to pass in your own 
-                   FieldInfoFactory (see <a href="#Collection Types">Collection types</a>).
-               </td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">h</td>
-               <td><br/></td>
-               <td>Shows the help/usage screen.</td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">f</td>
-               <td><br/></td>
-               <td>Forces the source generator to supress all non-fatal errors, such
-                   as overwriting of pre-existing files.</td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">nodesc</td>
-               <td><br/></td>
-               <td>Do not generate the class descriptors</td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">nomarshall</td>
-               <td><br/></td>
-               <td>Do not generate the marshalling framework methods (marshall, unmarshall, validate)</td>
-               <td>Optional</td>
-             </crow>
-			 <crow>
-               <td align="center">testable</td>
-               <td><br/></td>
-               <td>Generate the specific methods used by the Castor Marshalling Framework</td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">sax1</td><td><br/></td>
-               <td>Generate marshalling methods that are using SAX1 framework (default is false).</td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">binding-file</td><td>The binding file name.</td>
-               <td>Allows the setting of a Binding File to allow a fine-grained control 
-                   the classes generated</td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">generateImportedSchemas</td>
-               <td><br/></td>
-               <td>Generates automatically sources for imported XML Schemas (default is false).</td>
-               <td>Optional</td>
-             </crow>
-             <crow>
-               <td align="center">case-insensitive</td><td><br/></td>
-               <td>The generated classes will use a case insensitive method for looking up 
-                   enumerated type values.</td>
-               <td>Optional</td>
-             </crow>
-          </ctable>
+          <code-panel>-types com.personal.MyCoolFactory</code-panel>
 
-         <section title="Collection Types">
-            
-             <p>The source code generator has the ability to use the following types 
-                of collections when generating source code:</p>
-      
-             <ctable>
-             	<crow>
-             		<th>Type</th>
-             		<th>Value</th>
-             		<th>Default</th>
-             	</crow>
-             	<crow>
-             		<td>Java 1.1</td>
-             		<td><i>default</i></td>
-             		<td><tt>java.util.Vector</tt></td>
-             	</crow>
-             	<crow>
-             		<td>Java 1.2</td>
-             		<td><tt>-type j2</tt></td>
-             		<td><tt>java.util.Collection</tt></td>
-             	</crow>
-             	<crow>
-             		<td>ODMG 3.0</td>
-             		<td><tt>-types odmg</tt></td>
-             		<td><tt>odmg.DArray</tt></td>
-             	</crow>
-             </ctable>
-                
-             <p>You can also write your own FieldInfoFactory to handle specific collection 
-                types. All you have to do is to pass in the fully qualified name of 
-                that FieldInfoFactory as follows:</p>
-                
-             <code-panel>-types com.personal.MyCoolFactory</code-panel>
-    
-         </section>
+        </section>
 
-       </section>
+      </section>
 
     </section>
 
@@ -243,25 +312,31 @@
 
     <section title="XML Schema">
 
-       <p>
-          The input file to the source code generator is an XML Schema<sup>2</sup>.
-          The current supported version is the <b>W3C XML Schema Recommendation</b><sup>1</sup>.
-          For more information about XML Schema Support, check the <a href="xmlschema.xml">XML Schema page</a>
-       </p>
-
+      <p>
+        The input file for the source code generator is an XML
+        Schema<sup>2</sup>.  The currently supported version is the
+        <b>W3C XML Schema 1.0, Second Edition Recommendation</b><sup>1</sup>.
+        For more information about XML Schema Support, check the
+        <a href="xmlschema.xml">XML Schema page</a>
+      </p>
 
     </section>
 
-   <section>
-      <body-note><sup>1</sup>Castor 0.9.4.1 uses <a href="http://www.w3.org/TR/XMLschema-1"> XML Schema Recommendation 20010502</a></body-note>
+    <section>
+      <body-note>
+        <sup>1</sup>Castor supports the
+        <a href="http://www.w3.org/TR/XMLschema-1">XML Schema 1.0 Second
+        Edition Recommendation</a></body-note>
       <body-note>
-         <sup>2</sup>XML Schema is a <a href="http://www.w3.org">W3C</a> Recommendation
+        <sup>2</sup>XML Schema is a <a href="http://www.w3.org">W3C</a>
+        Recommendation
       </body-note>
       <body-note>
-         <sup>3</sup>XPath is a <a href="http://www.w3.org">W3C</a> Recommendation
+        <sup>3</sup>XPath is a <a href="http://www.w3.org">W3C</a>
+        Recommendation
       </body-note>
 
-   </section>
+    </section>
 
   </body>
 
@@ -266,4 +341,3 @@
   </body>
 
 </document>
-
Index: /home/ekuns/workspace/castor-1/src/doc/srcgen-binding.xml
===================================================================
--- /home/ekuns/workspace/castor-1/src/doc/srcgen-binding.xml	(revision 6550)
+++ /home/ekuns/workspace/castor-1/src/doc/srcgen-binding.xml	(working copy)
@@ -1,9 +1,8 @@
-<?xml version="1.0"?>
-
-<document url="http://castor.org/srcgen-binding.xml">
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<document url="http://castor.codehau.org/srcgen-binding.xml">
 
   <properties>
-    <title>Castor XML - Code generator bindings</title>
+    <title>Castor XML -- Code generator bindings</title>
     <author email="werner DOT guttmann AT gmx DOT net">Werner Guttmann</author>
     <abstract>
        Describes the binding file available with the Castor XML code generator.
@@ -13,11 +12,14 @@
 
   <body>
 
-    <title>Castor XML - Code generator bindings</title>
+    <title>Castor XML -- Code generator bindings</title>
 
     <section title="Introduction">
 
-		<p>Blah</p>
+      <p>
+        This section defines the Castor XML binding file and describes, with
+        examples, how to use it.
+      </p>
 
     </section>
 
@@ -22,21 +24,41 @@
     </section>
 
     <section title="Binding File">
-       <p>It may appear that the default binding used to generate the Java Object Model from an XML schema doesn't
-       meet one's expectation. For instance, the default binding won't deal with naming collision problems that can appear since XML Schema allows
-       an element declaration and a complexType definition to both share the same name. From a Java standpoint, it will result in the creation of
-       two classes with the same qualified name: the second class generated will simply overwrite the first one.
-       Another example is when one user wants to change the default datatype binding provided by Castor or to add validation rules by implementing his own validator
-       and passing it to the SourceGenerator.</p>
+
+      <p>
+        The default binding used to generate the Java Object Model from an XML
+        schema may not meet your expectations. For instance, the default
+        binding doesn't deal with naming collisions that can appear because
+        XML Schema allows an element declaration and a complexType definition
+        to use the same name.  The source generator will attempt to create two
+        Java classes with the same qualified name.  However, the second class
+        generated will simply overwrite the first one.
+      </p>
+
+      <p>
+        Another example of where the default source generator binding may not
+        meet your expectations is when you want to change the default datatype
+        binding provided by Castor or when you want to add validation rules by
+        implementing your own validator and passing it to the Source Generator.
+      </p>
 
-       <p>The Binding declaration is an XML based language that allows the user to define such control on the generated classes.
-       The aim of this section is to provide an overview of the binding file as well as a definition of the several XML components used to define this binding file.
-       A more in-depth presentation  will be available soon in the
-      <a href="./SourceGeneratorUser.pdf">Source Generator User Document(PDF).</a></p>
+      <p>
+        The Binding declaration is an XML-based language that allows the user
+        to control and tweak details about source generation for the generated
+        classes.  The aim of this section is to provide an overview of the
+        binding file and a definition of the several XML components used to
+        define this binding file.
+      </p>
+
+      <p>
+        A more in-depth presentation  will be available soon in the
+        <a href="./SourceGeneratorUser.pdf">Source Generator User Document
+        (PDF).</a>
+      </p>
 
       <section title="&lt;binding> element">
-         <code-panel>
-&lt;binding
+        <code-panel><![CDATA[
+<binding
     defaultBindingType = (element|type)>
     (include*,
      package*,
@@ -45,70 +67,127 @@
      attributeBinding,
      complexTypeBinding,
      groupBinding)
-&lt;/binding></code-panel>
-          <p>The binding element is the root element and contains the binding information. The attribute <code>defaultBindingType</code> controls the
-          <a href="#Class-Creation/Mapping">Class creation type</a></p>
-          <tip>
-             Be careful when using <b>defaultBindingType</b> attribute
-             as it will override the binding type specified in the
-             <i>castorbuilder.properties</i> file.
-          </tip>
+</binding>]]></code-panel>
+
+        <p>
+          The binding element is the root element and contains the binding
+          information. The attribute <tt>defaultBindingType</tt> controls
+          the Class creation type.
+        </p>
+
+        <!-- FIXME:  We need documentation on the defaultBindingType ...
+             the paragraph above had a link within this document to a
+             section that did not exist.  -->
+
+        <tip>
+          Be careful when using <b>defaultBindingType</b> attribute as it
+          will override the binding type specified in the
+          <tt>castorbuilder.properties</tt> file.
+        </tip>
+
       </section>
 
       <section title="&lt;include> element">
-         <code-panel>
+        <code-panel>
 &lt;include
     URI = xsd:anyURI/></code-panel>
-          <ul>
-             <li><b>URI:</b>The URI of the binding file to include.</li>
-          </ul>
-          <p>This element allows one to include the binding declaration defined in another file. This allows re-usability of Binding files defined for various
-          XML Schemas.</p>
+
+        <ul>
+          <li><b>URI:</b>The URI of the binding file to include.</li>
+        </ul>
+
+        <p>
+          This element allows you to include a binding declaration defined in
+          another file. This allows reuse of Binding files defined for various
+          XML Schemas.
+        </p>
       </section>
 
       <section title="&lt;package> element">
-         <code-panel>
-&lt;package>
+        <code-panel><![CDATA[
+<package>
     name = xsd:string
     (namespace|schemaLocation) = xsd:string>
-&lt;/package></code-panel>
-          <ul>
-             <li><b>name:</b>A fully qualified java package name.</li>
-             <li><b>namespace:</b>An XML namespace that will be mapped to the package name defined by the <i>name</i> element.</li>
-             <li><b>schemaLocation:</b>A URL that locates the schema to be mapped to the package name defined by the <i>name</i> element.</li>
-          </ul>
-          <p>The <i>targetNamespace</i> attribute of an XML Schema identifies the namespace in which the XML language is defined. Such language namespace is defined
-          in the java language as package declaration. The &lt;package/> element allows you to define the mapping between an XML namespace and a Java package.
-          Moreover XML Schema allows you to factorize the definition of an XML Schema identified by a unique namespace by including several XML Schemas to build
-          one XML Schema using the &lt;xsd:include/> element (Please make sure you understand the difference between &lt;xsd:include/> and &lt;xsd:import/>).
-          &lt;xsd:include/> relies on the URI of the included XML schema and it can be needed to keep the structure hierarchy defined in XML Schema in the Java
-          package generated. Thus the binding file allows to define the mapping between a schemaLocation attribute and a Java package.</p>
+</package>]]></code-panel>
+
+        <ul>
+          <li>
+            <b>name:</b>A fully qualified java package name.
+          </li>
+          <li>
+            <b>namespace:</b>An XML namespace that will be mapped to the
+            package name defined by the <i>name</i> element.
+          </li>
+          <li>
+            <b>schemaLocation:</b>A URL that locates the schema to be
+            mapped to the package name defined by the <i>name</i> element.
+          </li>
+        </ul>
+
+        <p>
+          The <i>targetNamespace</i> attribute of an XML Schema identifies
+          the namespace in which the XML schema elements are defined. This
+          language namespace is defined in the generated Java source as a
+          package declaration. The <tt>&lt;package/></tt> element allows you to define
+          the mapping between an XML namespace and a Java package.
+        </p>
+
+        <p>
+          Moreover, XML Schema allows you to factor the definition of an XML
+          Schema identified by a unique namespace by including several XML
+          Schemas instances to build one XML Schema using the
+          <tt>&lt;xsd:include/></tt> element.  Please make sure you understand
+          the difference between <tt>&lt;xsd:include/></tt> and
+          <tt>&lt;xsd:import/></tt>.  <tt>&lt;xsd:include/></tt> relies on the
+          URI of the included XML schema.  This element allows you to keep the
+          structure hierarchy defined in XML Schema in a single generated Java
+          package.  Thus the binding file allows you to define the mapping
+          between a schemaLocation attribute and a Java package.
+        </p>
       </section>
 
-     <section title="&lt;namingXML> element">
-        <code-panel>
-&lt;namingXML>
+      <section title="&lt;namingXML> element">
+        <code-panel><![CDATA[
+<namingXML>
    (elementName,complexTypeName,modelGroupName)
-&lt;/namingXML>
+</namingXML>
 
-&lt;elementName|complexTypeName|modelGroupName>
+<elementName|complexTypeName|modelGroupName>
     (prefix?, suffix?) = xsd:string
-&lt;/elementName|complexTypeName|modelGroupName></code-panel>
-         <ul>
-            <li><b>prefix:</b>The prefix to add to the names of the generated classes.</li>
-            <li><b>suffix:</b>The suffix to append to the the names of the generated classes</li>
-         </ul>
-         <p>One of the aim of the binding file is to avoid naming collisions. Indeed XML Schema allows elements and complexTypes to share the same name which
-         results in name collisions when generated the sources. Defining a binding for every element and complexType that share the same name is sometimes not
-         a convenient solution (for instance the BPML XML Schema or the UDDI v2.0 XML Schema use the same names for top-level complexTypes and top-level elements).
-         The aim of the &lt;naming/> XML element is to define a prefix and a suffix for the names of the classes generated for an element,
-         a complexType or a model group definition.<br/>
-         <b>Note:</b>It is not possible to control the names of the classes generated to represent nested model groups (all, choice, sequence).</p>
+</elementName|complexTypeName|modelGroupName>]]></code-panel>
+
+        <ul>
+          <li>
+            <b>prefix:</b>The prefix to add to the names of the generated classes.
+          </li>
+          <li>
+            <b>suffix:</b>The suffix to append to the the names of the generated classes.
+          </li>
+        </ul>
+
+        <p>
+          One of the aim of the binding file is to avoid naming collisions.
+          Indeed, XML Schema allows elements and complexTypes to share the
+          same name, resulting in name collisions when generating sources.
+          Defining a binding for each element and complexType that share the
+          same name is not always a convenient solution (for instance the BPML
+          XML Schema and the UDDI v2.0 XML Schema use the same names for
+          top-level complexTypes and top-level elements). The aim of the
+          <tt>&lt;naming/></tt> XML element is to define a prefix and a suffix for the
+          names of the classes generated for an element, a complexType or a
+          model group definition.
+        </p>
+
+        <p>
+          <b>Note:</b>It is not possible to control the names of the classes
+          generated to represent nested model groups (all, choice,
+          and sequence).
+        </p>
       </section>
 
-       <section title="&lt;componentBinding> element">
-         <code-panel>
-&lt;elementBinding|attributeBinding|complexTypeBinding|groupBinding
+      <section title="&lt;componentBinding> element">
+        <code-panel><![CDATA[
+<elementBinding|attributeBinding|complexTypeBinding|groupBinding
     name = xsd:string>
    ((java-class|interface|member),
      elementBinding*,
@@ -115,20 +194,42 @@
      attributeBinding*,
      complexTypeBinding*,
      groupBinding*)
-&lt;/elementBinding|attributeBinding|complexTypeBinding|groupBinding></code-panel>
-         <ul>
-            <li><b>name:</b>The name of the XML schema component for which we are defining a binding.</li>
-         </ul>
-         
-         <p>These elements are the tenets of the binding file since they contain the binding definition for an XML Schema element, attribute, complexType
-         and modelGroup definition. The first child element (&lt;java-class/>, &lt;interface> or &lt;member>) will determine the type of binding one is defining.
-         Please note that defining a &lt;java-class> binding on an XML Schema attribute will have absolutely no <b>effect</b>.</p>
-         <p>The binding file being written from an XML Schema point of view; there are two distinct ways to define the XML Schema component for which we are
-         defining a binding. First we can define it throught the <tt>name</tt> attribute.</p>
-         <p>The value of the name attribute uniquely identifies the XML Schema Component. It can refer to the top-level component using the NCName of that component or
-         it can use a location language based on <a href="http://www.w3.org/TR/xpath">XPath</a><sup>3</sup>.
-         The grammar of that language can be defined by the following BNF:</p>
-         <pre>
+</elementBinding|attributeBinding|complexTypeBinding|groupBinding>]]></code-panel>
+
+        <ul>
+          <li>
+            <b>name:</b>The name of the XML schema component for which we
+            are defining a binding.
+          </li>
+        </ul>
+
+        <p>
+          These elements are the tenets of the binding file since they contain
+          the binding definition for an XML Schema element, attribute,
+          complexType and modelGroup definition. The first child element
+          (<tt>&lt;java-class/></tt>, <tt>&lt;interface></tt> or
+          <tt>&lt;member></tt>) will determine the type of binding one is
+          defining. Please note that defining a <tt>&lt;java-class></tt>
+          binding on an XML Schema attribute will have absolutely no effect.
+        </p>
+
+        <p>
+          The binding file is written from an XML Schema point of view; there
+          are two distinct ways to define the XML Schema component for which
+          we are defining a binding. First we can define it through the
+          <tt>name</tt> attribute.
+        </p>
+
+        <p>
+          The value of the name attribute uniquely identifies the XML Schema
+          Component. It can refer to the top-level component using the NCName
+          of that component or it can use a location language based on
+          <a href="http://www.w3.org/TR/xpath">XPath</a><sup>3</sup>.  The
+          grammar of that language can be defined by the following
+          <a href="http://en.wikipedia.org/wiki/Backus-Naur_form">BNF</a>:
+        </p>
+
+        <pre>
             [1]Path         ::= LocationPath('/'LocationPath)*
             [2]LocationPath ::= (Complex|ModelGroup|Attribute|Element|Enumeration)
             [3]Complex      ::= 'complexType:'(<a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#NCName">NCName</a>|'anonymous')
@@ -136,47 +237,53 @@
             [5]Attribute    ::= '@'<a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#NCName">NCName</a>
             [6]Element      ::= <a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#NCName">NCName</a>
             [7]Enumeration  ::= 'enumType':(<a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#NCName">NCName</a>|'anonymous')
-         </pre>
-         
-         <p>The second option to identify a XML Schema Component is to embed its 
-            binding definition inside its parent binding definition.</p>
-            
-         <p>For instance, the following binding definition will be equivalent and will 
-            identify the element '<tt>foo</tt>' defined in the top-level complexType 
-            '<tt>fooType</tt>'.</p>
+        </pre>
 
-         <code-panel>
-&lt;elementBinding name="complexType:fooType/foo>
-   &lt;member name="MyFoo" handler="mypackage.myHandler"/>
-&lt;/elementBinding>
+        <p>
+          The second option to identify an XML Schema Component is to embed
+          its binding definition inside its parent binding definition.
+        </p>
+
+        <p>
+          For instance, the following binding definitions are equivalent and
+          identify the element '<tt>foo</tt>' defined in the top-level
+          complexType '<tt>fooType</tt>'.
+        </p>
+
+        <code-panel><![CDATA[
+<elementBinding name="complexType:fooType/foo>
+   <member name="MyFoo" handler="mypackage.myHandler"/>
+</elementBinding>
+
+<complexTypeBinding name="fooType">
+   <elementBinding name="foo>
+      <member name="MyFoo" handler="mypackage.myHandler"/>
+   </elementBinding>
+<complexTypeBinding>]]></code-panel>
 
-&lt;complexTypeBinding name="fooType">
-   &lt;elementBinding name="foo>
-      &lt;member name="MyFoo" handler="mypackage.myHandler"/>
-   &lt;/elementBinding>
-&lt;complexTypeBinding></code-panel>
+        <section title="Bindings for anonymous components">
 
-			<section title="Bindings for anonymous components">
-			
-				<p>As shown above in the grammar, for the component types
-				   'Complex' and 'Enumeration', it is possible to specify that
-				   a component binding should affect an anonymous type 
-				   definition. To qualify such an anonymous type definition
-				   as part of the '<tt>name</tt>' attribute of a component
-				   binding, please use the type name qualifier '<tt>anonymous</tt>'
-				   as shown below.</p>
-				   
-         <code-panel>
+          <p>
+            As shown above in the grammar for the component types 'Complex' and
+            'Enumeration', it is possible to specify that a component binding
+            should affect an anonymous type definition. To qualify such an
+            anonymous type definition as part of the '<tt>name</tt>' attribute
+            of a component binding, please use the type name qualifier
+            '<tt>anonymous</tt>' as shown below.
+          </p>
+
+          <!-- We cannot use a CDATA for this code panel because we want <b> interpreted -->
+          <code-panel>
 &lt;elementBinding name="complexType:fooType/foo/enumType:<b>anonymous</b>">
    &lt;member name="MyFoo" handler="mypackage.myHandler"/>
 &lt;/elementBinding></code-panel>
-				   
-			</section>
-       </section>
 
-       <section title="&lt;java-class> element">
-         <code-panel>
-&lt;java-class
+        </section>
+      </section>
+
+      <section title="&lt;java-class> element">
+        <code-panel><![CDATA[
+<java-class
     name? = xsd:string
     package? = xsd:string
     final? = xsd:boolean
@@ -182,64 +289,84 @@
     final? = xsd:boolean
     abstract? = xsd:boolean
     equals? = xsd:boolean
-    bound? = xsd:boolean >
+    bound? = xsd:boolean
     (implements*,extends?)
-&lt;/java-class></code-panel>
-		   
-         <p>This element defines all the options for the class to be generated, including 
-			common properties such as class name, package name, etc.</p>
-		   
-         <ul>
-            <li><b>name:</b>The name of the class that will be generated.</li>
-            <li><b>package:</b>The package of the class to be generated. if set, this option overrides the mapping defined in the &lt;package/> element.</li>
-            <li><b>final:</b>If true, the generated class will be final.</li>
-            <li><b>abstract:</b>If true, the generated class will be abstract.</li>
-            <li><b>equals:</b>If true, the generated class will implement the equals method.</li>
-            <li><b>bound:</b>If true, the generated class will implement the bound properties.</li>
-         </ul>
+</java-class>]]></code-panel>
+
+        <p>
+          This element defines all the options for the class to be generated,
+          including common properties such as class name, package name, and
+          so on.
+        </p>
+
+        <ul>
+          <li><b>name:</b>The name of the class that will be generated.</li>
+          <li><b>package:</b>The package of the class to be generated. if set,
+              this option overrides the mapping defined in the
+              <tt>&lt;package/></tt> element.</li>
+          <li><b>final:</b>If true, the generated class will be final.</li>
+          <li><b>abstract:</b>If true, the generated class will be
+              abstract.</li>
+          <li><b>equals:</b>If true, the generated class will implement the
+              <tt>equals()</tt> and <tt>hashCode()</tt> method.</li>
+          <li><b>bound:</b>If true, the generated class will implement bound
+              properties, allowing property change notification.</li>
+        </ul>
+
+        <p>
+          For instance, the following binding definition instructs the source
+          generator to generate a class <tt>CustomTest</tt> for a global
+          element named 'test', replacing the default class name <tt>Test</tt>
+          with <tt>CustomTest</tt>.
+        </p>
+
+        <code-panel><![CDATA[
+   <elementBinding name="/test">
+      <java-class name="CustomTest" final="true"/>
+   </elementBinding>]]></code-panel>
 
-			<p>For instance, the following binding definition instructs the source generator
-			   to generate a class <tt>CustomTest</tt> for a global element named 'test', replacing 
-			   the default class name <tt>Test</tt> with <tt>CustomTest</tt>.</p>
+        <p>
+          In addition to the properties listed above, it is possible to define
+          that the class generated will extend a class given and/or implement
+          one or more interfaces.
+        </p>
 
-         <code-panel>
-   &lt;elementBinding name=&quot;/test&quot;&gt;
-      &lt;java-class name=&quot;CustomTest&quot; final=&quot;true&quot;/&gt;
-   &lt;/elementBinding&gt;</code-panel>
-		   
-		   <p>In addition to above properties, it is possible to define that the class generated 
-			  will extend a class given and/or implement one or more interfaces.</p>
-		   
-		   <p>For instance, the following binding definition instructs the source generator
-			  to generate a class <tt>TestWithInterface</tt> that implements the interface
-			  <tt>org.castor.sample.SomeInterface</tt> in addition to 
-			  <tt>java.io.Serializable</tt>.</p>
+        <p>
+          For instance, the following binding definition instructs the source
+          generator to generate a class <tt>TestWithInterface</tt> that
+          implements the interface <tt>org.castor.sample.SomeInterface</tt> in
+          addition to <tt>java.io.Serializable</tt>.
+        </p>
 
-         <code-panel>
-   &lt;elementBinding name=&quot;/test&quot;&gt;
-      &lt;java-class name=&quot;TestWithInterface&quot;&gt;
-         &lt;implements&gt;org.castor.sample.SomeInterface&lt;/implements&gt;
-      &lt;/java-class&gt;
-   &lt;/elementBinding&gt;</code-panel>
-		   
-		   <p>The subsequent binding definition instructs the source generator
-			  to generate a class <tt>TestWithExtendsAndInterface</tt> that implements the interface
-			  <tt>org.castor.sample.SomeInterface</tt> in addition to 
-			  <tt>java.io.Serializable</tt>, and extends from (a possible) abstract base class
-			  <tt>SomeAbstractBaseClass</tt>.</p>
+        <code-panel><![CDATA[
+   <elementBinding name="/test">
+      <java-class name="TestWithInterface">
+         <implements>org.castor.sample.SomeInterface</implements>
+      </java-class>
+   </elementBinding>]]></code-panel>
 
-           <code-panel>
-   &lt;elementBinding name=&quot;/test&quot;&gt;
-      &lt;java-class name=&quot;TestWithExtendsAndInterface&quot;&gt;
-         &lt;extends&gt;org.castor.sample.SomeAbstractBaseClass&lt;/extends&gt;
-         &lt;implements&gt;org.castor.sample.SomeInterface&lt;/implements&gt;
-      &lt;/java-class&gt;
-   &lt;/elementBinding&gt;</code-panel>
+        <p>
+          The subsequent binding definition instructs the source generator to
+          generate a class <tt>TestWithExtendsAndInterface</tt> that
+          implements the interface <tt>org.castor.sample.SomeInterface</tt> in
+          addition to <tt>java.io.Serializable</tt>, and extends from a
+          (probably abstract) base class <tt>SomeAbstractBaseClass</tt>.
+        </p>
 
-		   <p>The generated class <tt>SomeAbstractBaseClass</tt> will have a class signature
-		      identical to ...</p>
-		   
-		   <code-panel>
+        <code-panel><![CDATA[
+   <elementBinding name="/test">
+      <java-class name="TestWithExtendsAndInterface">
+         <extends>org.castor.sample.SomeAbstractBaseClass</extends>
+         <implements>org.castor.sample.SomeInterface</implements>
+      </java-class>
+   </elementBinding>]]></code-panel>
+
+        <p>
+          The generated class <tt>SomeAbstractBaseClass</tt> will have a class
+          signature as shown below:
+        </p>
+
+        <code-panel>
    ...
 
    public class TestWithExtendsAndInterface
@@ -246,14 +373,13 @@
       extends SomeAbstractBaseClass
       implements SomeInterface, java.io.Serializable {
       ...
-		   </code-panel>
-		   		   
-       </section>
+        </code-panel>
+
+      </section>
 
+      <section title="&lt;member> element">
 
-       <section title="&lt;member> element">
-       
-         <code-panel>
+        <code-panel>
  &lt;member
   name? = xsd:string
   java-type? = xsd:string
@@ -262,92 +388,106 @@
   collection? = (array|vector|arraylist|hashtable|collection|odmg|set|map|sortedset)
   validator? = xsd:string/></code-panel>
 
-         <p>This element represents the binding for class member. It allows the definition
-         of its name and java type as well as an implementation of FieldHandler
-         to help the Marshalling framework in handling that member. Defining a validator is also
-         possible. The names given for the validator and the fieldHandler must be fully qualified.</p>
-            
-         <ul>
-            <li><b>name:</b>The name of the class member that will be generated.</li>
-            <li><b>java-type:</b>the fully qualified name of the java type.</li>
-            <li><b>wrapper:</b>If true, a wrapper object will be generated in case the java 
-                type is a java primitive.</li>
-            <li><b>handler:</b>The fully qualified name of the FieldHandler to use.</li>
-            <li><b>collection:</b>If the schema component can occur more than once then this 
-                 attribute allows to specify the collection to use to represent the 
-                 component in Java.</li>
-            <li><b>validator:</b>The fully qualified name of the FieldValidator to use.</li>
-         </ul>
-         
-		<p>For instance, the following binding definition ...</p>
-		
-         <code-panel>
-   &lt;elementBinding name=&quot;/root/members&quot;&gt;
-      &lt;member collection=&quot;set&quot;/&gt;
-   &lt;/elementBinding&gt;</code-panel>
-   
-		<p>instructs the source generator
-		   to generate - within a class <tt>Root</tt> - a Java member named <tt>members</tt>, 
-		   using the collection type <tt>java.util.Set</tt> instead of the default 
-		   <tt>java.util.List</tt> as follows:</p>
+        <p>
+          This element represents the binding for class member. It allows the
+          definition of its name and java type as well as an implementation of
+          FieldHandler to help the Marshaling framework in handling that
+          member. Defining a validator is also possible. The names given for
+          the validator and the fieldHandler must be fully qualified.
+        </p>
+
+        <ul>
+          <li><b>name:</b>The name of the class member that will be
+              generated.</li>
+          <li><b>java-type:</b>the fully qualified name of the java type.</li>
+          <li><b>wrapper:</b>If true, a wrapper object will be generated in
+              case the Java type is a java primitive.</li>
+          <li><b>handler:</b>The fully qualified name of the FieldHandler to
+              use.</li>
+          <li><b>collection:</b>If the schema component can occur more than
+              once then this attribute allows specifying the collection to use
+              to represent the component in Java.</li>
+          <li><b>validator:</b>The fully qualified name of the FieldValidator
+              to use.</li>
+        </ul>
 
-   		<code-panel>
+        <p>For instance, the following binding definition:</p>
+
+        <code-panel><![CDATA[
+   <elementBinding name="/root/members">
+      <member collection="set"/>
+   </elementBinding>]]></code-panel>
+
+        <p>
+          instructs the source generator to generate -- within a class
+          <tt>Root</tt> -- a Java member named <tt>members</tt> using the
+          collection type <tt>java.util.Set</tt> instead of the default
+          <tt>java.util.List</tt>:
+        </p>
+
+        <code-panel>
 public class Root {
-   		
+
    private <b>java.util.Set</b> members;
-   
+
    ...
-   
-}</code-panel>   		
+
+}</code-panel>
 
-		<p>The following (slightly amended) binding element ...</p>
-		
-         <code-panel>
-   &lt;elementBinding name=&quot;/root/members&quot;&gt;
-      &lt;member name=&quot;memberSet&quot; collection=&quot;set&quot;/&gt;
-   &lt;/elementBinding&gt;</code-panel>
+        <p>The following (slightly amended) binding element:</p>
 
-		<p>instructs the source generator to generate - again within a class <tt>Root</tt> - 
-		   a Java member named <tt>memberSet</tt> (of the same collection type as in the 
-		   previous example), overriding the name of the member as specified in the 
-		   XML schema:</p>
+        <code-panel><![CDATA[
+   <elementBinding name="/root/members">
+      <member name="memberSet" collection="set"/>
+   </elementBinding>]]></code-panel>
 
-   		<code-panel>
+        <p>
+          instructs the source generator to generate -- again within a class
+          <tt>Root</tt> -- a Java member named <tt>memberSet</tt> (of the same
+          collection type as in the previous example), overriding the name of
+          the member as specified in the XML schema:
+        </p>
+
+        <code-panel>
 public class Root {
-   		
+
    private java.util.Set <b>memberSet</b>;
-   
+
    ...
-   
-}</code-panel>   		
-            
-       </section>
+
+}</code-panel>
+
+      </section>
 
-	   <section title="&lt;enumBinding&gt;">
+      <section title="&lt;enumBinding&gt;">
 
-		<code-panel>
-&lt;enumBinding>
+        <code-panel><![CDATA[
+<enumBinding>
    (enumDef)
-&gt;/enumBinding>
+</enumBinding>
 
-&lt;enumDef>
+<enumDef>
    (enumClassName = xsd:string, enumMember*)
-&lt;/enumDef>
+</enumDef>
 
-&lt;enumMember>
+<enumMember>
    (name = xsd:string, value = xsd:string)
-&gt;enumMember>
-</code-panel>
-		   
-		<p>The <tt>&lt;enumBinding&gt;</tt> element allows more control on the 
-		   code generated for type safe enumerations, used to represent an XML Schema 
-		   <tt>&lt;simpleType&gt;</tt> enumeration.</p>
-		   
-		<section title="Sample - Global &lt;simpleType&gt; enumeration">
+</enumMember>
+]]></code-panel>
 
-			<p>For instance, given the following XML schema enumeration definition ... </p>
-			
-	        <code-panel><![CDATA[
+        <p>
+          The <tt>&lt;enumBinding&gt;</tt> element allows more control on the
+          code generated for type-safe enumerations, which are used to
+          represent an XML Schema <tt>&lt;simpleType&gt;</tt> enumeration.
+        </p>
+
+        <section title="Sample -- Global &lt;simpleType&gt; enumeration">
+
+          <p>
+            For instance, given the following XML schema enumeration definition:
+          </p>
+
+          <code-panel><![CDATA[
 <xs:simpleType name="durationUnitType">
   <xs:restriction base='xs:string'>
     <xs:enumeration value='Y' />
@@ -358,17 +498,21 @@
     <xs:enumeration value='s' />
   </xs:restriction>
 </simpleType>]]></code-panel>
-	
-			<p>the Castor code generator would generate code where the default
-			   naming convention used during the generation would overwrite the first 
-			   constant definition for value '<tt>M</tt>' with the one generated for 
-			   value '<tt>m</tt>'.</p>
-	                   
-			<p>The following binding definition defines - through the means of an
-			   <tt>&lt;enumMember&gt;</tt> definition for the enumeration value
-			   '<tt>M</tt>' - a special binding for this value ...</p>
-	                   
-	        <code-panel><![CDATA[
+
+          <p>
+            the Castor code generator would generate code where the default
+            naming convention used during the generation would overwrite the
+            first constant definition for value '<tt>M</tt>' with the one
+            generated for value '<tt>m</tt>'.
+          </p>
+
+          <p>
+            The following binding definition defines -- through the means of
+            an <tt>&lt;enumMember&gt;</tt> definition for the enumeration
+            value '<tt>M</tt>' -- a special binding for this value:
+          </p>
+
+          <code-panel><![CDATA[
 <enumBinding name="/enumType:durationUnitType">
   <enum-def>
     <enumMember>
@@ -377,19 +521,23 @@
     </enumMember>
   </enum-def>
 </enumBinding>]]></code-panel>
-	
-			<p>and instructs the source generator to generate - within a class 
-			   <tt>DurationUnitType</tt> - a constant definition named <tt>CUSTOM_M</tt> 
-			   for the enumeration value <tt>M</tt>.</p>
-		   
-		</section>
+
+          <p>
+            and instructs the source generator to generate -- within a class
+            <tt>DurationUnitType</tt> -- a constant definition named
+            <tt>CUSTOM_M</tt> for the enumeration value <tt>M</tt>.
+          </p>
 
-		<section title="Sample - Nested (anonymous) &lt;simpleType&gt; enumeration">
+        </section>
 
-			<p>For instance, given the following <b>nested</b> (anonymous) XML schema 
-			   enumeration definition ... </p>
-			
-	        <code-panel><![CDATA[
+        <section title="Sample -- Nested (anonymous) &lt;simpleType&gt; enumeration">
+
+          <p>
+            For instance, given the following <b>nested</b> (anonymous) XML schema
+            enumeration definition:
+          </p>
+
+          <code-panel><![CDATA[
 <xs:element name="processDefinition">
   <xs:complexType>
     <xs:attribute name="duration">
@@ -406,13 +554,17 @@
     </attribute>
   </xs:complexType>
 </xs:element>]]></code-panel>
-	
-			<p>one could use a slightly modified <tt>&lt;enumBinding&gt;</tt> definition 
-			   based upon the previous exampl by altering the value of the
-			   '<tt>name</tt>' attribute to specify the correct XPATH to the anonymous
-			   enumeration <tt>&lt;simplyType&gt;</tt> definition.</p>
-	                   
-	        <code-panel>
+
+          <p>
+            one could use a slightly modified <tt>&lt;enumBinding&gt;</tt>
+            definition based upon the previous example by altering the value
+            of the '<tt>name</tt>' attribute to specify the correct XPATH to
+            the anonymous enumeration <tt>&lt;simplyType&gt;</tt>
+            definition.
+          </p>
+
+          <!-- We cannot use CDATA for this code panel; we want the <b> to work -->
+          <code-panel>
 &lt;enumBinding name="<b>/processDefinition/complexType:anonymous/@duration/enumType:anonymous</b>">
   &lt;enum-def>
     &lt;enumMember>
@@ -421,134 +573,149 @@
     &lt;/enumMember>
   &lt;/enum-def>
 &lt;/enumBinding></code-panel>
-	
-		</section>
+
+        </section>
+
+      </section>
+
+      <section title="Not implemented yet">
+
+        <section title="&lt;javadoc&gt;">
+
+          <p>
+            The <tt>&lt;javadoc&gt;</tt> element allows one to enter the
+            necessary JavaDoc representing the generated classes or members.
+          </p>
+
+        </section>
+
+        <section title="&lt;interface> element">
 
-	   </section>
+          <code-panel><![CDATA[
+    <interface>
+        name = xsd:string
+    </interface>]]></code-panel>
 
-       <section title="Not implemented yet">
-		   
-		   <section title="&lt;javadoc&gt;">
+          <ul>
+            <li><b>name:</b>The name of the interface to generate.</li>
+          </ul>
 
-			   <p>The &gt;javadoc&gt; element will allow one to enter the necessary javadoc 
-				  that represents the generated classes or members.</p>
-			   
-		   </section>
-			   
-		   <section title="&lt;interface> element">
-			   
-			 <code-panel>
-	&lt;interface&gt;
-		name = xsd:string
-	&lt;/interface&gt;</code-panel>
-			 <ul>
-				<li><b>name:</b>The name of the interface that will be generated.</li>
-			 </ul>
-			   
-			 <p>This element specifies the name of the interface to be generated for an 
-				XML schema component.</p>
-	
-		   </section>
+          <p>
+            This element specifies the name of the interface to be generated
+            for an XML schema component.
+          </p>
 
-		   
-       </section>
+        </section>
+
+      </section>
 
     </section>
 
-	<section title="Non-trivial real world example">
-		
-		<section title="Background">
-    		 <p>Two companies wish to trade with each other using a Supply Chain messaging 
-			 system. This system sends and receives Purchase Orders and Order Receipt 
-			 messages. After many months of discussion they have finally decided upon the 
-			 structure of the Version 1.0 of their message XSD and both are presently 
-			 developing solutions for it. One of the companies decides to use Java and 
-			 Castor XML supprt for (un)marshalling and Castor's code generator to accelerate 
-			 their development process.</p>
-	    </section>
-	
-		<section title="The Supply Chain XSD">
-			
-		    <code-panel top-caption="supplyChainV1.0.xsd">
-&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot; 
-              elementFormDefault=&quot;qualified&quot; 
-              attributeFormDefault=&quot;unqualified&quot;&gt;
-    &lt;xs:element name=&quot;Data&quot;&gt;
-      &lt;xs:annotation&gt;
-        &lt;xs:documentation&gt;This section contains the supply chain message 
-		  data&lt;/xs:documentation&gt;
-      &lt;/xs:annotation&gt;
-      &lt;xs:complexType&gt;
-        &lt;xs:choice&gt;
-          &lt;xs:element name=&quot;PurchaseOrder&quot;&gt;
-            &lt;xs:complexType&gt;
-              &lt;xs:sequence&gt;
-                &lt;xs:element name=&quot;LineItem&quot; type=&quot;LineItemType&quot; maxOccurs=&quot;unbounded&quot;/&gt;
-              &lt;/xs:sequence&gt;
-              &lt;xs:attribute name=&quot;OrderNumber&quot; type=&quot;xs:string&quot; use=&quot;required&quot;/&gt;
-            &lt;/xs:complexType&gt;
-          &lt;/xs:element&gt;
-          &lt;xs:element name=&quot;OrderReceipt&quot;&gt;
-            &lt;xs:complexType&gt;
-              &lt;xs:sequence&gt;
-                &lt;xs:element name=&quot;LineItem&quot; type=&quot;ReceiptLineItemType&quot; maxOccurs=&quot;unbounded&quot;/&gt;
-              &lt;/xs:sequence&gt;
-              &lt;xs:attribute name=&quot;OrderNumber&quot; type=&quot;xs:string&quot; use=&quot;required&quot;/&gt;
-            &lt;/xs:complexType&gt;
-    	  &lt;/xs:element&gt;
-    	&lt;/xs:choice&gt;
-      &lt;/xs:complexType&gt;
-    &lt;/xs:element&gt;
-    &lt;xs:complexType name=&quot;SkuType&quot;&gt;
-      &lt;xs:annotation&gt;
-        &lt;xs:documentation&gt;Contains Product Identifier&lt;/xs:documentation&gt;
-      &lt;/xs:annotation&gt;
-      &lt;xs:sequence&gt;
-        &lt;xs:element name=&quot;Number&quot; type=&quot;xs:integer&quot;/&gt;
-        &lt;xs:element name=&quot;ID&quot; type=&quot;xs:string&quot;/&gt;
-      &lt;/xs:sequence&gt;
-    &lt;/xs:complexType&gt;
-    &lt;xs:complexType name=&quot;ReceiptSkuType&quot;&gt;
-      &lt;xs:annotation&gt;
-        &lt;xs:documentation&gt;Contains Product Identifier&lt;/xs:documentation&gt;
-      &lt;/xs:annotation&gt;
-      &lt;xs:complexContent&gt;
-        &lt;xs:extension base=&quot;SkuType&quot;&gt;
-          &lt;xs:sequence&gt;
-            &lt;xs:element name=&quot;InternalID&quot; type=&quot;xs:string&quot;/&gt;
-          &lt;/xs:sequence&gt;
-        &lt;/xs:extension&gt;
-      &lt;/xs:complexContent&gt;
-    &lt;/xs:complexType&gt;
-    &lt;xs:complexType name=&quot;LineItemType&quot;&gt;
-      &lt;xs:sequence&gt;
-        &lt;xs:element name=&quot;Sku&quot; type=&quot;SkuType&quot;/&gt;
-        &lt;xs:element name=&quot;Value&quot; type=&quot;xs:double&quot;/&gt;
-        &lt;xs:element name=&quot;BillingInstructions&quot; type=&quot;xs:string&quot;/&gt;
-        &lt;xs:element name=&quot;DeliveryDate&quot; type=&quot;xs:date&quot;/&gt;
-        &lt;xs:element name=&quot;Number&quot; type=&quot;xs:integer&quot;/&gt;
-      &lt;/xs:sequence&gt;
-    &lt;/xs:complexType&gt;
-    &lt;xs:complexType name=&quot;ReceiptLineItemType&quot;&gt;
-      &lt;xs:sequence&gt;
-        &lt;xs:element name=&quot;Sku&quot; type=&quot;ReceiptSkuType&quot;/&gt;
-        &lt;xs:element name=&quot;Value&quot; type=&quot;xs:double&quot;/&gt;
-        &lt;xs:element name=&quot;PackingDescription&quot; type=&quot;xs:string&quot;/&gt;
-        &lt;xs:element name=&quot;ShipDate&quot; type=&quot;xs:dateTime&quot;/&gt;
-        &lt;xs:element name=&quot;Number&quot; type=&quot;xs:integer&quot;/&gt;
-      &lt;/xs:sequence&gt;
-    &lt;/xs:complexType&gt;
-&lt;/xs:schema&gt;</code-panel>
-	    </section>
-		
-		<section title="Binding file? - IT IS REQUIRED!">
-			
-		    <p>If you run the Castor CodeGenerator on the above XSD you end up with 
-			the following set of classes. [You also get lots of warning messages with 
-			the present 0.99 version.]</p>
-			
-    <code-panel>
+    <section title="Non-trivial real world example">
+
+      <section title="Background">
+        <p>
+          Two companies wish to trade with each other using a Supply Chain
+          messaging system. This system sends and receives Purchase Orders and
+          Order Receipt messages. After many months of discussion they have
+          finally decided upon the structure of the Version 1.0 of their
+          message XSD and both are presently developing solutions for it. One
+          of the companies decides to use Java and Castor XML support for
+          (un)marshaling and Castor's code generator to accelerate their
+          development process.
+        </p>
+      </section>
+
+      <section title="The Supply Chain XSD">
+
+        <code-panel top-caption="supplyChainV1.0.xsd"><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           elementFormDefault="qualified"
+           attributeFormDefault="unqualified">
+
+    <xs:element name="Data">
+      <xs:annotation>
+        <xs:documentation>
+          This section contains the supply chain message data
+        </xs:documentation>
+      </xs:annotation>
+      <xs:complexType>
+        <xs:choice>
+          <xs:element name="PurchaseOrder">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="LineItem" type="LineItemType" maxOccurs="unbounded"/>
+              </xs:sequence>
+              <xs:attribute name="OrderNumber" type="xs:string" use="required"/>
+            </xs:complexType>
+          </xs:element>
+          <xs:element name="OrderReceipt">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="LineItem" type="ReceiptLineItemType" maxOccurs="unbounded"/>
+              </xs:sequence>
+              <xs:attribute name="OrderNumber" type="xs:string" use="required"/>
+            </xs:complexType>
+          </xs:element>
+        </xs:choice>
+      </xs:complexType>
+    </xs:element>
+
+    <xs:complexType name="SkuType">
+      <xs:annotation>
+        <xs:documentation>Contains Product Identifier</xs:documentation>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="Number" type="xs:integer"/>
+        <xs:element name="ID" type="xs:string"/>
+      </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="ReceiptSkuType">
+      <xs:annotation>
+        <xs:documentation>Contains Product Identifier</xs:documentation>
+      </xs:annotation>
+      <xs:complexContent>
+        <xs:extension base="SkuType">
+          <xs:sequence>
+            <xs:element name="InternalID" type="xs:string"/>
+          </xs:sequence>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+
+    <xs:complexType name="LineItemType">
+      <xs:sequence>
+        <xs:element name="Sku" type="SkuType"/>
+        <xs:element name="Value" type="xs:double"/>
+        <xs:element name="BillingInstructions" type="xs:string"/>
+        <xs:element name="DeliveryDate" type="xs:date"/>
+        <xs:element name="Number" type="xs:integer"/>
+      </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="ReceiptLineItemType">
+      <xs:sequence>
+        <xs:element name="Sku" type="ReceiptSkuType"/>
+        <xs:element name="Value" type="xs:double"/>
+        <xs:element name="PackingDescription" type="xs:string"/>
+        <xs:element name="ShipDate" type="xs:dateTime"/>
+        <xs:element name="Number" type="xs:integer"/>
+      </xs:sequence>
+    </xs:complexType>
+</xs:schema>]]></code-panel>
+      </section>
+
+      <section title="Binding file? -- IT IS REQUIRED!">
+
+        <p>
+          If you run the Castor CodeGenerator on the above XSD you end up
+          with the following set of classes. (You also get lots of warning
+          messages with the present version.)
+        </p>
+
+        <code-panel>
 Data.java
 DataDescriptor.java
 LineItem.java
@@ -567,63 +734,94 @@
 SkuDescriptor.java
 SkuType.java
 SkuTypeDescriptor.java</code-panel>
-	
-			<p>The problem here is that there are two different elements with the same 
-			   name in different locations in the XSD. This causes a java code generation 
-			   conflict. Castor uses the element name as the name of the class. So the 
-			   second class generated for the LineItem definition, which is different than 
-			   the first, overwrites the first class generated.</p>
-    
-			<p>A binding file is therefore necessary to help the Castor code generator 
-			   differentiate between these generated classes. [i.e. You can 'bind' an 
-			   element in the XSD to a differently named class file that you want to 
-			   generate. Thus keeping different elements seperate]</p>
+
+        <p>
+          The problem here is that there are two different elements with the
+          same name in different locations in the XSD. This causes a Java code
+          generation conflict. Castor uses the element name as the name of the
+          class. So the second class generated for the LineItem definition,
+          which is different than the first, overwrites the first class
+          generated.
+        </p>
+
+        <p>
+          A binding file is therefore necessary to help the Castor code
+          generator differentiate between these generated classes. That is, you
+          can 'bind' an element in the XSD to a differently named class file
+          that you want to generate. This keeps different elements separate
+          and ensures that source is properly generated for each XML Schema
+          object.
+        </p>
+
+        <tip>
+          <p>
+            The warning messages for Castor 0.99+ are very useful in assisting
+            you in your creation of the binding file. For the example the
+            warning messages for the example are:
+          </p>
+
+          <code-panel>
+    Warning: A class name generation conflict has occurred between element
+            '/Data/OrderReceipt/LineItem' and element '/Data/PurchaseOrder/LineItem'.
+            Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y
+    Warning: A class name generation conflict has occurred between element
+            '/Data/OrderReceipt/LineItem' and element '/Data/PurchaseOrder/LineItem'.
+            Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y
+    Warning: A class name generation conflict has occurred between element
+            '/Data/OrderReceipt/LineItem' and element '/Data/PurchaseOrder/LineItem'.
+            Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y
+    Warning: A class name generation conflict has occurred between element
+            'complexType:ReceiptLineItemType/Sku' and element 'complexType:LineItemType/Sku'.
+            Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y
+    Warning: A class name generation conflict has occurred between element
+            'complexType:ReceiptLineItemType/Sku' and element 'complexType:LineItemType/Sku'.
+            Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y
+    Warning: A class name generation conflict has occurred between element
+            'complexType:ReceiptLineItemType/Sku' and element 'complexType:LineItemType/Sku'.
+            Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y
+          </code-panel>
+        </tip>
+
+        <p>
+          The following binding file definition will overcome the naming
+          issues for the generated classes:
+        </p>
+
+        <code-panel top-caption="binding.xml"><![CDATA[
+<binding xmlns="http://www.castor.org/SourceGenerator/Binding"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://www.castor.org/SourceGenerator/Binding C:\\Castor\\xsd\\binding.xsd"
+         defaultBinding="element">
+
+   <elementBinding name="/Data/PurchaseOrder/LineItem">
+      <java-class name="PurchaseOrderLineItem"/>
+   </elementBinding>
+
+   <elementBinding name="/Data/OrderReceipt/LineItem">
+      <java-class name="OrderReceiptLineItem"/>
+   </elementBinding>
+
+   <elementBinding name="complexType:ReceiptLineItemType/Sku">
+      <java-class name="OrderReceiptSku"/>
+   </elementBinding>
+
+   <elementBinding name="complexType:LineItemType/Sku">
+      <java-class name="PurchaseOrderSku"/>
+   </elementBinding>
 
-		    <tip><p>The warning messages for Castor 0.99+ are very usefull in assisting you 
-			     in your creation of the binding file. For the example the warning messages for the example are;<br/>
-    <tt>Warning: A class name generation conflict has occured between element '/Data/OrderReceipt/LineItem' and element '/Data/PurchaseOrder/LineItem'. Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y<br/>
-    Warning: A class name generation conflict has occured between element '/Data/OrderReceipt/LineItem' and element '/Data/PurchaseOrder/LineItem'. Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y<br/>
-    Warning: A class name generation conflict has occured between element '/Data/OrderReceipt/LineItem' and element '/Data/PurchaseOrder/LineItem'. Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y<br/>
-    Warning: A class name generation conflict has occured between element 'complexType:ReceiptLineItemType/Sku' and element 'complexType:LineItemType/Sku'. Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y<br/>
-    Warning: A class name generation conflict has occured between element 'complexType:ReceiptLineItemType/Sku' and element 'complexType:LineItemType/Sku'. Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y<br/>
-    Warning: A class name generation conflict has occured between element 'complexType:ReceiptLineItemType/Sku' and element 'complexType:LineItemType/Sku'. Please use a Binding file to solve this problem.Continue anyway [not recommended] (y|n|?)y</tt>
-		    </p></tip>
-			
-		    <p>The following binding file definition will overcome the naming issues for 
-			   the generated classes.</p>
-			   
-    <code-panel top-caption="binding.xml">
-&lt;binding xmlns=&quot;http://www.castor.org/SourceGenerator/Binding&quot; 
-            xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; 
-            xsi:schemaLocation=&quot;http://www.castor.org/SourceGenerator/Binding
-                C:\\Castor\\xsd\\binding.xsd&quot; 
-            defaultBinding=&quot;element&quot;&gt;
+</binding>]]></code-panel>
 
-   &lt;elementBinding name=&quot;/Data/PurchaseOrder/LineItem&quot;&gt;
-      &lt;java-class name=&quot;PurchaseOrderLineItem&quot;/&gt;
-   &lt;/elementBinding&gt;
-	
-   &lt;elementBinding name=&quot;/Data/OrderReceipt/LineItem&quot;&gt;
-      &lt;java-class name=&quot;OrderReceiptLineItem&quot;/&gt;
-   &lt;/elementBinding&gt;
-	
-   &lt;elementBinding name=&quot;complexType:ReceiptLineItemType/Sku&quot;&gt;
-      &lt;java-class name=&quot;OrderReceiptSku&quot;/&gt;
-   &lt;/elementBinding&gt;
-	
-   &lt;elementBinding name=&quot;complexType:LineItemType/Sku&quot;&gt;
-      &lt;java-class name=&quot;PurchaseOrderSku&quot;/&gt;
-   &lt;/elementBinding&gt;	
-	
-&lt;/binding&gt;</code-panel>
+        <p>
+          One thing to notice in the above <tt>binding.xml</tt> file is that
+          the name path used is relative to the root of the XSD <b>and not</b>
+          the root of the target XML. Also notice that the two complex types
+          have the "complexType:" prefix to identify them followed by the name
+          path relative to the root of the XSD.
+        </p>
 
-		    <p>Things to notice in the above binding.xml file are that the name path used 
-			   is relative to the root of the XSD NOT the root of the target XML. Also notice 
-			   that the two complex types have the "complexType:" prefix to identify them, and 
-			   then the name path relative to the root of the XSD.</p>
+        <p>The new list of generated classes is:</p>
 
-		    <p>The new list of generated classes is:</p>
-    <code-panel>
+        <code-panel>
 Data.java
 DataDescriptor.java
 LineItem.java
@@ -650,12 +848,15 @@
 SkuDescriptor.java
 SkuType.java
 SkuTypeDescriptor.java</code-panel>
-	
-			<p>The developers can now use these generated classes with Castor to 
-			   (un)marshal the supply chain messages sent by their business partner.</p>
-	    </section>
-		
-	</section>
+
+        <p>
+          The developers can now use these generated classes with Castor to
+          (un)marshal the supply chain messages sent by their business
+          partner.
+        </p>
+      </section>
+
+    </section>
 
   </body>
 
@@ -660,4 +861,3 @@
   </body>
 
 </document>
-
Index: /home/ekuns/workspace/castor-1/src/doc/test-framework.xml
===================================================================
--- /home/ekuns/workspace/castor-1/src/doc/test-framework.xml	(revision 6550)
+++ /home/ekuns/workspace/castor-1/src/doc/test-framework.xml	(working copy)
@@ -1,34 +1,41 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<document url="http://castor.org/test-framework.xml">
-    <properties>
-        <title>Castor Test Framework - JDO</title>
-        <author email="ferret@frii.com">Bruce Snyder</author>
-        <abstract>
-        Outlines the Castor JDO test framework. 
-        </abstract>
-        <status>Final</status>
-    </properties>
+<document url="http://castor.codehaus.org/test-framework.xml">
+  <properties>
+    <title>Castor Test Framework - JDO</title>
+    <author email="ferret@frii.com">Bruce Snyder</author>
+    <abstract>
+      Outlines the Castor JDO test framework.
+    </abstract>
+    <status>Final</status>
+  </properties>
+
+  <body>
+    <title>Castor JDO Test Framework Overview</title>
 
-    <body>
-        <title>Test Framework Overview</title>
+    <section title="Test Framework Overview">
 
-        <section title="Test Framework Overview">
+      <p>
+        The Castor Test Framework for JDO (CTF-JDO) is a thin wrapper around
+        <a href="http://www.junit.org">JUnit</a>, the well known Java unit test
+        framework. CTF-JDO provides the ability to execute tests based on an XML
+        configuration file. This is very powerful when faced with a large number
+        of tests, because it allows the execution of only certain tests out of
+        that large pool of tests. Also, this feature can save an immense amount
+        of time in the software development process because no code need be
+        cut to execute a different set of tests. Upon complete execution of the
+        suite of tests listed in the XML configuration file, the results are
+        reported to the terminal.
+      </p>
 
-            <p>The Castor Test Framework for JDO (CTF-JDO) is a thin wrapper around 
-            <a href="http://www.junit.org">JUnit</a>, the well known Java unit test framework. CTF-JDO 
-            provides the ability to execute tests based on an XML configuration file. This is very 
-            powerful when faced with a large number of tests because it allows the execution of 
-            only certain tests out of that large pool of tests. Also, this feature can save 
-            an immense amount of time in the software development process because no code need by 
-            cut to execute a different set of tests. Upon execution of the suite of tests listed in the 
-            XML configuration file, the results are then reported to the terminal.</p>
-            
-            <p>For more information on writing unit tests with JUnit, please see this 
-            <a href="http://junit.sourceforge.net/doc/testinfected/testing.htm">quick introduction</a> article.</p>
+      <p>
+        For more information on writing unit tests with JUnit, please see this
+        <a href="http://junit.sourceforge.net/doc/testinfected/testing.htm">quick
+        introduction</a> article.
+      </p>
 
-            <!--
+      <!--
             <p>
-            <h1>&lt;remove-this&gt;</h1> 
+            <h1>&lt;remove-this&gt;</h1>
             The following objects make up the Test Framework:
             <ol type="bullet">
                 <li>package harness:</li>
@@ -43,131 +50,205 @@
                     <li>TestHarness extends junit.framework.TestSuite</li>
                 </ol>
             </ol>
-            <h1>&lt;/remove-this&gt;</h1> 
+            <h1>&lt;/remove-this&gt;</h1>
             </p>
-            -->
+      -->
+
+    </section>
+
+    <section title="Executing the Castor JDO Test Cases">
 
-        </section>
+      <p>
+        In the Castor directory is a test script that accepts arguments and
+        passes them along to the TestSuite in CTF-JDO. Executing the test script
+        (test.[sh|bat])with the argument '-info' yields a full list of the test
+        cases available for execution.
+      </p>
 
-        <section title="Executing the Castor JDO Test Cases">
+      <p>
+        The following is a quick start guide to running the tests that come with
+        Castor:
+      </p>
 
-            <p>In the Castor directory is a test script that accepts arguments and passes them along to 
-               the TestSuite in CTF-JDO. Executing the test script (test.[sh|bat])with the argument 
-               '-info' yields a full list of the test cases available for execution.<br /><br />
-            
-               The following is a quick start guide to running the tests that come with Castor: 
+      <ol type="1">
+        <li>
+          <b>Configure the database connection.</b>
+          <br />
+          This is done in the XML file corresponding to the database being
+          tested. For example, database connections for Oracle are configured in
+          the file <tt>oracle.xml</tt>. Change this file to contain the proper
+          username, password, driver and any driver parameters necessary. For
+          more information on this, see <a href="jdo-database-conf.html">JDO
+          Config</a>.
+        </li>
 
-               <ol type="1">
-                  <li><b>Configure the database connection.</b><br />
-            
-                      This is done in the XML file corresponding to the database being tested. For example, 
-                      database connections for Oracle are configured in the file oracle.xml. Change this file to contain 
-                      the proper username, password, driver and any driver parameters necessary. For more information on this,
-                      see <a href="jdo-database-conf.html">JDO Config</a>.</li>
-            
-                  <li><b>Create the appropriate database tables.</b><br />
-            
-                      This is done by loading the SQL file corresponding to the database being tested.
-                      For example, the tables needed to test Oracle reside in oracle.sql. Consult the 
-                      database documentation on loading the SQL file. Alternatively, there is a little 
-                      utility available with Castor called BatchUpdateSQL in the src/tests/jdo directory 
-                      that can assist in the loading of SQL files.</li>
-            
-                  <li><b>Compile the tests.</b><br />
-            
-                      The tests can be compiled by executing the build script with the argument 
-                      'tests'. Note that compiling Castor is a prerequisite to compiling the tests.</li>
+        <li>
+          <b>Create the appropriate database tables.</b>
+          <br />
 
-                  <li><b>Run the tests.</b><br />
-            
-                      To run only the tests for Oracle, for example, execute the test script with the 
-                      argument 'castor.oracle'. This argument will cause the CTF-JDO to execute only 
-                      the battery of tests for Oracle.</li><br /><br />
+          This is done by loading the SQL file corresponding to the database
+          being tested. For example, the tables needed to test Oracle reside in
+          <tt>oracle.sql</tt>. Consult the database documentation on loading the
+          SQL file. Alternatively, there is a little utility available with
+          Castor called <tt>BatchUpdateSQL</tt> in the directory
+          <tt>src/tests/jdo</tt> that can assist in the loading of SQL files.
+        </li>
 
-                      Incidentally, if more feedback is needed from the tests as they're being run, execute 
-                      the test script with the argument '-verbose'. This will cause the CTF-JDO to output 
-                      more information about what is actually taking place while tests are executing. 
- 
-               </ol>
+        <li>
+          <b>Compile the tests.</b>
+          <br />
 
-            </p>
+          The tests can be compiled by executing the build script with the
+          argument 'tests'. Note that building Castor is a prerequisite to
+          compiling the tests.
+        </li>
+
+        <li>
+          <b>Run the tests.</b>
+          <br />
+
+          To run only the tests for Oracle, for example, execute the test
+          script with the argument 'castor.oracle'. This argument will cause
+          the CTF-JDO to execute only the battery of tests for Oracle.
+        </li>
+
+        <p>
+          Incidentally, if more feedback is needed from the tests as they're
+          being run, execute the test script with the argument '-verbose'. This
+          will cause the CTF-JDO to output more information about what is
+          actually taking place while tests are executing.
+        </p>
+
+      </ol>
+
+    </section>
+
+    <section title="Writing Test Cases">
+
+      <section title="Introduction">
+
+        <p>
+          Writing test cases is a very important, yet often misunderstood task.
+          Unit tests are pieces of code that exercise different scenarios of a
+          piece of software. Test cases are made up of groups of unit tests.
+          Writing test cases for specific uses of Castor is vital.  Submitting
+          test cases assists the Castor developers in verifying bugs and/or
+          patches. Whenever a user submits a request to the mail list stating
+          that Castor is not working in their situation, someone must analyze
+          the user's description or, if it's submitted, the user's code, and
+          then create a test case for that situation. This is very time
+          consuming and sometimes quite difficult to achieve. Submitting test
+          cases with a complete description of the problem saves everyone a
+          tremendous amount of time and expedites the entire process.
+        </p>
+
+        <p>
+          Understanding why unit tests are so important is the first step to
+          addressing this issue.  It may seem counterintuitive, but writing
+          unit tests will actually save development time.
+        </p>
+
+      </section>
+
+      <section title="Writing Tests Using the CTF-JDO">
+
+        <p>
+          Writing test cases using the CTF-JDO can be difficult to figure out,
+          at first.  The following steps will assist you in writing your own:
+        </p>
 
-        </section>
+        <ol type="1">
+          <li>
+            <b>Customize the database XML descriptor to connect to your database.</b>
+            <br/>
 
-        <section title="Writing Test Cases">
+            There are database descriptors in the src/test/jdo directory for
+            most, if not all, of the supported databases. The database
+            descriptor is an XML file corresponding to the database being
+            tested. It provides the information needed to make connections to
+            the database. For example, database connections for Oracle are
+            configured in the file <tt>oracle.xml</tt>.  (Note: In this
+            descriptor is a reference to a mapping descriptor. This should
+            point to the mapping descriptor created in step two.) For more
+            information on this, see <a href="jdo-database-conf.html">JDO
+            Config</a>.
+          </li>
 
-           <section title="Introduction">
+          <li>
+            <b>Create the appropriate database tables.</b>
+            <br />
 
-              <p>Writing test cases is a very important yet often misunderstood task. Unit tests are pieces 
-                 of code that exercise different scenarios of a piece of software. Test cases are made up 
-                 of groups of unit tests. Writing test cases for specific uses of Castor is extremely 
-                 vital. Submitting test cases assists the Castor developers in verifying bugs and/or 
-                 patches. Whenever a user submits a request to the mail list stating that Castor is 
-                 not working in their situation, someone must analyze the user's description or, if 
-                 it's submitted, the user's code, and create a test case for that situation. This is 
-                 very time consuming and sometimes quite difficult to achieve. Submitting test cases 
-                 with a complete description of the problem saves everyone a tremendous amount of time and 
-                 expedites the entire process.</p>
+            This is done by loading the SQL file corresponding to the database
+            being tested.
+          </li>
 
-              <p>Understanding why unit tests are so important is the first step to addressing this issue.
-                 It may seem counterintuitive, but writing unit tests will actually save development time.</p>
+          <li>
+            <b>Create the mapping descriptor.</b>
+            <br/>
 
-           </section> 
-        
-           <section title="Writing Tests Using the CTF-JDO">
-        
-              <p>Writing test cases using the CTF-JDO can be difficult to figure out. The following 
-                 steps serve to assist in writing your own:
+            Most situations will require the creation of an object model for
+            the tests. This requires that an XML mapping descriptor also be
+            created. For information on this, see the section on
+            <a href="xml-mapping.html">XML mapping</a>. This mapping descriptor
+            will need to be referenced in the database descriptor as noted in
+            step one.
+          </li>
 
-              <ol type="1">
-                 <li><b>Customize the database XML descriptor to connect to your database.</b><br/>
-                     
-                     There are database descriptors in the src/test/jdo directory for most, if not 
-                     all, of the supported databases. The database descriptor is an XML file corresponding 
-                     to the database being tested. It provides the information needed to make connections to 
-                     the database. For example, database connections for Oracle are configured in the 
-                     file oracle.xml.  (Note: In this descriptor is a reference to a mapping descriptor. This 
-                     should point to the mapping descriptor created in step two.) For more information on 
-                     this, see <a href="jdo-database-conf.html">JDO Config</a>.</li>
-            
-                 <li><b>Create the appropriate database tables.</b><br />
-            
-                     This is done by loading the SQL file corresponding to the database being tested. </li>
+          <li>
+            <b>Write the tests.</b>
+            <br/>
 
-                 <li><b>Create the mapping descriptor.</b><br/>
-                 
-                     Most situations will require the creation of an object model for the tests. 
-                     This requires that an XML mapping descriptor also be created. For information 
-                     on this, see the section on <a href="xml-mapping.html">XML mapping</a>. This 
-                     mapping descriptor will need to be referenced in the database descriptor as 
-                     noted in step one.</li>
+            <p>
+              The easiest way to write a test for your situation is to copy
+              one of the existing tests in the <tt>src/tests/jdo</tt> directory
+              and change it to suit your needs. Each test implements a certain
+              set of methods. The list of methods is as follows:
+            </p>
+
+            <ol type="A">
+              <li>
+                The constructor - This is used to identify the test by giving
+                it a name and a number.
+              </li>
+              <li>
+                <tt>setUp()</tt> -- This method is used for any necessary
+                assembly of the test.
+              </li>
+              <li>
+                <tt>tearDown()</tt> -- This method is used to disassemble the
+                test upon completion of execution.
+              </li>
+              <li>
+                <tt>runTest()</tt> -- This method is passed to JUnit to execute
+                any tests called in the method body.
+              </li>
+              <li>
+                <tt>testXXX()</tt> -- Any number of test methods can be written.
+                Each test method's name begins with the word <tt>test</tt>
+                followed by a descriptive name using an initial capital letter.
+              </li>
+            </ol>
+            <br />
+            <br />
 
-                 <li><b>Write the tests.</b><br/>
-                 
-                     <p>The easiest way to write a test for your situation is to copy one of the 
-                     existing tests in the src/tests/jdo directory and change it to suit your 
-                     needs. Each test implements a certain set of methods. The list of methods 
-                     is as follows:</p>
+            <p>
+              Simply change <tt>setUp()</tt>, <tt>runTest()</tt>, and
+              <tt>tearDown()</tt> to suit your needs. Then proceed to write any
+              number of <tt>testXXX()</tt> methods to test your situation. Just
+              place the name of each <tt>testXXX()</tt> method (in the proper
+              order) in the <tt>runTest()</tt> method.
+            </p>
+          </li>
 
-                     <ol type="A">
-                        <li>The constructor - This is used to identify the test by giving it a name and a number.</li>
-                        <li>setUp() - This method is used for any necessary assembly of the test.</li>
-                        <li>tearDown() - This method is used to disassemble the test upon completion of execution.</li>
-                        <li>runTest() - This method is passed to JUnit to execute any tests called in the method body.</li>
-                        <li>testXXX() - Any number of test methods can be written. Each test method's name begins with the word test followed by a descriptive name using an initial capital letter.</li>
-                     </ol><br /><br />
-                
-                     <p>Simply change setUp(), runTest() and tearDown() to suit your needs. Then 
-                     proceed to write any number of testXXX() methods necessary to test your 
-                     situation. Just place the name of each testXXX() method (in the proper 
-                     order) in the runTest() method.</p></li>
+          <li>
+            <b>Create the test descriptor.</b>
+            <br/>
 
-                 <li><b>Create the test descriptor.</b><br/>
-                 
-                     The XML test descriptor is simply a list of tests to be executed. The important 
-                     part of this file is each &lt;case&gt; element. This is where the fully 
-                     qualified name of each test resides. The following is a small example of a 
-                     stand alone XML descriptor containing some tests to run:
+            The XML test descriptor is simply a list of tests to be executed.
+            The important part of this file is each <tt>&lt;case&gt;</tt>
+            element. This is where the fully qualified name of each test
+            resides. The following is a small example of a stand-alone XML
+            descriptor containing some tests to run:
 
 <code>
 &lt;harness name="Instance Creation Tests"&gt;
@@ -180,39 +261,51 @@
    &lt;/category&gt;
 &lt;/harness&gt;
 </code>
-        
-                      This XML would need to be placed in it's own file. For the sake of this 
-                      example, we'll call the file myapp_tests.xml.</li>
+
+            This XML would need to be placed in its own file. For the sake of
+            this example, we'll call the file <tt>myapp_tests.xml</tt>.
+          </li>
 
-                  <li><b>Create the database tables.</b><br/>
-                  
-                      This is done by loading an SQL file that describes the tables. For a 
-                      sample of such an SQL file, see the SQL files in the src/tests/jdo 
-                      directory. For example, the tables needed to test Oracle reside in 
-                      oracle.sql. Incidentally, there is a little utility called BatchUpdateSQL in 
-                      the src/tests/jdo directory that is helpful in executing SQL files.</li>
+          <li>
+            <b>Create the database tables.</b>
+            <br/>
 
-                 <li><b>Compile the tests.</b><br/>
-                 
-                     Execute the build script with the argument 'tests' to compile the tests. 
-                     The standard Castor build script should pick up the files created.</li>
+            This is done by loading an SQL file that describes the tables. For
+            a sample of such an SQL file, see the SQL files in the
+            <tt>src/tests/jdo</tt> directory. For example, the tables needed
+            to test Oracle reside in <tt>oracle.sql</tt>. Incidentally, there
+            is a little utility called <tt>BatchUpdateSQL</tt> in the
+            <tt>src/tests/jdo</tt> directory that is helpful in executing SQL
+            files.
+          </li>
 
-                 <li><b>Execute the tests.</b><br/>
-                 
-                     Execute the test script with the argument '-file myapp_tests.xml'. This points 
-                     to the proper XML test descriptor for execution.</li>
+          <li>
+            <b>Compile the tests.</b>
+            <br/>
 
-              </ol>
+            Execute the build script with the argument 'tests' to compile the
+            tests. The standard Castor build script should pick up the files
+            created.
+          </li>
 
-           </p>
+          <li>
+            <b>Execute the tests.</b>
+            <br/>
 
-        </section>
+            Execute the test script with the argument '-file myapp_tests.xml'.
+            This points to the proper XML test descriptor for execution.
+          </li>
 
-        <section title="Additional Information">
-           <p>Not yet created.</p>
-        </section>
+        </ol>
 
       </section>
 
-   </body>
+      <section title="Additional Information">
+        <p>Not yet created.</p>
+      </section>
+
+    </section>
+
+  </body>
+
 </document>
