Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/arranger/jarl/test/SchemaTest.java


1   package com.arranger.jarl.test;
2   
3   import com.arranger.jarl.util.XMLUtil;
4   import junit.framework.TestCase;
5   import org.w3c.dom.Document;
6   import org.xml.sax.ErrorHandler;
7   import org.xml.sax.SAXException;
8   import org.xml.sax.SAXParseException;
9   
10  import javax.xml.parsers.DocumentBuilder;
11  import javax.xml.parsers.DocumentBuilderFactory;
12  import java.io.File;
13  
14  /**
15   * SchemaTest created on Mar 13, 2003
16   */
17  public class SchemaTest extends TestCase {
18  
19      static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
20      static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
21  
22      static final String SAMPLE_XML = "src/com/arranger/jarl/test/sample.xml";
23  
24  
25      public void testSchema() throws Exception {
26  
27  
28          DocumentBuilderFactory documentBuilderFactory = XMLUtil.getBuilderFactory();
29          documentBuilderFactory.setValidating(true);
30          documentBuilderFactory.setNamespaceAware(true);
31          documentBuilderFactory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); //for XMLSchema validation
32          DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
33          class CustomErrorHandler implements ErrorHandler {
34              int numErrors = 0;
35              protected void report(SAXParseException exception) {
36                  System.out.println(exception.getSystemId() + " " + exception.getLineNumber() + ":" + exception.getColumnNumber() + " --> " + exception.getMessage());
37                  numErrors++;
38              }
39  
40              public void warning(SAXParseException exception)
41                  throws SAXException {
42                  report(exception);
43              }
44  
45              public void error(SAXParseException exception)
46                  throws SAXException {
47                  report(exception);
48              }
49  
50              public void fatalError(SAXParseException exception)
51                  throws SAXException {
52                  report(exception);
53              }
54          }
55  
56          CustomErrorHandler customErrorHandler = new CustomErrorHandler();
57          documentBuilder.setErrorHandler(customErrorHandler);
58          Document document = documentBuilder.parse(new File(SAMPLE_XML));
59          if (customErrorHandler.numErrors > 0) {
60              System.out.println(customErrorHandler.numErrors + " errors occurred");
61          }
62  
63      }
64  }