Guide: XML (Einführung)

XML – Thema: Einführung

XML – Schulung: Warum?
Warum schreib ich in einem Blog eigentlich eine Schulung für XML? Ist das nicht sinnlos oder gar Zeitverschwendung? Definitiv ja. Hab ich langeweile? Auch… jedenfalls teilweise. Da ich momentan (wie schon viele vor mir) ein Bibliothekprogramm in C# schreibe und auch XML als Datenspeicher verwenden will. Jetzt verflucht mich, aber irgendwie hat es mir XML angetan. Zudem hatte ich die Aufgabe im Rahmen meiner Ausbildung sowieso eine XML Schulung zu verfassen. Da die Dokumentation hier rum liegt, hab ich mir gedacht, pass ich sie doch mal in den Blog rein. Leider hab ich manche “Zitate” etwas unsauber gemacht, daher werd ich wohl jetzt alles nochmal schreiben. Aber ich hab ja Zeit. Falls ihr doch noch Sachen findet, die ich von anderen Seiten “geklaut” habe, dann seid mir bitte nicht gar zu sehr böse. Danke. Von woher ich die Quellen habe, werde ich entweder direkt im Text oder im Anschluss machen.

Quellen

Bücher
- Marco Skulschus, Marcus Wiederstein:
XSLT und XPath für HTML, Text und XML.
- Henning Behme, Stefan Minter:
XML in der Praxis, Professionelles Web-Publishing mit der Extensible Markup Language
- Horst-Dieter Radke:
PC Spicker XML

Internet:
www.wikipedia.de
http://www.obqo.de/w3c-trans/xpath-de-20020226
http://www.edition-w3c.de/

… weitere Quellen könnten noch folgen.

I Einführung

1. Was ist XML?

XML ist das Akronym für “Extensible Markup Language”. Zu deutsch bedeutet das ungefähr “erweitere Auszeichnungssprache”.

XML ist heute ein Standard für die Erstellung von maschinen- und menschenlesbaren Dokumenten. Dies alles wird in Form einer Baumstruktur dargestellt. Der Standard selbst wird vom W3C definiert und ständig erweitert.

XML ist eine Teilmenge von SGML, welches beides Metasprachen sind.

Beispiel:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addressbuch>
     <addresse>
          <vorname>Ben</vorname>
          <nachname>James</nachname>
          <wohnort>New York</wohnort>
     </addresse >
     <addresse>
          <vorname>Hans</vorname>
          <nachname>Herrman</nachname>
          <wohnort>Dortmund</wohnort>
     </addresse>
</addressbuch >
2. Sinn von XML

In der heutigen Zeit nimmt die Vernetzung unserer Welt immer mehr zu. Daten werden gesammelt, zusammengefasst und angerufen. Würde jedes Unternehmen eigene Standards einführen, was teilweise so ist, würde dieser Datenaustausch wesentlich gehemmt.Durch den relativ einfachen Aufbau von XML, können Daten in dieser Form überall gelesen, verarbeitet und selbst die unterschiedlichsten Systeme können diese verarbeiten.3. Das Web und XML

3.1 Ersetzt XML HTML
Auf die Frage, ob HTML durch XML ersetzt wird, kann man ganz klar mit einem “nein” beantworten. HTML hat allerdings Grenzen was der Vorrat an Elementtypen und zudem drohte der “Standard” durch verschiedene Konzerne (Microsoft oder Netscape) auseinander zu brechen. Genau an dieser Stelle tritt nun XML in den Vordergrund. Durch XML kann man beliebige Daten speichern, welche dann z.B. wieder durch (X)HTML dargestellt werden. Näheres dazu wird zu einem späteren Zeitpunkt erklärt. Der große Vorteil von XML ist, dass ich durch Stylesheets im Prinzip unendlich viele Web Dokumente generieren lassen kann.Heute gibt es kaum noch Anwendungen die ohne XML arbeiten. Ähnlich wie HTML lassen sich auch XML-Daten “on the fly” aus Datenbankbeständen erzeugen. Allerdings eignet sich XML besser für die Speicherung von Daten. Insbesondere in objektorientierten Systemen kann man durch den hierarchischen Aufbau wesentlich einfacher objektorientierte Datenbanksysteme abbilden.Der Traum von vielen die XML propagieren ist, dass mit XML ein einheitliches (universelles) Datenformat zu schaffen, was sowohl von Menschen als auch von Maschinen gelesen und verstanden werden kann.

