<chapter>
    <title>Warum XML</title>
    <para>
        XML (eXtensible Markup Language) ist ein SGML Dialekt und folglich eine Auszeichnungssprache welche 
        auf Tags basiert die Informationen einschließen. Anders als zum Beispiel HTML welches ebenfalls
        ein SGML Dialekt ist ist XML deutlich mächtiger da keine semantischen sondern nur syntaktische Merkmale
        definiert werden. Dies macht XML zu einer Art Metasprache welche verwandt werden kann um verschiedenste
        Dokumenten-Typen zu definieren.
    </para>
    <para>
        Ziele von XML:
        <itemizedlist>
            <listitem><para>XML soll in gesamten Web verwendet werden können.</para></listitem>
            <listitem><para>XML soll eine große Anzahl von Applikationen unterstützen.</para></listitem>
            <listitem><para>XML soll auch mit SGML kompatibel sein.</para></listitem>
            <listitem><para>Programme, die XML tauglich sind, sollen leicht zu entwickeln sein.</para></listitem>
            <listitem><para>Die Zahl der Zusatz-Merkmale von XML soll ein absolutes Minimum betragen - idealerweise Null.</para></listitem>
            <listitem><para>XML Dokumente sollten einen "menschlichen Maßstab" haben.</para></listitem>
            <listitem><para>XML Dokumente sollten leicht erstellt werden können.</para></listitem>
        </itemizedlist>
    </para>
    <para>
        XML ist ein reines Text-Format. Das bringt einige Vorteile mit sich, zuvorderst die Einfachheit mit der
        XML-Dokumente editiert werden können. Dies löst das bekannte Henne-Ei-Problem dem man oft beim Entwickeln von
        Datenformaten begegnet: Ohne Test-Dateien kann kein Parser geschrieben werden, und ohne die Daten die der Parser
        liefert kann keine Test-Datei generiert werden. Auch sorgt diese Eigenschaft dafür dass die Programm Daten und somit
        die Qualität des Parsers sehr einfach vom Menschen überprüft werden kann.
    </para>
    <para>
        XML ist auf allen gängigen Betriebssystemen mit Bordmitteln zu parsen, beziehungsweise es steht eine Vielzahl
        von System-Bibliotheken zur Verfügung die hierzu herangezogen werden können.
    </para>
    <para>
        Ein weiterer Vorteil von auf XML basierenden Datenformaten besteht darin dass sie ein nahtloses Einbetten von 
        bestehenden XML-Formaten ermöglichen. Dies ist trivial ersichtlich da jedes einzelne Datenformat offensichtlich
        ebenfalls XML-konform ist.
    </para>
    <para>
        Aber: XML birgt auch Nachteile. Das Parsen zum Beispiel ist zwar einfach zu implementieren, aber die Eigenschaft ein
        reines Text-basierendes Format zu sein bringt mit sich dass eben dieses nur vergleichsweise langsam zu bewerkstelligen
        ist, da oft Zeichenketten zu binär-Daten konvertiert werden müssen. 
        Auch führt die Erweiterbarkeit des Formates sehr oft dazu dass Entwickler beim Spezifizieren solcher XML-Formate dazu
        tendieren diese oft nicht ausreichend oder zu ungenau zu Definieren.
    </para>
    <para>
        All dies macht XML zu einer idealen Sprache um Datenaustausch-Formate zu definieren. Der Nachteil des langsamen Parsens
        kommt hier nicht so stark zum Tragen da diese Formate oft nur als Zwischenstufe eben zum Datenaustausch zwischen 
        verschiedenen Applikationen genutzt werden.
    </para>
</chapter>
