Java проверка XML против Схемы XSD

private void validateXML(DOMSource source) throws Exception {
    URL schemaFile = new URL("http://www.csc.liv.ac.uk/~valli/modules.xsd");
    SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI);
    Schema schema = schemaFactory.newSchema(schemaFile);

    Validator validator = schema.newValidator();
    DOMResult result = new DOMResult();
    try {
        validator.validate(source, result); 
        System.out.println("is valid");
    } catch (SAXException e) {
        System.out.println("not valid because " + e.getLocalizedMessage());
    }
}

Но это возвращает ошибку при высказывании: Исключение в потоке "основной" java.lang. IllegalArgumentException: Никакой SchemaFactory, который реализует язык схемы, указанный: http://www.w3.org/2001/XMLSchema - экземпляр мог быть загружен

Действительно ли это - проблема с моим кодом или с фактическим xsd файлом?

8
задан Becky 7 March 2010 в 16:09
поделиться

1 ответ

Эта ошибка означает, что в установленной вами Java нет классов, которые могут разбирать файлы XMLSchema, так что это не проблема со схемой или вашим кодом.

Я уверен, что последние версии JRE имеют соответствующие классы по умолчанию, поэтому вы можете предоставить нам вывод java -version?


Обновление:

Вы используете неправильную строку XMLContants. Вам нужно: XMLConstants.W3C_XML_SCHEMA_NS_URI

16
ответ дан 5 December 2019 в 09:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: