XML

XML (Standard)
Erweiterbare Markup -Sprache
Extensible Markup Language (XML) logo.svg
Abkürzung Xml
Status Veröffentlicht, W3C -Empfehlung
Jahr begann 1996; Vor 26 Jahren
Erstmals veröffentlicht 10. Februar 1998; Vor 24 Jahren
Letzte Version 1.1 (2. Aufl.)
29. September 2006; vor 15 Jahren
Organisation World Wide Web Konsortium (W3C)
Redakteure Tim Bray, Jean Paoli, Michael Sperberg-McQueen, Eva Maler, François Yergeau, John W. Cowan
Grundstandards SGML
Verwandte Standards W3C XML -Schema
Domain Serialisierung
Webseite www.W3.org/xml
XML (Dateiformat)
Dateiname Erweiterung
.xml
Internet -Medientyp Anwendung/XML, Text/xml[1]
Uniform Typ Identifier (UTI) public.xml
UTI -Konformation public.text
magische Zahl
Entwickelt von World Wide Web Konsortium
Art des Formats Auszeichnungssprache
Erweitert von SGML
Erweitert um Zahlreiche Sprachen, einschließlich Xhtml, RSS, Atom, und KML
Standard
Offenes Format? Ja
Freies Format? Ja

Erweiterbare Markup -Sprache (Xml) ist ein Auszeichnungssprache und Datei Format zum Speichern, Übertragen und Rekonstruktion willkürlicher Daten. Es definiert eine Reihe von Regeln für die Codierung Unterlagen in einem Format, das beides ist für Menschen lesbar und maschinenlesbar. Das World Wide Web Konsortium's XML 1.0 -Spezifikation[2] von 1998[3] und mehrere andere verwandte Spezifikationen[4]- alle frei Offene Standards- Define XML.[5]

Die Designziele von XML betonen Einfachheit, Allgemeinheit und Benutzerfreundlichkeit über die Internet.[6] Es handelt sich um ein Textdatenformat mit starker Unterstützung durch Unicode für unterschiedlich menschliche Sprachen. Obwohl sich das Design von XML auf Dokumente konzentriert, wird die Sprache häufig für die Darstellung von willkürlicher Verwendung verwendet Datenstrukturen[7] wie die in verwendeten in Internetdienste.

Mehrere Schema -Systeme existieren, um die Definition von XML-basierten Sprachen zu unterstützen, während sich Programmierer viele entwickelt haben Anwendungsprogrammierschnittstellen (APIs) zur Verarbeitung von XML -Daten zu unterstützen.

Überblick

Der Hauptzweck von XML ist Serialisierung, d.h. Für zwei unterschiedliche Systeme zum Austausch von Informationen müssen sie sich auf ein Dateiformat einigen. XML standardisiert diesen Prozess. XML ist analog zu a Lingua Franca zur Darstellung von Informationen.[8]: 1

Als ein Auszeichnungssprache, XML -Beschriftungen, kategorisiert und organisieren strukturell Informationen.[8]: 11 XML -Tags repräsentieren die Datenstruktur und enthalten Metadaten. Was innerhalb der Tags liegt, sind Daten, die so codiert sind, wie der XML -Standard angibt.[8]: 11 Ein zusätzliches XML -Schema (XSD) definiert die erforderlichen Metadaten für die Interpretation und Validierung von XML. (Dies wird auch als kanonisches Schema bezeichnet.)[8]: 135 Ein XML-Dokument, das sich an grundlegende XML-Regeln hält, ist "gut geformt"; Eine, die an seinem Schema haftet, ist "gültig".[8]: 135

Ietf RFC 7303 (was das älter ersetzt RFC 3023), gibt Regeln für den Bau von Medientypen Zur Verwendung in der XML -Nachricht. Es definiert zwei Basistypen: Anwendung/XML und Text/xml. Sie werden zur Übertragung von RAW -XML -Dateien verwendet, ohne deren interne freizulegen Semantik. RFC 7303 empfiehlt ferner, dass XML-basierte Sprachen mit Medientypen enden, die in enden +xml, zum Beispiel, Bild/SVG+XML zum SVG.

Weitere Richtlinien für die Verwendung von XML in einem vernetzten Kontext erscheinen in RFC 3470Auch als IETF BCP 70 bekannt, ein Dokument, das viele Aspekte des Entwerfens und Bereitstellens einer XML-basierten Sprache abdeckt.

Anwendungen

XML hat für den Datenaustausch über das Internet gemeinsam genutzt. Hunderte von Dokumentformaten mit XML -Syntax wurden entwickelt,[9] einschließlich RSS, Atom, Office Open XML, OpenDocument, SVG, und Xhtml. XML liefert auch die Grundsprache für Kommunikationsprotokolle wie zum Beispiel SEIFE und XMPP. Es ist das Nachrichtenaustauschformat für die Asynchrone JavaScript und XML (Ajax) Programmierungstechnik.

