Мне просто интересно, может ли кто-нибудь еще раз дать мой код проверки XML, чтобы проверить, правильно ли я это делаю. Вот часть кода, которая доставляет мне неприятности ...
SAXParserFactory factory = SAXParserFactory.newInstance();
SchemaFactory schemaFactory = SchemaFactory
.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
// *** CODE FAILS ON THE BELOW LINE **/
factory.setSchema(schemaFactory
.newSchema(new Source[] { new StreamSource(schemaStream) }));
SAXParser parser = factory.newSAXParser();
SAXReader reader = new SAXReader(parser.getXMLReader());
reader.setValidation(false);
reader.setErrorHandler(new ResultProducingErrorHandler());
reader.read(content);
Всякий раз, когда я запускаю приведенный выше код, я получаю сообщение об ошибке:
src-resolve: Cannot resolve the name 'ns:myStructure' to a(n) 'type definition' component.
Все элементы, упомянутые в сообщениях об ошибках, импортируются в схему через вызовы . Схема, кажется, подтверждает правильность с помощью W3C XML Schema Validator .
Нужно ли включать каждую из этих схем по отдельности, или Java достаточно умен, чтобы отключить и извлечь эти дополнительные схемы? Я попытался добавить их в массив, переданный вызову newSchema, но это не имело никакого значения.
Я не думаю, что смогу дать ссылку на схему, поэтому я просто ищу да или нет относительно того, выглядит ли мой код как минимум приемлемым.