Hello everyone, During the past week I spent some time having a look over the Xerces portions of the JAXP 1.3 donation to get a feel of what work would be required to integrate this code back into Xerces. In doing so I found a number of issues which should probably be addressed before integration work begins on the main line.
In the Xerces code there are a couple instances where JAXP identity transformers are being used for supporting DOM input into the validation API. This creates a dependency on an XSLT processor (such as Xalan), one that wasn't there before, meaning users would have to carry even more megabyte sized jars in their classpath. To allow users to continue using Xerces stand-alone, these dependencies would need to be replaced with some equivalent. I believe stand-alone usage of Xerces is common and should still be supported in Xerces 2.7.0. Does anyone more familiar with the code know how difficult cutting these dependencies would be? I also noticed that the JAXP SAXParser and DocumentBuilder now fix the XMLParserConfiguration to a new configuration called JAXPConfiguration. Previously it was possible to override [1] the parser configuration, a rather powerful feature that's been supported throughout Xerces2 releases. In addition to the many parser configurations [2] which ship with Xerces other applications such as NekoHTML provide parser configurations which can be used to override the default parser configuration. It isn't obvious to me why the parser configuration would need to be fixed. Was there a compelling reason for doing this? In addition there have been modifications made to both XNI and the XML Schema API. Specifically a constructor and a method were added to org.apache.xerces.xni.parser.XMLInputSource which handle javax.xml.transform.Source objects. org.apache.xerces.xs.XSTypeDefinition was modified so that it also extends org.w3c.dom.TypeInfo. These changes would make XNI dependent on JAXP and the XML Schema API on DOM Level 3. Though minor changes have been made on occasion, XNI is more or less final. The XML Schema API is a published API [3] which both Xerces-J and Xerces-C++ support. Though it may be possible to make modifications to both of these APIs in Xerces, it seems like the changes were made for convenience and could be replaced without modifying XNI or the XML Schema API. When trying to use JDK 1.3, I ran into several compile and runtime dependencies on JDK 1.4 in the API and Xerces and Xalan code (which I needed for the validation API). These are summarized below: Location javax.xml.datatype.DatatypeConfigurationException -- Relies on Exception(String, Throwable), Exception(Throwable) constructors added in JDK 1.4 javax.xml.transform.stream.StreamSource.setSystemId(File) -- Requires File.toURI() at compile time, recovers from the NoSuchMethodError if it isn't there. org.apache.xerces.jaxp.DocumentBuilderFactoryImpl -- Boolean.valueOf() org.apache.xml.serialize.DOMSerializerImpl -- import of java.net.URI class org.apache.xml.serialize.EncodingInfo -- java.nio.* org.apache.xalan.xsltc.trax.TransformerImpl -- Use of the java.net.URI class org.apache.xpath.jaxp.XPathImpl -- the Error(Throwable) constructor Historically Xerces has been conservative about its JDK requirements. Support for JDK 1.1 was only dropped last year in Xerces 2.6.2 (which now requires JDK 1.2) after discussing it with the community [4]. At the time there were still users depending on JDK 1.1 support. There are still many users which depend on pre-JDK 1.4 environments. To keep the code accessible to such users, I feel that the dependencies on JDK 1.4 should be removed. What do other people think? I have some other more minor concerns that I haven't listed here. These might merit discussion once these more significant issues have been resolved. Thanks. [1] http://xml.apache.org/xerces2-j/faq-xni.html#faq-2 [2] http://xml.apache.org/xerces2-j/faq-xni.html#faq-3 [3] http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/ [4] http://marc.theaimsgroup.com/?l=xerces-j-user&w=2&r=1&s=Dropping+JDK+1.1&q=b Michael Glavassevich XML Parser Development IBM Toronto Lab E-mail: [EMAIL PROTECTED] E-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]