====================================
      XMLSchema Release Notes - Version ${version}
====================================

XMLSchema is a lightweight schema object model that can be used to manipulate and
generate XML schema representations. It has very few external dependencies and can
be easily integrated into an existing project.

You are welcome to kick the tires and get XMLSchema on the move. If you like to 
help us shape XMLSchema any contribution in the form of coding, testing, 
submitting improvements to the documentation, and reporting bugs are always 
welcome.

Thanks for your interest in XMLSchema!

-The XMLSchema Development Team
http://ws.apache.org/commons/XmlSchema/

===================
   Documentation
===================
 
Documentation can be found in the 'documents' distribution of this release and in
the main site.

===================
      Support
===================
 
Any problem with this release can be reported to ws-commons mailing list. If you 
are sending an email to the mailing list make sure to add the [XMLSchema] prefix 
to the subject.

To the subscribe to the mailing list send an empty email to:

  commons-dev-subscribe@ws.apache.org