3.2 Unterschie zwischen XML und HTML
XML ist im Gegensatz zu HTML casesensitiv. Dies bedeutet, dass in XML , <auto> oder <AUTO> gar <aUtO> 3 völlig verschiedene Elemente sind.
In HTML spielt es keine große Rolle ob man nun und dies dann mit schließt.
Zudem hat, wie bereits weiter oben erwähnt, HTML einen begrenzten Satz an Elementen.

Der letzte relativ große Unterschied, vom Sinn eines XMLs mal abzusehen, ist, dass Attribute in XML in Anführungszeichen gesetzt werden müssen. In HTML ist dies nicht unbedingt nötig.

4. Zusammenhänge zwischen SGML, XML, HTML, CSS, XSL…

Es gibt zwei Arten von Sprachen, die Auszeichnungssprachen, welche die Daten speichern und die Formatierungssprachen, welche die Formatierung dieser Übernehmen.
Hier sei noch mal der Unterschied zwischen XML und HTML zu beachten: HTML ist eine pure Auszeichnungssprache. XML ist eine Metasprache, was bedeutet dass es, genau wie SGML, eine Spezifikation ist, welche beliebig viele Auszeichnungssprachen, wie z.B. XHTML, schaffen kann.

Da wir insbesondere später mit DTDs und XSDs (was genau das ist, wird später erklärt) sowie einigen anderen Teilen arbeiten, muss man sich bei dem Arbeiten mit XML folgende 3 großen Teile vorstellen:

Der erste Teil ist die Gültigkeitsprüfung, welche die Regeln des XML Dokumentes enthält.
Der zweite Teil sind die Daten, welche in unserm XML Dokument zu finden sind.
Der dritte Teil befasst sich mit der Formatierung dessen.

             DTD              XSD         Gültigkeit

                     XML                       Daten

             CSS               XSL          Formatierung

5. Geschichtliches über XML

Das Web drohte vor nicht allzu langer Zeit auseinander zu brechen, was zur Folge hatte, dass die SGML Anhänger und das W3C schnell eine Lösung kommen mussten.

HTML oder gar XML ist im Vergleich zum Browser noch relativ jung. Der erste graphische Browser kam 1990 zum Einsatz.
3 Jahre lang hat sich eine Arbeitsgruppe mit dem Problem der Erweiterbarkeit von HTML beschäftigt.
Der erste Vorschlag zur “Extensible Markup Language” kam 1996 im Rahmen einer SGML Veranstaltung. Auf der World Wide Web Conference 1997 war XML eines der Hauptthemen.
Das komplizierte SGML musste vereinfacht werden und heraus gekommen ist XML, als Teilmenge von SGML.
1998 wurde XML 1.0 zum Standard definiert. Nur ein Jahr später, wurde auch XHTML 1.0 zum Standard.

5.1 SGML
SGML steht für “Standard Generalized Markup Language”, was seit 1986 ein ISO Standard ist.
SGML ermöglicht die Definierung unterschiedlicher Auszeichnungssprachen, wie z.B. HTML. SGML ist der Nachfolger von GML, der “Generalized Markup Language”.

Ziel der SGML war es, betriebssystemübergreifend Dokumente auszutauschen.

5.2 Unterschied zwischen XML und SGML
Da XML ein Ableger von SGML ist, ist XML natürlich zu SGML kompatibel. Es gibt allerdings einige Unterschiede.

SGML arbeitet mit dem ASCII Code, sodass nur ein begrenzter Zeichensatz verfügbar ist. XML arbeitet mit dem UNICODE, welcher ein wesentlich größeren Zeichensatz hat.
Zudem sind in XML so genannte Empty-Tag-Elemente erlaubt, allerdings müssen diese durch ein “/” beendet werden. Beispiel ist das img Tag aus HTML/XHTML:
HTML (was SGML repräsentiert)

<img src=”lala.jpg” mce_src=”lala.jpg”>

XHTML (was XML repräsentiert)

<img src=”lala.jpg” mce_src=”lala.jpg” />

Desweiteren ist XML Casesensitiv, d.h. Groß- und Kleinschreibung wird beachtet.
entspricht nicht oder gar . Aus XML Sicht sind das 3 verschiedene Elemente. In SGML spielt die Groß- und Kleinschreibung keine Rolle.

Ein letzter Punkt ist, dass der Doctype in SGML zwingend ist, hingegen bei der XML nur optional. Was das genau ist, erfahrt ihr auf den folgenden Seiten.

6. Die 10 Aussagen der Syntaxbeschreibung
Die Entwickler von XML haben 10 Aussagen entworfen um den Sinn von XML zu festigen:

