<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->
<html id="htmlroot">
<head>
<title>Xerces-2 Schema alpha</title>
<style type="text/css">
         BODY {  margin: 2em 1em 2em 70px;  
                 font-family: New Times Roman, serif;    
                 color: black;    
                 background-color: white;}
</style>
</head>

<body>
<h1>Xerces-2 Schema alpha</h1>

<p><b>Features:</b>
<ul>
<li>Similar schema support to xerces-1, except no: 
<ul>
<li>particle derivation restriction checking
<li>UPA checking
<li>cos-element-consistent checking
</ul>
</ul>
<p><b>Target date:</b> late October 
<p><b>Overall status:</b> Oct 29:  Release posted.           

<h3>Development line items </h3>
<table align="right" border="2">
<tr>
<th style="text-align:left">Line item </th>
<th style="text-align:left">Volunteer </th>
<th style="text-align:left">Target start date </th>
<th style="text-align:left">Target completion date </th>
<th style="text-align:left">Status </th></tr>


<tr>
<td>Overall schema design work </td>
<td>all     </td>
<td>July 1
<td>Aug 31</td>
<td>Complete</td>
</tr>

<tr>
<td>Infrastructure and framework  </td>
<td>Neil Graham, Elena Litani, Sandy Gao </td>
<td>Aug. 24 </td>
<td>Sept. 21</td>
<td>Complete</td>
</tr>

<tr>
<td>Datatype and msg port </td>
<td>Elena Litani</td>
<td>Aug. 24 </td>
<td>Aug. 31 </td>
<td>Complete</td>
</tr>

<tr>
<td>Schema Handler and document info </td>
<td>Neil Graham      </td>
<td>Aug. 24 </td>
<td>Oct. 12</td>
<td>Complete</td>
</tr>

<tr>
<td>Identity constraint traversal</td>
<td>Neil Graham</td>
<td>Sept. 13
<td>Sept. 24
<td>Complete</td>
</tr>

<tr>
<td>SimpleType traversal </td>
<td>Elena Litani    </td>
<td>Aug. 24 </td>
<td>Sept. 21</td>
<td>Complete</td>
</tr>

<tr>
<td>Element traversal </td>
<td>Sandy Gao   </td>
<td>Aug. 24 </td>
<td>Sept. 25</td>
<td>Complete</td>
</tr>

<tr>
<td>Attribute traversal - initial implementation </td>
<td>Sandy Gao   </td>
<td>Aug. 24 </td>
<td>Sept. 25</td>
<td>Complete</td>
</tr>

<tr>
<td>Group traversal</td>
<td>Rahul Srivastava (Elena Litani, Lisa Martin) </td>
<td>Sept. 1</td>
<td>Sept. 10</td>
<td>Complete</td>
</tr>

<tr>
<td>wildcard support - initial implementation </td>
<td>Sandy Gao, Rahul Srivastava   </td>
<td>Aug. 24 </td>
<td>Sept. 25</td>
<td>Complete</td>
</tr>

<tr>
<td>Attribute group traversal - initial implementation </td>
<td>Sandy Gao, Rahul Srivastava </td>
<td>Aug. 24 </td>
<td>Sept. 25</td>
<td>Complete</td>
</tr>

<tr>
<td>Complex type support  </td>
<td>Lisa Martin      </td>
<td>Sept. 1</td>
<td>Oct. 5 </td>
<td>Complete </td>
</tr>

<tr>
<td>Schema validator - initial implementation</td>
<td>Sandy Gao</td>
<td>Sept. 4</td>
<td>Sept. 25</td>
<td>Complete</td>
</tr>

<tr>
<td>Content models:  builder, simple</td>
<td>Elena Litani</td>
<td>Sept. 4</td>
<td>Sept. 25</td>
<td>Complete</td>
</tr>

<tr>
<td>Content models:  DFA</td>
<td>Neil Graham</td>
<td>Sept. 24</td>
<td>Oct. 1</td>
<td>Complete</td>
</tr>
<tr>
<td>Notation traversal</td>
<td>Rahul Srivastava</td>
<td>Sept. 15</td>
<td>Sept. 18</td>
<td>Complete</td>
</tr>

<tr>
<td>Misc. AttributeUse, attributeGroup Changes
<ul>
<li>change implementation of union of attribute uses
<li>ensure all constraint checking done (ag-props-correct 2 and 3)
</ul>
</td>
<td>Rahul Srivastava     </td>
<td>Oct. 1 </td>
<td>Oct. 5 </td>
<td>Complete </td>
</tr>

<tr>
<td>wildcard utility methods
<ul>
<li>intersection, union, subset
</ul>
</td>
<td>Rahul Srivastava      </td>
<td>Oct. 1</td>
<td>Oct. 19</td>
<td>Complete </td>
</tr>

<tr>
<td>Schema Validator - identity constraint checking  </td>
<td>Neil Graham   </td>
<td>Oct. 5</td>
<td>Oct. 11  </td>
<td>Complete</td>
</tr>

<tr>
<td>Schema Validator - default/fixed element values  </td>
<td>Neil Graham  </td>
<td>Oct. 5</td>
<td>Oct. 11</td>
<td>Complete</td>
</tr>

<tr>
<td>Schema Validator - ENTITY validation</td>
<td>Elena Litani</td>
<td>Oct. 1 </td>
<td>Oct. 19 </td>
<td>Complete. </td>
</tr>

<tr>
<td>Schema resolution changes</td>
<td>Elena Litani</td>
<td>Oct. 1  </td>
<td>Oct. 1  </td>
<td>Complete</td>
</tr>

<tr>
<td>annotation  </td>
<td>Pavani Mukthipudi</td>
<td>Sept. 26
<td>Oct. 1  </td>
<td>Complete</td>
</tr>

<tr>
<td>all Content Model </td>
<td>Pavani Mukthipudi</td>
<td>Sept. 26 </td>
<td>Oct. 4  </td>
<td>Complete</td>
</tr>

<tr>
<td>mixed Content Model </td>
<td>Elena Litani</td>
<td>Sept. 24 </td>
<td>Oct. 1 </td>
<td>Complete </td>
</tr>

<tr>
<td>Testing</td>
<td>all</td>
<td>Oct. 8 </td>
<td>Oct. 22 </td>
<td>Complete. </td>
</tr>

<tr>
<td>Package restructuring</td>
<td>Elena Litani</td>
<td>Oct. 24</td>
<td>Oct. 25 </td>
<td>Complete</td>
</tr>

<tr>
<td>Configuration changes</td>
<td>Elena Litani, Sandy Gao</td>
<td>Oct. 24</td>
<td>Oct. 25 </td>
<td>Complete</td>
</tr>

<tr>
<td>Attempt final build and post to apache </td>
<td>all</td>
<td>Oct. 25 </td>
<td>Oct. 31 </td>
<td>Complete 
<ul>
<li>
Build attempted Oct. 25.  Bugs fixed on 26.
<li>Build re-initiated and posted Oct. 29
</ul>
</td>
</tr>

</table>

</body>
</html>
