XML (Extensible Markup Language) ist die 1998 vom W3C verabschiedete, vereinfachte Teilmenge von SGML. Sie dient dem plattformunabhängigen Austausch strukturierter Daten. Dieser Artikel zeigt die wichtigsten Befehle und Werkzeuge für die tägliche XML-Arbeit.
Grundregeln der XML-Syntax
- Wohlgeformtheit: genau ein Wurzelelement, alle Tags geschlossen, korrekt verschachtelt
- Attribute in doppelten oder einfachen Anführungszeichen
- Namensräume (Namespaces) über
xmlns-Attribute - Reservierte Zeichen als Entitäten:
&,<,>,",' - Rohe Inhalte in
<![CDATA[ ... ]]>-Sektionen
xmllint — der Standard-Validator
xmllint stammt aus der libxml2-Bibliothek (Daniel Veillard) und ist auf den meisten Linux-Systemen vorinstalliert. Die wichtigsten Aufrufe:
xmllint --noout datei.xml # Wohlgeformtheit prüfen
xmllint --valid datei.xml # gegen DTD validieren
xmllint --xpath '//item/@id' d.xml # XPath-Auswertung
xmllint --format datei.xml # hübsch einrücken
xmlstarlet — der XML-Swiss-Army-Knife
xmlstarlet (Kurzform xml) bündelt mehrere Teilwerkzeuge für die Kommandozeile — vergleichbar mit grep/sed/awk für Textdateien, aber für XML:
xmlstarlet sel -t -v "//item" d.xml # XPath auswählen (select)
xmlstarlet ed -u "//item/@id" -v 5 # editieren (update)
xmlstarlet tr stylesheet.xsl d.xml # XSLT-Transformation (transform)
xmlstarlet val -e d.xml # validieren (validate)
Sowohl xmllint als auch xmlstarlet nutzen XPath 1.0 — die Ausdruckssprache dahinter erklärt XPath-Befehle.
XML im Web und in Konfigurationen
XML steckt heute in Konfigurationsdateien, Webservices (SOAP), Build-Systemen (Ant, Maven) und Dokumentformaten (DOCX, XLSX als ZIP mit XML-Teilen). Wer strukturierte Transformationen braucht, verwendet XSLT/XSL-Befehle; für datenbankartige Abfragen XQuery-Befehle. Die Syntax-Grundlagen stehen im XML – Glossar.