
Apache Aries
Copyright 2009-2011 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This product includes sofware developed at
the World Wide Web Consortium (http://www.w3.org)
and licensed under the W3C® Software License
(http://www.w3.org/Consortium/Legal/copyright-software).
This includes the xml.xsd xml schema.
