| Article: |
XML Document Validation with an XML Schema | |
| Subject: | sample code quality - bad | |
| Date: | 2006-05-26 06:45:06 | |
| From: | gninneh | |
|
Response to: sample code quality - bad
|
||
|
Thanks for this very helpful hint. Did you try this yourself?
|
||
Showing messages 1 through 2 of 2.
-
sample code quality - bad
2006-05-27 16:06:51 Deepak Vohra [Reply | View]
-
sample code quality - bad
2006-05-27 16:01:56 Deepak Vohra [Reply | View]
Formatted code:
JAXPValidator.java:
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
public class JAXPValidator {
public void validateSchema(String SchemaUrl, String XmlDocumentUrl) {
try {
System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
"org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(true);
factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
"http://www.w3.org/2001/XMLSchema");
factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource",
SchemaUrl);
DocumentBuilder builder = factory.newDocumentBuilder();
Validator handler = new Validator();
builder.setErrorHandler(handler);
builder.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 (ParserConfigurationException e) {
System.out.println(
"ParserConfigurationException " +
e.getMessage());
}
}
public static void main(String[] argv) {
String SchemaUrl = argv[0];
String XmlDocumentUrl = argv[1];
JAXPValidator validator = new JAXPValidator();
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 {
}
}
}
SchemaValidator.java:
import org.apache.xerces.parsers.SAXParser;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;
import java.io.IOException;
public class SchemaValidator {
public void validateSchema(String SchemaUrl, String XmlDocumentUrl) {
SAXParser parser = new SAXParser();
try {
parser.setFeature("http://xml.org/sax/features/validation", true);
parser.setFeature("http://apache.org/xml/features/validation/schema",
true);
parser.setFeature("http://apache.org/xml/features/validation/schema-full-checking",
true);
parser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",
SchemaUrl);
Validator handler = new Validator();
parser.setErrorHandler(handler);
parser.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());
}
}
public static void main(String[] argv) {
String SchemaUrl = argv[0];
String XmlDocumentUrl = argv[1];
SchemaValidator validator = new SchemaValidator();
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 {
}
}
}





When posted, the formatting does not get displayed.