[ANNOUNCEMENT]: XML Commons External 1.4.01 now available
The XML Commons team is pleased to announce that version 1.4.01 of XML Commons External is now available. This release updates the XML APIs to JAXP 1.4 and also introduces the StAX 1.0 and the Element Traversal APIs. XML Commons External 1.4.01 will be included in the upcoming release of Xerces-J 2.10.0.
Specifically, the changes introduced in this release are:
* Added classes and method signatures introduced by JAXP 1.4.
* Added the StAX 1.0 API (JSR 173). Sources based off of the distribution from Apache Geronimo.
* Added the Java Language Binding for the Element Traversal API (org.w3c.dom.ElementTraversal).
* Added default implementations to SchemaFactory for the XML Schema 1.0 and 1.1 language identifiers.
* Fixed bugs in SchemaFactory and XPathFactory which caused them to always use the system ClassLoader when searching for META-INF/services files instead of the ClassLoader that would be used to load the concrete factory class.
* Updated each of the JAXP factory classes so that they treat an empty string value for their system property as if it had not been set. Previously the factories would make a futile attempt to create an instance of a class named "" and then fail.
* Fixed the FactoryFinders so that they no longer catch and ignore ThreadDeath and serious VM errors such as an OutOfMemoryError or a StackOverflowError.
* Fixed the default implementation of DatatypeFactory.createDurationDayTime(long) so that it behaves according to the JAXP specification. Previously it was just delegating to DatatypeFactory.newDuration(long) which has different behaviour than the createDurationDayTime method.
* Corrected the default implementations of DatatypeFactory.newDurationYearMonth() and DatatypeFactory.newDurationDayTime() so that they behave according to the JAXP specification. These methods must reject lexical values which are not valid instances of xs:yearMonthDuration and xs:dayTimeDuration. They were not doing so before.
* Fixed bugs which could cause NullPointerExceptions to be thrown from the default implementations of Duration.getYears(), Duration.getMonths(), etc...
* Fixed bugs in the DatatypeFactory.newDurationDayTime() and DatatypeFactory.newDurationYearMonth() methods where BigIntegers were being created for DatatypeConstants.FIELD_UNDEFINED values instead of assigning the value to null in the Duration.
* Implemented minor performance improvements in XMLGregorianCalendar.equals() and Duration.equals(). If the given object is "this" object return true immediately.
* Eliminated an unnecessary conversion to String in Duration.multiply(int).
* Updated the File to URI conversion code in StreamResult so that it is consistent with StreamSource.
* Fixed miscellaneous typographical errors in the Javadocs.