Alternativa ao xmllint para verificar a validade do xml

Alternativa ao xmllint para verificar a validade do xml

Às vezes, tenho que verificar a validade de alguns arquivos xml grandes em relação a um arquivo xsd. O maior arquivo xml que recebi tinha um tamanho próximo a 1,5 GB. xmllintocupei toda a minha RAM e quase todo o espaço de troca, para um uso total de memória de 18 GB. Consequentemente, o processo de validação durou 24 horas.

Minha dúvida: Existe alguma alternativa xmllint --schemaque consuma menos memória, talvez fazendo uso de alguns recursos de streaming em vez de carregar o arquivo na memória?

Responder1

Não testei esses validadores, mas de cabeça/pequena pesquisa:

  1. XMLStarlet- também pode ser usado para outras coisas
  2. msv- Validador multiesquema Sun
  3. HaXML- ferramentas haskell xml contém utilitários de linha de comando (um deles é um validador)
  4. xsltproctambém deve verificar os documentos na inicialização

Há muito mais opções, pois a maioria dos utilitários validará automaticamente o documento XML, como, por exemplo, xsltproc.

Responder2

Na biblioteca de pacotes do meu sistema Linux encontrei o xmlcopyeditor. Usei-o para verificar um arquivo XML e também para editá-lo. A página de manual afirma que faz "validação de esquema DTD/XML/RELAX NG, XSLT, XPath, impressão bonita, destaque de sintaxe, dobramento, conclusão/bloqueio de tags, verificação ortográfica/estilo e, no Windows, importação/exportação sem perdas de Microsoft Documentos do Word." mas eu realmente não testei quão bem ele faz nada disso. Eu sei que a impressão bonita não funcionou até que as tags inicial e final correspondessem corretamente. http://xml-copy-editor.sourceforge.net/

informação relacionada