Validação de XML: Am I Doing It Right?
-
03-07-2019 - |
Pergunta
Eu só estava me perguntando se alguém poderia dar o meu código de validação XML uma vez mais para ver se estou fazendo certo. Aqui está a parte do código que está me dando o problema ...
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);
Sempre que eu executar o código acima, eu recebo um erro ao longo das linhas de:
src-resolve: Cannot resolve the name 'ns:myStructure' to a(n) 'type definition' component.
Os elementos mencionados nas mensagens de erro são todos aqueles que são importados para o esquema por meio de chamadas de
Eu tenho que incluem cada um destes esquemas é individual ou é suficiente inteligente Java para sair e buscar estes esquema adicional é demasiado? Eu tentei adicionar-los na matriz passada para a chamada newSchema mas isso não faz qualquer diferença.
Eu não acho que eu posso dar o link para o esquema, então eu realmente estou apenas procurando um sim ou não sobre se os meus olhares de código, pelo menos aceitável.
Solução
Certifique-se de que as xs: instruções de importação apontam para caminhos que são acessíveis a partir do diretório atual de sua aplicação. O diretório atual pode não ser o que você pensa que é.