Viele Branchendatenstandards, wie z. Gesundheitsstufe 7, Openentravel -Allianz, Fpml, Mismo, und Nationales Informationsaustauschmodell basieren auf XML und den reichen Merkmalen der XML -Schemaspezifikation. Beim Publizieren, Darwin Information Typing Architektur ist ein XML -Branchendatenstandard. XML wird ausgiebig verwendet, um verschiedene Veröffentlichungsformate zu untermauern.

Schlüsselterminologie

Das Material in diesem Abschnitt basiert auf der XML -Spezifikation. Dies ist keine umfassende Liste aller Konstrukte, die in XML erscheinen. Es bietet eine Einführung in die wichtigsten Konstrukte, die am häufigsten bei der täglichen Verwendung auftreten.

Charakter
Ein XML -Dokument ist eine Zeichenfolge von Figuren. Fast Jedes legale Unicode Das Zeichen kann in einem XML -Dokument erscheinen.
Prozessor und Anwendung
Das Prozessor Analysiert das Markup und übergibt strukturierte Informationen an eine Anwendung. Die Spezifikation enthält Anforderungen, was ein XML -Prozessor tun muss und nicht, aber die Anwendung liegt außerhalb seines Geltungsbereichs. Der Prozessor (wie die Spezifikation es nennt) wird häufig umgangssprachlich als um XML -Parser.
Markup und Inhalt
Die Charaktere, die ein XML -Dokument ausmachen Markup und Inhalt, die durch die Anwendung einfacher syntaktischer Regeln unterschieden werden können. Im Allgemeinen beginnen Saiten, die Markup darstellen, entweder mit dem Charakter < und enden mit a >, oder sie beginnen mit dem Charakter & und enden mit a ;. Zeichenfolgen von Charakteren, die kein Markup sind, sind zufrieden. Jedoch in a CDATA Abschnitt, die Grenzwerte und ]]> werden als Markup eingestuft, während der Text zwischen ihnen als Inhalt eingestuft wird. Zusätzlich wird die Whitespace vor und nach dem äußersten Element als Markup eingestuft.
Schild
A Schild ist ein Markup -Konstrukt, das mit beginnt mit < und endet mit >. Es gibt drei Arten von Tag:
  • Start-Tag, wie zum Beispiel
    ;
  • End-Tag, wie zum Beispiel ;
  • leeres Element-Tag, wie zum Beispiel .
Element
Ein Element ist eine logische Dokumentkomponente, die entweder mit einem Start-Tag beginnt und mit einem passenden End-Tag endet oder nur aus einem Leerelement-Tag besteht. Die Zeichen zwischen Starttag und End-Tag sind, falls vorhanden, das Element des Elements Inhaltund kann Markup enthalten, einschließlich anderer Elemente, die genannt werden Kinderelemente. Ein Beispiel ist Hallo Welt!. Ein anderer ist .
Attribut
Ein Attribut ist ein Markup -Konstrukt, das aus a besteht Name -Wert -Paar Das existiert innerhalb eines Start-Tag- oder Leerelement-Tags. Ein Beispiel ist Madonna, wo die Namen der Attribute "SRC" und "Alt" sind und ihre Werte "madonna.jpg" bzw. "Madonna" sind. Ein anderes Beispiel ist Verbinden Sie A mit B., wobei der Name des Attributs "Nummer" ist und sein Wert "3" ist. Ein XML -Attribut kann nur einen einzelnen Wert haben und jedes Attribut kann höchstens einmal in jedem Element angezeigt werden. In der gemeinsamen Situation, in der eine Liste mehrerer Werte gewünscht wird[ich] mit einem Format über das, was XML selbst definiert. Normalerweise handelt es sich entweder um eine Komma- oder eine halbkolonierte Liste, wenn bekannt ist, dass die einzelnen Werte keine Räume enthalten.[ii] Es kann eine von der Space Delimitited verwendete Liste verwendet werden.
Herzlich willkommen!
, wo das Attribut "Klasse" sowohl den Wert "innere Grußbox" hat und auch die beiden angibt CSS Klassennamen "innere" und "Grußbox".
XML -Erklärung
XML -Dokumente können mit einem beginnen XML -Erklärung Das beschreibt einige Informationen über sich selbst. Ein Beispiel ist .

Charaktere und Flucht

XML -Dokumente bestehen ausschließlich aus Zeichen aus dem Unicode Repertoire. Bis auf eine kleine Anzahl von spezifisch ausgeschlossenen Steuerzeichen, jedes von unicode definierte Zeichen kann im Inhalt eines XML -Dokuments erscheinen.

XML enthält Einrichtungen zur Identifizierung der Codierung Von den Unicode -Zeichen, aus denen das Dokument besteht, und um Zeichen auszudrücken, die aus dem einen oder anderen Grund nicht direkt verwendet werden können.

Gültige Zeichen

Unicode -Codepunkte in den folgenden Bereichen sind in XML 1.0 -Dokumenten gültig:[10]

  • U+0009 (horizontale Registerkarte), U+000A (Linienfutter), U+000D (Wagenrendite): Dies sind die einzigen C0 Kontrollen in XML 1.0 akzeptiert;
  • U+0020-U+D7FF, U+E000-U+FFFD: Dies schließt einige Nicht-Charter in der aus Bmp (Alle Ersatz, U+fffe und u+ffff sind verboten);
  • U+10000–U+10FFFF: Dies schließt alle Codepunkte in ergänzenden Ebenen, einschließlich Nicht-Charaktern, ein.

