| Home >> All >> com >> arranger >> jarl >> [ test Javadoc ] |
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 }