Datasheet
Here’s the SAXMain program, enhanced to perform schema validation:
1: /*
2: *
3: * SchemaValidateMain.java
4: *
5: * Example from "Professional XML Development with Apache Tools"
6: *
7: */
8: package com.sauria.apachexml.ch1;
9:
10: import java.io.IOException;
11:
12: import org.apache.xerces.parsers.SAXParser;
13: import org.xml.sax.EntityResolver;
14: import org.xml.sax.SAXException;
15: import org.xml.sax.SAXNotRecognizedException;
16: import org.xml.sax.SAXNotSupportedException;
17: import org.xml.sax.XMLReader;
18:
19: public class SchemaValidateMain {
20:
21: public static void main(String[] args) {
22: XMLReader r = new SAXParser();
23: try {
24: r.setFeature("http://xml.org/sax/features/validation",
25: true);
26: r.setFeature(
27: "http://apache.org/xml/features/validation/schema",
28: true);
29: } catch (SAXNotRecognizedException snre) {
30: snre.printStackTrace();
31: } catch (SAXNotSupportedException snre) {
32: snre.printStackTrace();
33: }
34: BookHandler bookHandler = new BookHandler();
35: r.setContentHandler(bookHandler);
36: r.setErrorHandler(bookHandler);
37: EntityResolver bookResolver = new BookResolver();
38: r.setEntityResolver(bookResolver);
39: try {
40: r.parse(args[0]);
41: System.out.println(bookHandler.getBook().toString());
42: } catch (SAXException se) {
43: System.out.println("SAX Error during parsing " +
44: se.getMessage());
45: se.printStackTrace();
46: } catch (IOException ioe) {
47: System.out.println("I/O Error during parsing " +
48: ioe.getMessage());
49: ioe.printStackTrace();
50: } catch (Exception e) {
51: System.out.println("Error during parsing " +
52: e.getMessage());
21
Xerces
01 543555 Ch01.qxd 11/5/03 9:40 AM Page 21