我在/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语句)。我是否错误地加载了文件?
答案 0 :(得分:0)
我假设你的目录结构中你正在使用maven。在maven项目中,src / main / resources始终位于类路径中,因此您只需指定不带路径的文件名。试试这个:
File schemaFile = new File("vast_2.0.1.xsd");