commit | 4c7a0d97cf2b27790e6236965a1d798d710d7ec7 | [log] [tgz] |
---|---|---|
author | Jesse Wilson <jessewilson@google.com> | Tue Jan 26 15:22:44 2010 -0800 |
committer | Jesse Wilson <jessewilson@google.com> | Wed Jan 27 17:38:26 2010 -0800 |
tree | 77738f34771df895d57c83a0a684a46547a06f1e | |
parent | 536a964538d43749cfb88b3023bc4f8c31588b9a [diff] |
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.