tree 77738f34771df895d57c83a0a684a46547a06f1e
parent 536a964538d43749cfb88b3023bc4f8c31588b9a
author Jesse Wilson <jessewilson@google.com> 1264548164 -0800
committer Jesse Wilson <jessewilson@google.com> 1264642706 -0800

Bring our XML APIs up to date with Java 5.

New packages for Java 5 compatiblity:
 - javax.xml.datatype
 - javax.xml.namespace
 - javax.xml.parsers (updated)
 - javax.xml.transform
 - javax.xml.transform.dom
 - javax.xml.transform.sax
 - javax.xml.transform.stream
 - javax.xml.validation
 - javax.xml.xpath
 - org.w3c.dom (updated)
 - org.w3c.dom.events
 - org.w3c.dom.ls (load/save)
 - org.w3c.dom.traversal
 - org.w3c.dom.views

Omitted packages (that otherwise exist in Java 5)
 - org.w3c.dom.bootstrap. This package facilitates pluggable implementations of DOM.
       I'm not including this because there's little need for it in practice; and
       because it adds an unnecessary layer of complexity. This decision is also
       reflected in TransformerFactory.newInstance(), SAXParserFactory.newInstance(),
       and DocumentBuilderFactory.newInstance().

New packages that pseudo-exist in Java 5
 - org.w3c.dom.traversal
     This package is referenced by Java 5's org.w3c.dom.ls.LSSerializerFilter, but
     isn't included in the Javadoc API. Their spec isn't self-consistent.
 - org.w3c.dom.views
     This package is referenced by Java 5's org.w3c.dom.events.MouseEvent, but
     isn't included in the Javadoc API. Another spec that isn't self-consistent.

This upgrades DOM from v2 to v3. http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/
This includes some API-incompatible changes; notably introducing new methods
into interfaces. I believe this is still safe, and Java made a similar backwards
incompatible change when they upgraded DOM from v2 to v3 between Java 1.4 and
Java 5.0.

Source for the new APIs comes from Apache XML commons.
  http://svn.apache.org/repos/asf/xml/commons/trunk rev 901014.

This code currently contains several gaps in its implementation. In particular,
the impelementations of the DOM model classes (AttrImpl, ElementImpl, NodeImpl)
have DOM v3 methods that throw UnsupportedOperationExceptions. I intend to
address this problem in an immediate follow-up CL. All gaps are marked with TODO
comments, and they all live in the org.apache.harmony.xml.dom package.

To implement these APIs, I've included Apache Xalan. In a follow-up change
I intend to remove most of the code we don't actually need. I'm using their
pristine copy from SVN so Git can track our local modifications.
  http://svn.apache.org/repos/asf/xalan/java/trunk rev 889881.
