Alternative zu xmllint zum Überprüfen der XML-Gültigkeit

Alternative zu xmllint zum Überprüfen der XML-Gültigkeit

Manchmal muss ich die Gültigkeit einiger großer XML-Dateien anhand einer XSD-Datei überprüfen. Die größte XML-Datei, die ich erhalten habe, hatte eine Größe von fast 1,5 GB. Sie xmllintnahm meinen gesamten RAM und fast den gesamten Swap-Speicher in Anspruch, was eine Gesamtspeichernutzung von 18 GB ergibt. Folglich dauerte der Validierungsprozess 24 Stunden.

Meine Frage: Gibt es eine Alternative, xmllint --schemadie weniger Speicher verbraucht, vielleicht indem einige Streaming-Funktionen genutzt werden, anstatt die Datei in den Speicher zu laden?

Antwort1

Ich habe diese Validierer nicht getestet, aber aus dem Stegreif bzw. nach einer kleinen Recherche:

  1. XMLStarlet- kann auch für andere Zwecke verwendet werden
  2. msv- Sun Multi-Schema-Validator
  3. HaXML- Haskell XML Tools enthält Kommandozeilenprogramme (eines davon ist ein Validator)
  4. xsltprocsollte beim Start auch Dokumente überprüfen

Es gibt noch viele weitere Optionen, da die meisten Dienstprogramme das XML-Dokument automatisch validieren, wie z xsltproc. B.

Antwort2

In der Paketbibliothek meines Linux-Systems habe ich xmlcopyeditor gefunden. Ich habe es verwendet, um eine XML-Datei zu prüfen und zu bearbeiten. Die Manpage behauptet, es führe „DTD/XML Schema/RELAX NG-Validierung, XSLT, XPath, Pretty-Printing, Syntaxhervorhebung, Faltung, Tag-Vervollständigung/-Sperre, eine Rechtschreib-/Stilprüfung und unter Windows verlustfreien Import/Export von Microsoft Word-Dokumenten“ aus, aber ich habe nicht wirklich getestet, wie gut es das alles macht. Ich weiß, dass Pretty-Printing erst funktionierte, wenn die Start- und End-Tags richtig übereinstimmten. http://xml-copy-editor.sourceforge.net/

verwandte Informationen