Как проверить, является ли XML-файл допустимым для xsd во время выполнения (не JUnit), используя стандартный javax.xml.validation.Validator - PullRequest
0 голосов
/ 30 мая 2018

Я знаю, как сделать это в 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 упакован в банку.

Isесть другой метод построения "схемы", который принял бы "InputStream" вместо "File"?

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...