<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.

-->

<!-- This document is used as source for generating www/dev/todo.html.
     When you change this, please regenerate result document by 'ant todo' in www directory.
  -->

<list module="tax">
    <item priority="2">
        <summary>Exception, when add attribute with same name</summary>
        <description>When you try to add attribute into element and this element contains attribute with same name, then exception should be thrown.</description>
    </item>
    <item priority="2">
        <summary>Exception, when try replace doctype</summary>
        <description>When you try to set doctype into document, which already contains doctype, then exception should be thrown.</description>
    </item>
    <item priority="2">
        <summary>Exception, when try replace root element</summary>
        <description>When you try to set element into document, which already contains element, then exception should be thrown.</description>
    </item>
    <item priority="3">
        <summary>UML Model of TAX</summary>
        <description>Create <b>UML Model</b> of TAX to better understanding TAX design.</description>
    </item>
    <item priority="4">
        <summary>MOF Model of TAX</summary>
        <description>Create <b>MOF Model</b> of TAX to support prepared MDR module and next generation of data modules.</description>
    </item>

</list>
