Schwierigkeiten mit Xml-Daten

Vorteile von Xml

Xml hat sich auf Grund seiner Vorteile zur führenden Technologie für Datenaustausch etabliert:

  • Xml ist für Menschen und für Computer gut lesbar. Es ist ein offener Standard. Es kann gelesen und geschrieben werden von jedem einfachen Texteditor.
  • Xml-Dateien können beliebig komplexe Datenstrukturen enthalten.
  • Xml-Schnittstellen können einfach geändert werden:
    • Neue Elemente können hinzugefügt werden.
    • Programme, die die modfizierte Schnittstelle lesen, überlesen einfach diese neuen Elemente.
    • Die Programme stürzen nicht ab!
  • Xml-Elements müssen nicht auf einer bestimmten Zeile oder Spalte positioniert werdem.
  • Die Reihenfolge der Xml_elemente is in der Regel nicht relevant.

Aber: Standard Tools gehen mit Xml-Daten nicht korrekt um!

Die Vorteile von Xml haben auch ihre Kehrseite. Denn die bewährten Standard-Unix-Tools wie like "diff", "cmp", "sort", "join" und "comm" können nicht korrekt mit Xml-Daten umgehen. Siehe die folgenden Beispiele:

Beispiel 1

Die folgenden beiden Dateien sind inhaltlich identisch. Sie unterscheiden sich nur in der Reihenfolge der Elemente. Ein Standard compare-tool ist sich dieses Problems nicht bewußt. Es wird immer Unterschiede melden, obwohl die Dateien inhaltlich gleich sind.

Datei: test1a.xml
<list_person>
    <person id="2">
        <name>Fischer</name>
        <firstname>Hans</firstname>
        <birthdate>1999-10-04</birthdate>
    </person>
    <person id="588521">
        <name>Becker</name>
        <firstname>Claudia</firstname>
        <birthdate>1990-01-18</birthdate>
    </person>
</list_person>
Datei: test1b.xml
<list_person>
    <person id="588521">
        <birthdate>1990-01-18</birthdate>
        <name>Becker</name>
        <firstname>Claudia</firstname>
    </person>
    <person id="2">
        <firstname>Hans</firstname>
        <name>Fischer</name>
        <birthdate>1999-10-04</birthdate>
    </person>
</list_person>

Beispiel 2

Der "<name> und "<firstname>" von der Person sind in beiden Dateien gleich.
Aber in Datei "test2b.xml" gibt es kein element "<birthdate>".

Wenn man diese beiden Dateien z.B. mit der "diff"-utility vergleicht, kann man nicht angeben, daß element "<birthdate>" beim Vergleich nicht berücksichtigt werden soll.

Datei: test2a.xml
<list_person>
    <person id="2">
        <name>Fischer</name>
        <firstname>Hans</firstname>
        <birthdate>1999-10-04</birthdate>
    </person>
</list_person>
Datei: test2b.xml
<list_person>
    <person id="2">
        <name>Fischer</name>
        <firstname>Hans</firstname>
    </person>
</list_person>
Logo SOFIKA GmbH

<xml>cmp-Werkzeugkasten

  • Vergleichen von Xml-Dateien
  • Mischen von Xml-Dateien
  • Umgruppieren von Xml-Dateien
  • Sortieren von Xml-Dateien

<xml>cmp und große Xml-Dateien

  • designed für große Xml-Dateien
  • wenig Hauptspeicherbedarf
  • sehr gute Performance

<xml>cmp-Aufrufmöglichkeiten

  • Unix/Dos-Kommandos
  • Java-Api

Differenzen werden im Context der Xml-Dateien dargestellt:

  • alle Daten + Differenzen
  • nur Differenzen
  • Darstellung: Xml und Pdf
Software Fischer SOFIKA GmbH
Freseniusstr. 65
D-81247 München
Deutschland
Tel: +49 (0)89 / 81 00 90 15
Fax: +49 (0)89 / 81 00 90 16
Email: info@sofika.de