gpt4 book ai didi

java - 如何在使用 sax 解析器解析 xml 文件时针对给定的 xsd 文件验证它?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:32 26 4
gpt4 key购买 nike

我想使用 SAXParser 或 XMLReader 解析 xml 文件并验证该文件是否符合特定的 xsd 文件 (new File( "example.xsd") ).

很简单

  1. 使用 Validator 在额外的步骤中对 xsd 文件进行验证,如 this SO answer .

  2. 通过将 xsd 的名称指定为 "http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation" 来在解析时进行验证,例如 this SO answer .

但是我如何根据 new File( "example.xsd") 在解析时 进行验证?

最佳答案

假设 Java 5 或更高版本,在 SAXParserFactory 上设置模式:

SchemaFactory schemaFactory = SchemaFactory
.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(new File("myschema.xsd"));
SAXParserFactory saxFactory = SAXParserFactory.newInstance();
saxFactory.setSchema(schema);
SAXParser parser = saxFactory.newSAXParser();
parser.parse("data.xml", new DefaultHandler() {
// TODO: other handler methods
@Override
public void error(SAXParseException e) throws SAXException {
throw e;
}
});

您可以通过覆盖 error method 来处理验证错误在您的处理程序上并按您认为合适的方式行事。

关于java - 如何在使用 sax 解析器解析 xml 文件时针对给定的 xsd 文件验证它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1630319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com