gpt4 book ai didi

java - 如何使用标准 javax.xml.validation.Validator 在运行时(而不是 JUnit)检查 xml 文件是否对 xsd 有效

转载 作者:行者123 更新时间:2023-12-02 02:07:12 25 4
gpt4 key购买 nike

我知道如何在 JUnit 中使用以下方法执行此操作:

String xsdPathname = getClass.getResource("/META-INF/xsd/my.xsd").getFile();
Schema schema = sf.newSchema(new File(pathname));
Validator validator = schema.newValidator();
validator.validate(source);

但据我所知,当xsd打包在jar中时,这是不可用的。

是否有其他“模式”构建方法可以接受“InputStream”而不是"file"?

最佳答案

您可以使用SchemaFactory#newSchema(Source) ,提供StreamSource 。因此,您的代码看起来像

    InputStream xsdInputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("/META-INF/xsd/my.xsd");
Schema schema = sf.newSchema(new StreamSource(xsdInputStream));
Validator validator = schema.newValidator();
validator.validate(source);

关于java - 如何使用标准 javax.xml.validation.Validator 在运行时(而不是 JUnit)检查 xml 文件是否对 xsd 有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50609127/

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