Pergunta

Quando eu quero validar meus docuemnts XML contra um esquema no meu Java do lado do servidor, eu uso a implementação e javax.xml.validation.Schema built-in JRE Xerces. Ele funciona muito bem, mas quando a validação falhar, Xerces dá mensagens de erro que estão muito perto de inútil, por exemplo:

cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'PopulatedStringType'

Estes podem ter uma idade para diagnosticar e rastrear a parte específica do documento XML que falhar na validação, e tudo por causa de uma mensagem de erro pobre.

Então, minha pergunta é, você usa um meio alternativo de validar XML contra o esquema, que dá uma saída mais útil em caso de falha de validação?

Por favor, não que isso seja Java do lado do servidor, então por favor não diga "uso XML Spy" ou similar.

Foi útil?

Solução

Em seu manipulador para a validação, você deve receber uma SAXParseException com essa mensagem, assim como o número da coluna eo número da linha no arquivo XML. Isnt't que o caso?

Outras dicas

xmlstarlet (xmlstar.sourceforge.net/) é um conjunto de ferramentas de linha de comando. você pode executá-lo usando Runtime.exec () para um dado xml (contanto que o xml está em um arquivo).

Castor .

Castor é um conjunto de dados Open Source quadro vinculativo para Java [tm]. É o caminho mais curto entre objetos Java, documentos XML e tabelas relacionais. Castor oferece Java-to-XML obrigatório, Java-to-SQL persistência, e muito mais.

Se você está tendo problemas para interpretar os erros Xerces e gostaria de algo que ajuda a realçar onde em seu documento que tenha violado as regras, confira algumas das ferramentas de autoria XML como oXygen .

text alt
(fonte: oxygenxml.com )

Uma vez que você associar o esquema com o seu documento de instância XML o editor irá realçar a área ofender do documento e fornecê-lo com uma descrição da violação.

Além disso, você pode usar os motores diferentes para executar a validação:

O oxigênio tem suporte embutido para: Xerces, LibXML, XSV, Saxon SA, MSXML4.0, MSXML .NET e SQC.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top