XML soll sich im Internet auf einfache Weise nutzen lassen.
XML soll ein breites Spektrum von Anwendungen unterstützen.
XML soll zu SGML kompatibel sein.
Es soll einfach sein, Programme zu schreiben, die XML – Dokumente verarbeiten.
Die Anzahl optionaler Merkmale in XML soll minimal sein, idealer weise Null.
XML – Dokumente sollten für Menschen lesbar und angemessen verständlich sein.
Der XML – Entwurf sollte zügig abgefasst werden.
Der Entwurf von XML soll formal und präzise sein.
XML – Dokumente sollen leicht zu erstellen sein.
Knappheit von XML – Markup ist von minimaler Bedeutung.

7. 3 Gebote
In Anlehnung an die 10 Aussagen, sollte man bei der Generierung von XML Dokumenten 3 Gebote einhalten:

Du sollst Deine Elemente immer schließen.
Du sollst Attributwerte immer in doppelten Anführungszeichen setzen.
Schachtel Deine Elemente immer hierarchisch.

8. Auszeichnung
Da XML zu den Auszeichnungssprachen gehört, müssen wir natürlich diese Begrifflichkeit kurz erklären.
Eine Auszeichnung dient der Strukturierung eines Textes oder auch Dokumentes.

Auszeichnungen kann man in 3 große Teile aufspalten.

8.1 Physische Auszeichnung
Diese Auszeichnung bezieht sich auf die Layoutformatierung eines Textes.

Beispiel:
Wie ein Text dargestellt werden soll: kursiv, fett, unterstrichen?

8.2 Logische Auszeichnung
Diese Auszeichnung formatiert den Text auf logische Art und Weise.

Beispiel:
Der Text ist ein Zitat oder eine Überschrift.

8.3 Semantische Auszeichnung
Diese Auszeichnung wird am meisten in XML verwendet und gewinnt daher an Einfluss.

Die semantische Auszeichnung kann man sich wie eine Datenbank vorstellen und definiert nur die Struktur des Textes. Wie dieser formatiert und dargestellt wird, hat hier keine Bedeutung.

[Fortsetzung: XML Basiswissen]

Letzte Posts

  • image.png
    Microsoft Account Login via ASP.NET Identity

    Der Microsoft Account ist die zentrale Identifikationsstelle in der “Consumer-Microsoft-Welt”, allerdings ist das Einbinden eben dieser in die eigene Applikation eher schwierig. Das “Live SDK” ist nun unter dem OneDrive Dev Center zu finden und ganz professionell wurden auch alle Links zum alten Live SDK damit unbrauchbar gemacht. Beim Microsoft Account ist es auch unmöglich […]

  • image.png
    Zeitgesteuerte Azure WebJobs – so einfach kann Azure sein

    Das noch in Entwicklung befindliche Azure WebJob SDK bietet einige coole Features zum Verarbeiten und Bereitstellen von Daten. Bekanntes Beispiel ist das Sample welches auf eine Azure Queue lauscht und sobald ein Item da vorhanden ist anfängt dies zu verarbeiten. Szenario: Zeitgesteuerte Aktivitäten – ohne Queue und co. Mein Szenario war allerdings wesentlich trivialer: Ich […]

  • image.png
    Get Involved in OSS! Ja, aber wie geht das denn mit GitHub?

    Auch im .NET Lager gibt es Bewegung im OSS Bereich und es gibt verschiedene Arten wie man bei einem Open Source Projekt “Contributed”. Was zählt alles zu “Contribution”? Unter “Contribution” läuft eigentlich alles – ob es Fragen/Probleme zu dem Projekt via Issues ist oder Dokumentation nachreicht oder ob man darüber bloggt oder das Projekt vorstellt. […]

  • HowTo: Web.config samt eigener ConfigSection zur Laufzeit ändern

    In dem HowTo geht es darum wie man die Web.config zur Laufzeit ändert und was es dabei zu beachten gilt. Das ganze klappt auch mit komplexeren ConfigSections. Eigene ConfigSection? Vor einer ganzen Weile habe ich mal über das Erstellen einer eigenen ConfigSection geschrieben – im Grunde nutzen wir jetzt fast dieselbe Config. Zur Laufzeit? Startet […]

  • image.png
    HowTo: RSS Feeds mit ASP.NET MVC erstellen

    Ich hatte hier schon öfters geschrieben wie man RSS oder Atom Feeds konsumieren kann – jetzt geht es aber mal um das erstellen bzw. publishen eines eigenen Feeds. Trotz des Alters von den Feed Standards und die vielen Abgesänge von Facebook, Twitter und Google auf RSS/Atom halte ich diese einfach zu konsumierende API für ziemlich […]

Support us!