Xml

Xml

Vorlage:Infobox Dateiformat/Wartung/magic fehltVorlage:Infobox Dateiformat/Wartung/website fehlt

Extensible Markup Language
Dateiendung .xml
MIME-Type application/xml, text/xml (deprecated)
Entwickelt von World Wide Web Consortium
Art Markup Language
Erweitert von SGML
Erweitert zu XHTML, RSS, Atom
Standard(s): 1.0 (Fourth Edition) 1.1 (Second Edition)

Die Extensible Markup Language (engl. für „erweiterbare Auszeichnungssprache“), abgekürzt XML, ist eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten. XML wird u. a. für den Austausch von Daten zwischen Computersystemen eingesetzt, speziell über das Internet.[1]

Die vom World Wide Web Consortium (W3C) herausgegebene XML-Spezifikation (Recommendation, erste Ausgabe vom 10. Februar 1998, aktuell ist die fünfte Ausgabe vom 26. November 2008) definiert eine Metasprache, auf deren Basis durch strukturelle und inhaltliche Einschränkungen anwendungsspezifische Sprachen definiert werden. Diese Einschränkungen werden durch Schemasprachen wie DTD oder XML Schema ausgedrückt. Beispiele für XML-Sprachen sind: RSS, MathML, GraphML, XHTML, Scalable Vector Graphics (SVG), aber auch XML-Schema.

Ein XML-Dokument besteht aus Textzeichen, im einfachsten Fall ASCII, und ist damit visuell lesbar – Binärdaten enthält es per Definition nicht.

Inhaltsverzeichnis

Namen der Strukturelemente

Die Namen der Strukturelemente (XML-Elemente) für eine XML-Anwendung lassen sich frei wählen. Ein XML-Element kann ganz unterschiedliche Daten enthalten und beschreiben: meistens Text, aber auch Grafiken oder abstraktes Wissen. Ein Grundgedanke hinter XML ist es, Daten und ihre Repräsentation zu trennen, um Daten beispielsweise einmal als Tabelle und einmal als Grafik auszugeben, aber für beide Arten der Auswertung die gleiche Datenbasis im XML-Format zu nutzen.

Fachbegriffe

Wohlgeformtheit
Ein XML-Dokument heißt „wohlgeformt“, wenn es sämtliche XML-Regeln einhält (also keine verletzt). Beispielhaft seien hier folgende genannt:
  • Das Dokument besitzt genau ein Wurzelelement.
  • Alle Elemente mit Inhalt besitzen eine Beginn- und eine End-Kennung (-tag) (z. B. <eintrag>Eintrag 1</eintrag>). Elemente ohne Inhalt können auch in sich geschlossen sein, wenn sie aus nur einer Kennung (tag) bestehen, die mit   />   abschließt (z. B. <eintrag/>).
  • Die Beginn- und End-Kennungen (tags) sind ebenentreu-paarig verschachtelt.
  • Ein Element darf nicht mehrere Attribute mit demselben Namen besitzen.
Gültigkeit
Soll XML für den Datenaustausch verwendet werden, ist es von Vorteil, wenn das Format mittels einer Grammatik (z. B. einer Dokumenttypdefinition (DTD) oder eines XML-Schemas) definiert ist. Der Standard definiert ein XML-Dokument als gültig, wenn es wohlgeformt ist, den Verweis auf eine Grammatik enthält und das durch die Grammatik beschriebene Format einhält.
Parser
Programme oder Programmteile, die XML-Daten auslesen, interpretieren und ggf. auf Gültigkeit prüfen, nennt man XML-Parser. Prüft der Parser die Gültigkeit, so ist er ein validierender Parser.

Aufbau eines XML-Dokuments

Beispiel einer XML-Datei

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<verzeichnis>
     <titel>Wikipedia Städteverzeichnis</titel>
     <eintrag>
          <stichwort>Genf</stichwort>
          <eintragstext>Genf ist der Sitz von ...</eintragstext>
     </eintrag>
     <eintrag>
          <stichwort>Köln</stichwort>
          <eintragstext>Köln ist eine Stadt, die ...</eintragstext>
     </eintrag>
