A SAXParser, however, is much more space efficient in case of big input document (because it creates no internal structure).
What's more, it runs faster and is easier to learn than DOMParser because its API is really simple.
If you use a DOM parser explicitly for validation, you will definitely instantiate a DOM tree. Is is a case of just creating the Error Handler and associating it with the validator? // parse an XML document into a DOM tree Document Builder parser = Document Builder Instance()Document Builder(); Document document = parser.parse(new File("instance.xml")); // create a Schema Factory capable of understanding WXS schemas Schema Factory factory = Schema Instance(XMLConstants. If I use an Error Handler (own class that implements Error Handler) instead, it recognizes all errors, but the try-catch-block of validator.validate does not throw any Exception..
W3C_XML_SCHEMA_NS_URI); // load a WXS schema, represented by a Schema instance Source schema File = new Stream Source(new File("my Schema.xsd")); Schema schema = Schema(schema File); // create a Validator instance, which can be used to validate an instance document Validator validator = Validator(); // validate the DOM tree try catch (SAXException e) Working this way, a SAXException would be thrown at the first error in the xml-file and stops then the validation. How do I recognize an error in the class that invokes the validate-method of my validator? is probably a network location, so it'll go out and hit the network with each and every validation, not always optimal.
If you want to use SAX, you'll need all of the following: Most Java/XML tools distributions include SAX2 and a parser using it.
Most web applications servers use it for their core XML support.
Nevertheless, the Ælfred parser offered some advantages over the Crimson parser included with JDK 1.4, and it is therefore now available as a free-standing download.