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がスローされないようにします。スキーマに従ってデータ型を検証したい。どうすればいいのですか?