|
Listing 4 DOMValidator.java
import oracle.xml.parser.schema.XMLSchema;
import oracle.xml.parser.schema.XSDBuilder;
import oracle.xml.parser.schema.XSDException;
import oracle.xml.parser.v2.DOMParser;
import oracle.xml.parser.v2.XMLParseException;
import oracle.xml.parser.v2.XMLParser;
import oracle.xml.schemavalidator.XSDValidator;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;
import java.net.URL;
public class DOMValidator {
public void validateSchema(String SchemaUrl, String XmlDocumentUrl) {
try {
DOMParser domParser = new DOMParser();
domParser.setValidationMode(XMLParser.SCHEMA_VALIDATION);
XSDBuilder builder = new XSDBuilder();
URL url = new URL(SchemaUrl);
XMLSchema schemadoc = (XMLSchema) builder.build(url);
domParser.setXMLSchema(schemadoc);
Validator handler = new Validator();
domParser.setErrorHandler(handler);
domParser.parse(XmlDocumentUrl);
if (handler.validationError == true) {
System.out.println("XML Document has Error:" +
handler.validationError + " " +
handler.saxParseException.getMessage());
} else {
System.out.println("XML Document is valid");
}
} catch (java.io.IOException ioe) {
System.out.println("IOException " + ioe.getMessage());
} catch (SAXException e) {
System.out.println("SAXException " + e.getMessage());
} catch (XSDException e) {
System.out.println("XSDException " + e.getMessage());
}
}
public static void main(String[] argv) {
String SchemaUrl = argv[0];
String XmlDocumentUrl = argv[1];
DOMValidator validator = new DOMValidator();
validator.validateSchema(SchemaUrl, XmlDocumentUrl);
}
private class Validator extends DefaultHandler {
public boolean validationError = false;
public SAXParseException saxParseException = null;
public void error(SAXParseException exception)
throws SAXException {
validationError = true;
saxParseException = exception;
}
public void fatalError(SAXParseException exception)
throws SAXException {
validationError = true;
saxParseException = exception;
}
public void warning(SAXParseException exception)
throws SAXException {
}
}
}
|