这是 XML 模式:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="id" type="xs:long" />
</xs:schema>
经过一致性验证的 XML 文件:
<?xml version="1.0" ?>
<id>invalid_data</id>
使用 XML 并应测试一致性的 Java 代码:
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(false);
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
factory.setSchema(schemaFactory.newSchema(new File(xmlSchema)));
parser = factory.newSAXParser();
MySaxHandler handler = new MySaxHandler();
parser.parse(new File(xmlFile), handler);
在调用此代码期间,NumberFormatException 会characters
在MySaxHandler
. MySaxHandler 还包含覆盖方法 warning、error 和 fatalError 但它们不会被执行。
我不希望抛出这个 NumberFormatException。我希望根据 Schema 验证数据类型。我该怎么做?