我在/src/main/resources/vast_2.0.1.xsd 中有一个 XML 架构文件。
我需要加载它并使用它来验证我的 XML 文件。
这就是正在发生的事情:
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI);
File schemaFile = new File("/src/main/resources/vast_2.0.1.xsd");
try {
Schema schema = scehmaFactory.newSchema(schemaFile);
Validator validator = schema.newValidator();
Source sourceXMLFile = new StreamSource(validationRequest.xmlInputStream);
validator.validate(sourceXMLFile);
} catch (SAXException e) {
responseEngine.addFailedCheck("NON_VAST_COMPLIANT", "Does not meet VAST 2.0 XML schema specifications");
} catch (IOException e) {
// should not reach here
}
由于某种原因,在 File schemaFile = new File...
行之后,它停止运行(使用 print 语句)。我是否错误地加载了文件?
最佳答案
我从你的目录结构假设你正在使用maven。在maven项目中,src/main/resources始终位于类路径中,因此您只需指定文件名而不指定路径。试试这个:
File schemaFile = new File("vast_2.0.1.xsd");
关于java - 从/src/main/resources加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25631506/