XML 1.1 erweitert die Menge der zulässigen Zeichen um alle oben genannten und die verbleibenden Zeichen im Bereich U+0001 - U+001F.[11] Gleichzeitig schränkt es jedoch die Verwendung von C0 und ein C1 Kontrollieren Sie andere Zeichen als U+0009 (horizontale Registerkarte), U+000A (Zeilenfutter), U+000D (Wagenrendite) und U+0085 (nächste Zeile), indem Sie verlangen, dass sie in entkommener Form geschrieben werden (z. B. U+ 0001 muss geschrieben werden als oder sein Äquivalent). Bei C1 -Zeichen ist diese Einschränkung eine Rückwärtskompatibilität. Es wurde eingeführt, um es zu ermöglichen, dass gemeinsame Codierungsfehler erkannt werden.

Der Codepunkt U+0000 (NULL) ist das einzige Zeichen, das in einem Dokument XML 1.0 oder 1.1 nicht zulässig ist.

Kodierungserkennung

Der Unicode -Zeichensatz kann auf verschiedene Arten in Bytes für Speicher oder Übertragung, als "Codiers" bezeichnet, codiert werden. Unicode selbst definiert Codierungen, die das gesamte Repertoire abdecken; Bekannte sind UTF-8 und UTF-16.[12] Es gibt viele andere Textkodierungen, die vor Unicode liegen, wie z. ASCII und ISO/IEC 8859; Ihr Charakterrepertoire in fast jedem Fall sind Teilmengen des Unicode -Zeichensatzes.

XML ermöglicht die Verwendung einer der unicodedefinierten Kodierungen und anderer Kodierungen, deren Zeichen auch in Unicode erscheinen. XML liefert auch einen Mechanismus, bei dem ein XML -Prozessor zuverlässig bestimmen kann, welche Codierung verwendet wird.[13] Andere Codierungen als UTF-8 und UTF-16 werden von jedem XML-Parser nicht unbedingt erkannt.

Flucht

XML bietet Flucht Einrichtungen zum Einbeziehung von Charakteren, die problematisch sind, um direkt einzuschließen. Zum Beispiel:

  • Die Zeichen "<" und "&" sind wichtige Syntaxmarkierungen und erscheinen möglicherweise nie in Inhalten außerhalb von a CDATA Sektion. Es ist erlaubt, aber nicht empfohlen, "<" in XML -Entitätswerten zu verwenden.[14]
  • Einige Charaktercodierungen unterstützen nur eine Untergruppe von Unicode. Zum Beispiel ist es legal, ein XML -Dokument in ASCII zu codieren, aber ASCII fehlen Codepunkte für Unicode -Zeichen wie "é".
  • Es ist möglicherweise nicht möglich, das Charakter auf die Maschine des Autors einzugeben.
  • Einige Charaktere haben Glyphen das kann nicht visuell von anderen Zeichen unterschieden werden, wie die Nicht bahnbrechender Raum ( ) " " und die Platz ( ) " ", und die Kyrillischer Großbuchstaben a (А) "A" und die Lateinischer Großbuchstaben a (A) "EIN".

Da sind fünf Vordefinierte Einheiten:

  • < repräsentiert "<";
  • > repräsentiert ">";
  • & repräsentiert "&";
  • ' repräsentiert " '";
  • " repräsentiert ' "'.

Alle erlaubten Unicode -Zeichen können mit a dargestellt werden Numerische Zeichenreferenz. Betrachten Sie das chinesische Zeichen "中", dessen numerischer Code in Unicode Hexadezimal 4E2D oder Dezimal 20.013 ist. Ein Benutzer, dessen Tastatur keine Methode zum Eingeben dieses Zeichens bietet oder . In ähnlicher Weise könnte die Zeichenfolge "i <3 jörg" für die Aufnahme in ein XML -Dokument als codiert werden I <3 jörg.

ist nicht erlaubt, weil die Nullcharakter ist eines der von XML ausgeschlossenen Steuerzeichen, auch wenn eine numerische Zeichenreferenz verwendet wird.[15] Ein alternativer Codierungsmechanismus wie z. Basis64 wird benötigt, um solche Charaktere darzustellen.

Kommentare

Kommentare können überall in einem Dokument außerhalb eines anderen Markups erscheinen. Kommentare können nicht vor der XML -Deklaration angezeigt werden. Kommentare beginnen mit und enden mit ->. Für Kompatibilität mit SGML, die Zeichenfolge "-" (Double-Hyphen) ist in Kommentaren nicht erlaubt;[16] Dies bedeutet, dass Kommentare nicht verschachtelt werden können. Der Ampers und hat keine besondere Bedeutung innerhalb von Kommentaren, daher werden Entitäts- und Charakterreferenzen nicht als solche erkannt, und es gibt keine Möglichkeit, Zeichen außerhalb des Zeichensatzes der Dokumentcodierung darzustellen.

Ein Beispiel für einen gültigen Kommentar: