我找到了这个
http://www.herongyang.com/XML-Schema/Xerces2-XSD-Validation-with-
XMLReader.html
似乎提供以下详细信息(包括行号)
Error: Public ID: null System ID: file:///D:/herong/dictionary_invalid_xsd.xml Line number: 7 Column number: 22 Message: cvc-datatype-valid.1.2.1: 'yes' is not a valid 'boolean' value.
使用此代码:
import java.io.IOException;import org.xml.sax.XMLReader;import org.xml.sax.helpers.DefaultHandler;import org.xml.sax.helpers.XMLReaderFactory;import org.xml.sax.SAXException;import org.xml.sax.SAXParseException;class XMLReaderValidator { public static void main(String[] args) { String parserClass = "org.apache.xerces.parsers.SAXParser"; String validationFeature = "http://xml.org/sax/features/validation"; String schemaFeature = "http://apache.org/xml/features/validation/schema"; try { String x = args[0]; XMLReader r = XMLReaderFactory.createXMLReader(parserClass); r.setFeature(validationFeature,true); r.setFeature(schemaFeature,true); r.setErrorHandler(new MyErrorHandler()); r.parse(x); } catch (SAXException e) { System.out.println(e.toString()); } catch (IOException e) { System.out.println(e.toString()); } } private static class MyErrorHandler extends DefaultHandler { public void warning(SAXParseException e) throws SAXException { System.out.println("Warning: "); printInfo(e); } public void error(SAXParseException e) throws SAXException { System.out.println("Error: "); printInfo(e); } public void fatalError(SAXParseException e) throws SAXException { System.out.println("Fattal error: "); printInfo(e); } private void printInfo(SAXParseException e) { System.out.println(" Public ID: "+e.getPublicId()); System.out.println(" System ID: "+e.getSystemId()); System.out.println(" Line number: "+e.getLineNumber()); System.out.println(" Column number: "+e.getColumnNumber()); System.out.println(" Message: "+e.getMessage()); } }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)