</verzeichnis>

XML-Dokumente besitzen einen physischen und einen logischen Aufbau.

Physischer Aufbau

  • Entitäten. Die erste Entität ist die Hauptdatei des XML-Dokuments. Weitere mögliche Entitäten sind über
    • Entitätenreferenzen (&name; für das Dokument bzw. %name; für die Dokumenttypdefinition) eingebundene Zeichenketten, eventuell auch ganze Dateien, sowie Referenzen auf Zeichenentitäten zur Einbindung einzelner Zeichen, die über ihre Nummer referenziert wurden (&#Dezimalzahl;, oder &#xHexadezimalzahl;).
  • Eine XML-Deklaration wird optional verwendet, um XML-Version, Zeichenkodierung und Verarbeitbarkeit ohne Dokumenttypdefinition zu spezifizieren.
  • Eine Dokumenttypdefinition wird optional verwendet, um Entitäten sowie den erlaubten logischen Aufbau zu spezifizieren.

Logischer Aufbau

Der logische Aufbau entspricht einer Baumstruktur und ist damit hierarchisch organisiert. Als Baumknoten gibt es:

  • Elemente, deren physische Auszeichnung mittels
    • einem passenden Paar aus Start-Tag (<Tag-Name>) und End-Tag (</Tag-Name>) oder
    • einem Empty-Element-Tag (<Tag-Name />) erfolgen kann,
  • Attribute als bei einem Start-Tag oder Empty-Element-Tag geschriebene Schlüsselwort-Werte-Paare (Attribut-Name="Attribut-Wert") für Zusatz-Informationen über Elemente (eine Art Meta-Information),
  • Verarbeitungsanweisungen (<?Ziel-Name Parameter ?>, engl. Processing Instruction)
  • Kommentare (<!-- Kommentar-Text -->)
  • Text, der als normaler Text oder in Form eines CDATA-Abschnittes (<![CDATA[ beliebiger Text]]>) auftreten kann.

Ein XML-Dokument muss genau ein Element auf der obersten Ebene enthalten. Unterhalb von diesem Dokumentelement können weitere Elemente verschachtelt werden. Weiterhin kann durch Angabe eines namespace (XML-Namensraum) sichergestellt werden, dass bei Überschneidungen mit XML-Daten eines anderen Vokabulars keine Doppeldeutigkeiten entstehen.

Zur Spezifikation des logischen Aufbaus werden die Dokumenttypdefinitionen durch das umfangreichere XML-Schema abgelöst, welches keine Möglichkeit zur Definition von Entitäten, jedoch einen adäquaten Ersatz dafür besitzt. Verarbeitungsanweisungen werden in der Praxis meist eingesetzt, um in XML-Dokumenten Verarbeitungsanweisungen in anderen Sprachen einzubauen. Ein Beispiel dafür ist PHP, dessen Verarbeitungsanweisungen in XML-Dokumenten mit einer PHP-Verarbeitungsanweisung, z. B. <?php echo'Hello, World'; ?> eingebaut werden können.

Einige Web-Browser können XML-Dokumente mit Hilfe eines eingebauten XML-Parsers direkt darstellen. Dies geschieht z. B. in Verbindung mit einem Stylesheet. Diese Transformation kann die Daten in ein komplett anderes Format umwandeln, das Zielformat muss nicht einmal XML sein.

Klassifizierung von XML-Dokumenten

XML-Dokumente lassen sich anhand ihres beabsichtigten Gebrauchs und ihres Strukturierungsgrads in dokumentzentrierte und datenzentrierte Dokumente unterteilen. Die Grenze zwischen diesen Dokumentenarten ist jedoch fließend. Mischformen können als semistrukturiert bezeichnet werden.

  • dokumentzentriert: Das Dokument ist an ein Textdokument angelehnt, das für den menschlichen Leser größtenteils auch ohne die zusätzliche Metainformation verständlich ist. XML-Elemente werden hauptsächlich zur semantischen Markierung von Passagen des Dokuments genutzt, das Dokument ist nur schwach strukturiert. Aufgrund der schwachen Strukturierung ist eine maschinelle Verarbeitung schwierig.
  • datenzentriert: Das Dokument ist hauptsächlich für die maschinelle Verarbeitung bestimmt. Es folgt einem Schema, das Entitäten eines Datenmodells beschreibt und definiert, in welcher Beziehung die Entitäten zueinander stehen, sowie, welche Attribute die Entitäten haben. Das Dokument ist somit stark strukturiert und für den unmittelbaren menschlichen Gebrauch weniger geeignet.
  • semistrukturiert: Semistrukturierte Dokumente stellen eine Art Mischform dar, die stärker strukturiert ist als dokumentzentrierte Dokumente, aber schwächer als datenzentrierte Dokumente.

Verarbeitung von XML

Verarbeitungskriterien

Grundsätzlich sind drei Aspekte beim Zugriff auf ein XML-Dokument von wichtiger Bedeutung:

  • Wie erfolgt der Zugriff auf die XML-Datei: Sequentiell oder wahlfrei?
  • Wie ist der Ablauf beim Zugriff auf die XML-Daten gestaltet: „Push“ oder „Pull“? Push bedeutet, dass die Ablaufkontrolle des Programms beim Parser liegt. Pull bedeutet, dass die Ablaufkontrolle im Code, der den Parser aufruft, implementiert ist.
  • Wie erfolgt das Baumstrukturmanagement der XML-Daten: Hierarchisch oder verschachtelt?

Programmatischer Zugriff auf XML-Dokumente

Das Einlesen von XML-Dokumenten erfolgt auf unterster Ebene über eine spezielle Programmkomponente, einen XML-Prozessor, auch XML-Parser genannt. Er stellt ein API zur Verfügung, über das die Anwendung auf das XML-Dokument zugreift.

Die XML-Prozessoren unterstützen dabei drei grundlegende Verarbeitungsmodelle.

  • DOM: Ein DOM-API repräsentiert ein XML-Dokument als Baumstruktur und gewährt wahlfreien Zugriff auf die einzelnen Bestandteile der Baumstruktur. DOM erlaubt außer dem Lesen von XML-Dokumenten auch die Manipulation der Baumstruktur und das Zurückschreiben der Baumstruktur in ein XML-Dokument. Aus diesem Grund ist DOM sehr speicherintensiv.
  • SAX: Ein SAX-API repräsentiert ein XML-Dokument als sequentiellen Datenstrom und ruft für im Standard definierte Ereignisse vorgegebene Rückruffunktionen (callback function) auf. Eine Anwendung, die SAX nutzt, kann eigene Unterprogramme als Rückruffunktionen registrieren und auf diese Weise die XML-Daten auswerten.
  • Pull API: Ein XML-Pull-API verarbeitet Daten sequentiell und bietet sowohl ereignisbasierte Verarbeitung als auch einen Iterator an. Es ist hoch speichereffizient und ggf. leichter zu programmieren als die SAX-API, da die Ablaufkontrolle beim Programm und nicht beim Parser liegt.

Weitere Verarbeitungsmodelle:

  • Data Binding: Diese Möglichkeit stellt XML Daten als Datenstruktur direkt für einen Programmzugriff bereit. Die XML-Daten werden per Unmarshalling direkt in z. B. Objekte gewandelt.
  • Nicht extrahierendes XML-API: Die Daten werden auf Byte-Ebene sehr effizient verarbeitet.

Oftmals greift der Anwendungscode nicht direkt auf die Parser-API zu. Stattdessen wird XML weiter gekapselt, so dass der Anwendungscode mit nativen Objekten / Datenstrukturen arbeitet, welche sich auf XML abstützen. Beispiele für solche Zugriffsschichten sind JAXB in Java, der Data Binding Wizard in Delphi oder das XML Schema Definition Toolkit in .Net. Die Umwandlung von Objekten in XML ist üblicherweise bidirektional möglich. Diese Umwandlung wird als Serialisierung oder Marshalling bezeichnet.

XML-Parser-API-Beispiele

XML-Parser-APIs sind für verschiedenste Programmiersprachen vorhanden, z. B. Java, C, C++, C#, Perl und PHP. Parser-API-Beispiele:

  • XML::Parser (Perl): Ein XML-Parser für Perl. Eine sehr einfache API bietet z. B. auch das CPAN-Modul XML::Simple an.
  • DOM Functions (PHP5): Modul in PHP5, um XML-Dokumente einzulesen; alternativ simpleXML; für PHP4 gibt es DOM XML.
  • StAX (Java): Eine hochgradig speichereffiziente Parserimplementierung (Pull) und gleichzeitig einfach zu programmieren. Es werden Cursor- und Iteratorverarbeitungsmodelle angeboten.
  • JAXB: Data Binding für Java. Beispielsweise kann aus einem XML-Schema die entsprechende Java-Klasse generiert werden und umgekehrt.
  • Apache XMLBeans Java Data Binding Framework, kann bereits mit Java 1.4.2 verwendet werden
  • Xerces: Ein validierender XML-Parser für C++, Java und Perl für eine große Anzahl an Plattformen.
  • Beispiel für ein nicht extrahierendes XML-API: VTD-XML

Zur Erstellung von XML-Dokumenten gibt es spezielle Programme, sogenannte XML-Editoren. Zur Speicherung und Verwaltung von XML-Dokumenten gibt es ebenfalls spezielle Programme, sogenannte XML-Datenbanken.

Transformation und Darstellung von XML-Dokumenten

Ein XML-Dokument kann mittels geeigneter Transformationssprachen wie XSLT oder DSSSL in ein anderes Dokument transformiert werden. Oftmals dient die Transformation zur Überführung eines Dokuments aus einer XML-Sprache in eine andere XML-Sprache, beispielsweise zur Transformation nach XHTML, um das Dokument in einem Webbrowser anzuzeigen.

Schemasprachen

Um die Struktur von XML-Sprachen zu beschreiben, bedient man sich so genannter Schemasprachen. Die zwei bekanntesten sind Dokumenttypdefinition und XML Schema.

DTD

Eine DTD (Dokumenttypdefinition) ist eine Beschreibung eines XML-Dokuments. Sie wurde zusammen mit XML standardisiert, zu einem Zeitpunkt, an dem XML noch hauptsächlich für „narrative documents“ („erzählende Dokumente“, also Zeitungsartikel, Bücher, …) gedacht war, weniger als Datenaustauschformat. Daher ist es z. B. in DTD nicht möglich, zwischen Texten und Zahlen zu unterscheiden. Ein weiterer Nachteil ist die Tatsache, dass die DTD in einer eigenen Sprache abgefasst werden muss. Außerdem kennt die DTD keine Namensräume.

XML-Schema/XSD

XML-Schema (bzw. XSD = XML-Schema-Definition) ist die moderne Möglichkeit, die Struktur von XML-Dokumenten zu beschreiben. XML-Schema bietet auch die Möglichkeit, den Inhalt von Elementen und Attributen zu beschränken, z. B. auf Zahlen, Datumsangaben oder Texte, z. B. mittels regulärer Ausdrücke. Ein Schema ist selbst ein XML-Dokument, welches erlaubt, komplexere (auch inhaltliche) Zusammenhänge zu beschreiben, als dies mit einer formalen DTD möglich ist.

Weitere Schemasprachen

Weitere Schemasprachen sind Document Structure Description, RELAX NG, Schematron und Examplotron.

XML-Familie

Infrastruktur

Im Zusammenhang mit XML wurden vom W3-Konsortium auf Basis von XML viele Sprachen definiert, welche XML-Ausdrücke für häufig benötigte allgemeine Funktionen anbieten wie etwa die Verknüpfung von XML-Dokumenten. Zahlreiche XML-Sprachen nutzen diese Grundbausteine.

  • Transformation von XML-Dokumenten: XSLT, STX
  • Adressierung von Teilen eines XML-Baumes: XPath
  • Verknüpfung von XML-Ressourcen: XPointer, XLink und XInclude
  • Selektion von Daten aus einem XML-Datensatz: XQuery
  • Datenmanipulation in einem XML-Datensatz: XUpdate
  • Abfassen von elektronischen Formularen: XForms
  • Definition von XML-Datenstrukturen: XML Schema (= XSD, XML Schema Definition Language)
  • Signatur und Verschlüsselung von XML-Knoten: XML Signature und XML-Encryption
  • Aussagen zum formellen Informationsgehalt: XML Infoset
  • formatierte Darstellung von XML-Daten: XSL-FO
  • Beschreibungssprache für grafische Benutzeroberflächen (GUI) auf der Basis von XML: XUL
  • XML-Sprache zur Beschreibung und Erstellung von Oberflächen der Windows Presentation Foundation: XAML
  • Definition zum Methoden- bzw. Funktionsaufruf durch verteilte Systeme: XML-RPC
  • Standardisierte Attribute: XML Base und ID (DTD)
  • XML-basierte deklarative Programmiersprache: MXML

Sprachen

Während XML selbst aus SGML hervorgegangen ist, bedienen sich heute sehr viele formale Sprachen der Syntax von XML. So ist XML ein wesentliches Instrument, um – wie es das W3C vorsieht – eine offene, für Mensch und Maschine verständliche Informationslandschaft (semantisches Web) zu schaffen.

Auch die bekannte Dokumentsprache HTML wurde als „Extensible HyperText Markup Language“ (XHTML) im Anschluss an die Version 4.01 in dieses Konzept integriert, so dass ihr nun XML als Definitionsbasis zu Grunde liegt. Vielfacher Grund für den Einsatz von XML ist das zahlreiche Vorhandensein von Parsern und die einfache Syntax: die Definition von SGML umfasst 500 Seiten, jene von XML nur 26.

Die folgenden Listen stellen einige dieser XML-Sprachen dar.

Text

  • XSL-FO (Textformatierung)
  • DocBook
  • DITA
  • XHTML (XML-konformes HTML)
  • TEI (Text Encoding Initiative)
  • NITF (News Industry Text Format)
  • OPML (Outline Processor Markup Language)

Grafik

  • SVG (Vektorgrafiken)
  • X3D (3D-Modellierungssprache)
  • Collada (Austauschformat für Daten zwischen verschiedenen 3D-Programmen)

Geodaten

Multimedia

  • MusicXML (Notendaten, aufgeschriebene Musik)
  • SMIL (zeitsynchronisierte, multimediale Inhalte)
  • MPEG-7 (MPEG-7 Metadaten)
  • Laszlo (LZX)

Sicherheit

Weitere

Darüber hinaus existieren XML-Sprachen für Webservices (z. B. SOAP und WSDL), für Einbindung von Java-Code in XML-Dokumente (XSP), für die Synchronisation von Kalenderdaten SyncML, mathematische Formeln (MathML), Verfahren im Bereich des Semantischen Webs (RDF, OWL, Topic Maps, UOML), Service Provisioning (SPML), den Austausch von Finanzberichten wie bspw. Jahresabschlüsse (XBRL), in Bereichen der Automobilindustrie (ODX, MSRSW, AUTOSAR-Templates, QDX, JADM) über Landwirtschaft (AgroXML) bis zum Verlagswesen (ONIX) und viele weitere mehr.

Eine Zusammenfassung von XML-Sprachen für Office-Anwendungen findet sich im OpenDocument-Austauschformat (OASIS Open Document Format for Office Applications).

Quellen

  1. Tim Bray: Extensible Markup Language (XML) 1.0 (Fourth Edition) – Origin and Goals. World Wide Web Consortium, September 2006. Abgerufen am October 29.

Literatur

  • Elliotte Rusty Harold: Die XML Bibel. 2. Auflage. mitp, 2002, ISBN 978-3-8266-0821-6. 
  • Stefan Mintert: XML & Co. Die W3C-Spezifikationen für Dokumenten- und Datenarchitektur. Addison-Wesley, München, ISBN 3827318440. 
  • Christine Kränzler: XML/XSL - ... für professionelle Einsteiger . für Buch und Web. Markt+Technik, München/Germany 2002, ISBN 978-3-8272-6339-1. 
  • Erik T. Ray: Einführung in XML. O’Reilly, 2004, ISBN 3-8972-1286-2. 
  • Helmut Vonhoegen: Einstieg in XML. Aktuelle Standards: XML Schema, XSL, XLink. 5. Auflage. Galileo Press, 2009, ISBN 978-3-8362-1367-7. 
  • Frank Bitzer: XML im Unternehmen. Briefing fürs IT-Management. Galileo Press, Bonn 2002, ISBN 978-3-8984-2288-8. 
  • Michael Seeboerger-Weichselbaum: Das Einsteigerseminar XML. 2. Auflage. BHV Software, Kaarst 2000, ISBN 978-3-8287-1018-4. 

Alternativen für spezielle Anwendungsgebiete

  • JSON (JavaScript Object Notation)
  • YAML (YAML Ain’t Markup Language)

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • XML — (англ. eXtensible Markup Language) расширяемый язык разметки Расширение .xml …   Википедия

  • Xml — (англ. eXtensible Markup Language) расширяемый язык разметки Расширение файла: .xml Тип text/xml (устаревший) Разработчик: World Wide Web Consortium Расширение для: Основа для: SVG, XSL …   Википедия

  • XML —   [Abk. für Extensible Markup Language, dt. »erweiterbare Beschreibungssprache«], eine Sprache, mit der die Struktur von Dokumenten beschrieben wird (eine sog. Metasprache). XML ist eine eingeschränkte Form (man sagt auch: eine Untermenge) von… …   Universal-Lexikon

  • XML DB — est un module de gestion XML intégré au Système de gestion de base de données Oracle. Sommaire 1 Oracle XML DB 2 Fonctionnalités de base 2.1 Création d une table …   Wikipédia en Français

  • XML-QL — ist der Name einer Anfragesprache für XML. Viele ihrer Ideen flossen in die Sprache XQuery ein. In der Praxis spielt XML QL fast keine Rolle mehr, stattdessen wird meistens XQuery eingesetzt. Weblinks w3.org XML QL: A Query Language for XML… …   Deutsch Wikipedia

  • XML — (англ. сокр. Extensible Markup Language– расширяемый язык разметки) Стандарт на представление данных, ориентированный, в частности, на обмен информацией между независимыми участниками. В отличие от HTML, предназначен для представления информации… …   Словарь бизнес-терминов

  • XML UK — XML UK: the United Kingdom Forum for Structured Information StandardsThe organization provides a forum for XML and SGML users and developers to share their experiences and ideas concerning the use of XML, SGML and other related standards.XML UK… …   Wikipedia

  • XML — kalba statusas T sritis dirbtinis intelektas apibrėžtis Standartinė saityno metažymių kalba, sudaranti galimybę kurti laisvai pasirenkamus žymių rinkinius, kuriais galima struktūrizuoti ir aprašyti bet kokios rūšies duomenis, numatant jų laikymo …   Lithuanian dictionary (lietuvių žodynas)

  • XML — er i IT terminologi en forkortelse for eXtensible Markup Language, der er efterfølgeren for HTML. XML tillader at de forskellige tags kan ændres alt efter, hvordan XML siden skal benyttes. Web udviklere har derfor mulighed for selv at definere… …   Danske encyklopædi

  • XML — kalba statusas T sritis informatika apibrėžtis Universali dokumentų ženklinimo kalba, skirta dokumentų struktūrai aprašyti. Nepriklausoma nuo kompiuterių ir operacinių sistemų, neribojanti dokumento pavaizdavimo. Yra ↑SGML kalbos poaibis.… …   Enciklopedinis kompiuterijos žodynas

  • XML — es la sigla del inglés eXtensible Markup Language (lenguaje de marcado ampliable o extensible) desarrollado por el World Wide Web Consortium (W3C). Es una versión simple de SGML. Su objetivo principal es conseguir una página web más semántica …   Enciclopedia Universal

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”