簡體   English   中英

如何使用標准javax.xml.validation.Validator在運行時(而非JUnit)檢查xml文件對xsd是否有效

[英]How to check if an xml file is valid against xsd at runtime (not JUnit) using standard javax.xml.validation.Validator

我知道如何在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中時,這是不可用的。

是否有其他“ schema”構建方法可以接受“ 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM