This article shows five ways of how to configure different Java APIs (including DOM, SAX, dom4j and XOM) using JAXP 1.3 for checking and validating XML with DTD and Schema(s).
To report errors, it is necessary to provide an Error Handler to the underlying implementation.
This Validator instance can then be used to validate an XML file represented with the DOM interface or the SAX interface.
We have tried the DOM interface in previous sections. Here is a tutorial example program called Xsd Schema Sax that validates an XML file against an XSD file using the SAX interface: /* * Xsd Schema Sax - Copyright (c) 2013, Herong Yang.com, All Rights Reserved.
I think you'll have to ask somewhere else for that; I can't help you refactor out huge parts of your program just like that.
Now, I don't have a solution for your main problems.
I believe this method suffers because you try to validate everything before deciding whether you're going to use it.
final String attributes = Data().trim().split( "\s " ); String type = parse Name Value( attributes ); String href = parse Name Value( attributes ); // TODO: Schema should = //String schema = Named Item( "schematypens" ); if( "application/xml".equals Ignore Case( type ) && href !
But, through this approach, we cannot get information about all validation errors in the XML file in a single run.
If an XML file has multiple validation errors (say four), then in first run, the exception will be thrown as soon as the first error will be encountered and we do not get to know about remaining three errors.
The given answer works, but has a number of issues that are undesirable, including: It seems like those aspects of the code should be handled by existing APIs, especially the contortions required to extract the XSD URI from the DOM. XMLConstants; import org.w3*; import sax.*; import org.resolver.tools.
A repository exists that contains the entire example, complete with catalog files, schema definitions, and XML tests.