java - 从/src/main/resources加载文件

标签 java xml xml-parsing xsd xsd-validation

我在/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/

相关文章:

java - 如何从 wsdl 生成请求和响应类?

android - 我可以将 View 附加到动画 View 吗?

xml-parsing - 如何用冒号解码 XML 属性?

xml - 用 XSLT 替换节点文本?

java - 为什么XPATH无法访问该标签的值? ( java 语)

c++ - Xerces-C 上的 DOM 元素内存分配管理

java - 对象列表上的 JUnit Mockito ReflectionEquals

java - 从 Java 7 转换为 6,Matcher.group

java - 在 Java 中创建 TableColumn 并将其添加到 JTable

c# - 使用 XmlReader 时引用外部命名字符实体?