> on page 21 the method SAXParser.getParser() is declared to throw a > SAXException, but later on, on page 23, that exception is not reflected > into the documentation. I believe the mistake resides on page 21, > because nothing should happen in the getParser() method but returning > the already instantiated and configured Parser() instance to the caller.
Unfortunatly, the mistake is on page 23. In the javax.xml.parsers documentation, we define the getParser method to throw the exception. The ommission on the method description is erroneous. > Also, I don't understand why the SAXParserFactory.newSAXParser() should > throw a SAXException, while DocumentBuilderFactory.newDocumentBuilder() > doesnt. Those methods already throw a ParserConfigurationException, so, > in my very humble opinion, the SAXException is redundant. The SAXException is intended to be thrown by the underlying SAX implementation while the ParserConfigException is thrown by the factory in a condition where the set configuration isn't valid. It is arguable redundant and we might want to address this in a future rev of the API. > The last thing, I developed an implementation for the Apache XERCES > parser, both of the javax.xml.parser classes, and for their relative > implementation under the org.apache.xerces.jaxp package. If you could > give them a look and send me some feedback that would be greatly > appreciated (I implemented the javax.xml.parser classes also since > there's not an implementation currently available conforming to the > given spec, as far as I can see). Nope, there's not a .jar file that implements the spec avaialble yet. It'll be out with the JAXP reference implmenetation "Real Soon Now". There isn't an issue for you having your own implmentation, though when we do get our jaxp.jar out there, you'll probably want to pick it up so that you don't have to maintain those interfaces. :) .duncan ---------------------------------------------------------------------- James Duncan Davidson [EMAIL PROTECTED] Java + XML / Portable Code + Portable Data !try; do();