XML

Ausziehbare Preiserhöhungssprache (XML) ist eine Preiserhöhungssprache, die eine Reihe von Regeln definiert, um Dokumente in einem Format zu verschlüsseln, das sowohl menschlich-lesbar als auch maschinenlesbar ist. Es wird im XML 1.0 Spezifizierung definiert, die durch den W3C, und mehrere andere zusammenhängende Spezifizierungen, alle gratis offenen Standards erzeugt ist.

Die Designabsichten von XML betonen Einfachheit, Allgemeinheit und Brauchbarkeit über das Internet. Es ist ein Textdatenformat mit der starken Unterstützung über Unicode für die Sprachen der Welt. Obwohl sich das Design von XML auf Dokumente konzentriert, wird es für die Darstellung von willkürlichen Datenstrukturen zum Beispiel in Webdiensten weit verwendet.

Viele Anwendung, Schnittstellen (APIs) programmierend, ist für Softwareentwickler entwickelt worden, um zu verwenden, um XML Daten zu bearbeiten, und mehrere Diagramm-Systeme bestehen, um in der Definition von XML-basierten Sprachen zu helfen.

, Hunderte von XML-basierten Sprachen, sind einschließlich RSS, Atoms, SEIFE und XHTML entwickelt worden. XML-basierte Formate sind der Verzug für viele Büroproduktivitätswerkzeuge, einschließlich Microsoft Office (Büro Offener XML), OpenOffice.org und LibreOffice (OpenDocument) und iWork des Apfels geworden. XML ist auch als die Grundsprache für Nachrichtenprotokolle wie XMPP verwendet worden.

Schlüsselfachsprache

Das Material in dieser Abteilung basiert auf der XML Spezifizierung. Das ist nicht eine erschöpfende Liste aller Konstruktionen, die in XML erscheinen; es stellt eine Einführung in die im täglichen Gebrauch meistenteils gestoßenen Schlüsselkonstruktionen zur Verfügung.

(Unicode) Charakter: Definitionsgemäß ist ein XML Dokument eine Reihe von Charakteren. Fast jeder gesetzliche Charakter von Unicode kann in einem XML Dokument erscheinen.

Verarbeiter und Anwendung: Der Verarbeiter analysiert die Preiserhöhung und passiert strukturierte Information zu einer Anwendung. Die Spezifizierung legt Voraussetzungen daran, was ein XML Verarbeiter tun und nicht tun muss, aber die Anwendung ist außerhalb seines Spielraums. Auf den Verarbeiter (weil nennt die Spezifizierung es), wird häufig umgangssprachlich als ein XML parser verwiesen.

Preiserhöhung und Inhalt: Die Charaktere, die ein XML Dokument zusammensetzen, werden in die Preiserhöhung und den Inhalt geteilt. Preiserhöhung und Inhalt können durch die Anwendung einfacher syntaktischer Regeln bemerkenswert sein. Alle Schnuren, die Preiserhöhung einsetzen, die irgendein mit dem Charakter beginnt

Anhängsel

:A-Preiserhöhungskonstruktion, die damit beginnt

:*start-tags; zum Beispiel:

:*end-tags; zum Beispiel:

:*empty-element Anhängsel; zum Beispiel:

Element: Ein logischer Dokumentenbestandteil entweder beginnt mit einem Anfang-Anhängsel und endet mit einem zusammenpassenden Endanhängsel oder besteht nur aus einem Anhängsel des leeren Elements. Die Charaktere zwischen dem Anfang - und den Endanhängseln sind falls etwa, der Inhalt des Elements, und können Preiserhöhung einschließlich anderer Elemente enthalten, die Kinderelemente genannt werden. Ein Beispiel eines Elements ist (sieh hallo Welt). Ein anderer ist.

Attribut: Eine Preiserhöhungskonstruktion, die aus einem Paar des Namens/Werts besteht, das innerhalb eines Anfang-Anhängsels oder Anhängsels des leeren Elements besteht. Im Beispiel (unter) dem Element hat img zwei Attribute, src und alt:. Ein anderes Beispiel würde sein, wo der Name des Attributes "Zahl" ist und der Wert "3" ist.

XML Behauptung: XML Dokumente können durch das Erklären etwas Information über sich, als im folgenden Beispiel beginnen:

:

Charaktere und das Entgehen

XML Dokumente bestehen völlig aus Charakteren aus dem Repertoire von Unicode. Abgesehen von einer kleinen Anzahl von spezifisch ausgeschlossenen Kontrollcharakteren kann jeder von Unicode definierte Charakter innerhalb des Inhalts eines XML Dokumentes erscheinen. Die Auswahl an Charakteren, die innerhalb der Preiserhöhung erscheinen können, wird etwas mehr beschränkt, aber noch groß.

XML schließt Möglichkeiten ein, für die Verschlüsselung der Charaktere von Unicode zu identifizieren, die das Dokument zusammensetzen, und um Charaktere auszudrücken, die, aus einem Grund oder einem anderen, direkt nicht verwendet werden können.

Gültige Charaktere

Codepunkte von Unicode in den folgenden Reihen sind in XML 1.0 Dokumente gültig:

  • U+0009, U+000A, U+000D: Das sind die einzigen C0-Steuerungen, die in XML 1.0 akzeptiert sind;
  • U+0020-U+D7FF, U+E000-U+FFFD: Das schließt einige (nicht alle) Nichtcharaktere im BMP aus (alle Stellvertreter, U+FFFE und U+FFFF werden verboten);
  • U+10000-U+10FFFF: Das schließt alle Codepunkte in ergänzende Flugzeuge einschließlich Nichtcharaktere ein.

XML 1.1 erweitert den Satz von erlaubten Charakteren, um das ganze obengenannte plus die restlichen Charaktere in der Reihe U+0001-U+001F einzuschließen. Zur gleichen Zeit, jedoch, schränkt es den Gebrauch von C0- und C1-Kontrollcharakteren außer U+0009, U+000A, U+000D und U+0085 ein, indem es sie verlangt wird, in der entkommenen Form geschrieben zu werden (zum Beispiel U+0001 muss als &#x01 geschrieben werden; oder seine Entsprechung). Im Fall von C1 Charakteren ist diese Beschränkung umgekehrt Inkompatibilität; es wurde eingeführt, um allgemeinen Verschlüsselungsfehlern zu erlauben, entdeckt zu werden.

Der Codepunkt-U+0000 ist der einzige Charakter, der in keinem XML 1.0 oder 1.1 Dokument erlaubt wird.

Verschlüsselung der Entdeckung

Die Unicode Codierung kann in Bytes für die Lagerung oder Übertragung in einer Vielfalt von verschiedenen Wegen, genannt "encodings" verschlüsselt werden. Unicode selbst definiert encodings, die das komplette Repertoire bedecken; wohl bekannte schließen UTF-8 und UTF-16 ein. Es gibt viele anderer Text encodings, die Unicode, wie ASCII und ISO/IEC 8859 zurückdatieren; ihre Charakter-Repertoire in fast jedem Fall sind Teilmengen der Codierung von Unicode.

XML erlaubt den Gebrauch von einigen der Unicode-definierten encodings und jedes anderen encodings, dessen Charaktere auch in Unicode erscheinen. XML stellt auch einen Mechanismus zur Verfügung, wodurch ein XML Verarbeiter zuverlässig ohne irgendwelche vorherigen Kenntnisse kann, bestimmen, welche Verschlüsselung verwendet wird. Encodings außer UTF-8 und UTF-16 wird durch jeden XML parser nicht notwendigerweise anerkannt.

Das Entgehen

XML stellt Flucht-Möglichkeiten für das Umfassen von Charakteren zur Verfügung, die problematisch sind, um direkt einzuschließen. Zum Beispiel:

  • Die Charaktere "<" und "&" sind Schlüsselsyntax-Anschreiber und kann im Inhalt außerhalb einer CDATA Abteilung nie erscheinen.
  • Etwas Charakter encodings unterstützt nur eine Teilmenge von Unicode: Zum Beispiel ist es gesetzlich, ein XML Dokument in ASCII zu verschlüsseln, aber ASCII hat an Codepunkten für Charaktere von Unicode wie "é" Mangel.
  • Es könnte nicht möglich sein, den Charakter auf der Maschine des Autors zu tippen.
  • Einige Charaktere haben glyphs, der von anderen Charakteren nicht visuell bemerkenswert sein kann: Beispiele sind
"
  • nicht, Raum" "&#xa0 brechend;"
  • :compare-Raum ""
  • Kyrillischer Großbuchstabe A "А"
  • : vergleichen Sie lateinischen Großbuchstaben A "Ein"

Es gibt fünf vorherbestimmte Entitäten:

  • vertritt "<"
  • vertritt">"
  • vertritt "&"
  • vertritt'
  • vertritt"

Alle haben erlaubt, dass Charaktere von Unicode mit einer numerischen Charakter-Verweisung vertreten werden können. Denken Sie den chinesischen Charakter "", dessen numerischer Code in Unicode hexadecimal 4E2D, oder dezimale 20,013 ist. Ein Benutzer, dessen Tastatur keine Methode anbietet, um in diesen Charakter einzugehen, konnte es noch in ein XML Dokument verschlüsselt entweder als einfügen oder. Ähnlich konnte die Schnur "" für die Einschließung in ein XML Dokument als "" verschlüsselt werden.

""wird jedoch nicht erlaubt, weil der ungültige Charakter einer der von XML ausgeschlossenen Kontrollcharaktere, selbst wenn mit einer numerischen Charakter-Verweisung ist. Ein alternativer Verschlüsselungsmechanismus wie Base64 ist erforderlich, um solche Charaktere zu vertreten.

Anmerkungen

Anmerkungen können überall in einem Dokument außerhalb anderer Preiserhöhung erscheinen. Anmerkungen können vor der XML Behauptung nicht erscheinen. Der Schnur "" (doppelter Bindestrich) werden Innenanmerkungen nicht erlaubt. Anmerkungen fangen mit "" und Ende mit "" an. Das Und-Zeichen hat keine spezielle Bedeutung innerhalb von Anmerkungen, so werden Entität und Charakter-Verweisungen als solcher nicht anerkannt, und es keine Weise gibt, Charaktere außerhalb der Codierung der Dokumentenverschlüsselung zu vertreten.

Ein Beispiel einer gültigen Anmerkung:

""

Internationaler Gebrauch

XML 1.0 (die Fünfte Ausgabe) und XML 1.1 unterstützen den direkten Gebrauch fast jedes Charakters von Unicode in Elementnamen, Attributen, Anmerkungen, Charakter-Daten und in einer Prozession gehenden Instruktionen (anders als diejenigen, die spezielle symbolische Bedeutung in XML selbst, wie das Kleiner-Als, "haben

</Quelle>

Gut-formedness und Fehlerberühren

Die XML Spezifizierung definiert ein XML Dokument als ein Text, der gut gebildet wird, d. h. sie eine Liste von in der Spezifizierung zur Verfügung gestellten Syntax-Regeln befriedigt. Die Liste ist ziemlich lang; einige Stichpunkte sind:

  • Es enthält nur richtig verschlüsselte gesetzliche Charaktere von Unicode.
  • Keiner der speziellen Syntax-Charaktere solcher als "&lt;" und "&amp;" erscheinen Sie außer, wenn, ihre Preiserhöhungszeichnungsrollen durchführend.
  • Das Beginnen, Ende und Anhängsel des leeren Elements, die die Elemente abgrenzen, wird mit niemandem Vermisste und niemand Überschneidung richtig verschachtelt.
  • Die Element-Anhängsel sind mit dem Fall empfindlich; die beginnenden und Endanhängsel müssen genau zusammenpassen. Anhängsel-Namen können keinen der Charaktere enthalten
  • Es gibt ein einzelnes "Wurzel"-Element, das alle anderen Elemente enthält.

Die Definition eines XML Dokumentes schließt Texte aus, die Übertretungen von gut-formedness Regeln enthalten; sie sind einfach nicht XML. Ein XML Verarbeiter, der auf solch eine Übertretung stößt, ist erforderlich, solche Fehler auszugeben und normale Verarbeitung aufzuhören. Diese Politik, die gelegentlich auf als verwiesen ist, drakonisch, Standplätze in der bemerkenswerten Unähnlichkeit zum Verhalten von Programmen, die HTML bearbeiten, die entworfen werden, um ein angemessenes Ergebnis sogar in Gegenwart von strengen Preiserhöhungsfehlern zu erzeugen. Die Politik von XML in diesem Gebiet ist als eine Übertretung des Gesetzes von Postel kritisiert worden ("Darin konservativ sein, was Sie senden; seien Sie darin liberal, was Sie" akzeptieren).

Diagramme und Gültigkeitserklärung

Zusätzlich dazu, gut gebildet zu werden, kann ein XML Dokument gültig sein. Das bedeutet, dass es eine Verweisung auf eine Dokumenttyp-Definition (DTD) enthält, und dass seine Elemente und Attribute darin DTD erklärt werden und den grammatischen Regeln für sie folgen, dass der DTD angibt.

XML Verarbeiter werden als Bestätigung oder Nichtbestätigung je nachdem klassifiziert, ob sie XML Dokumente für die Gültigkeit überprüfen. Ein Verarbeiter, der einen Gültigkeitsfehler entdeckt, muss im Stande sein, es zu melden, aber kann normale Verarbeitung fortsetzen.

Ein DTD ist ein Beispiel eines Diagramms oder Grammatik. Seit der anfänglichen Veröffentlichung von XML 1.0 hat es wesentliche Arbeit im Gebiet von Diagramm-Sprachen für XML gegeben. Solche Diagramm-Sprachen beschränken normalerweise den Satz von Elementen, die in einem Dokument verwendet werden können, welche Attribute auf sie, die Ordnung angewandt werden können, in der sie, und die zulässigen Beziehungen des Elternteils/Kindes erscheinen können.

Dokumenttyp-Definition

Die älteste Diagramm-Sprache für XML ist die Dokumenttyp-Definition (DTD), die von SGML geerbt ist.

DTDs haben die folgenden Vorteile:

  • DTD Unterstützung ist wegen seiner Einschließung in den XML 1.0 Standard allgegenwärtig.
  • DTDs sind im Vergleich zu Element-basierten Diagramm-Sprachen knapp und präsentieren folglich mehr Information in einem einzelnen Schirm.
  • DTDs erlauben die Behauptung von öffentlichen Standardentitätssätzen, um Charaktere zu veröffentlichen.
  • DTDs definieren einen Dokumententyp aber nicht die Typen, die durch einen namespace verwendet sind, so alle Einschränkungen für ein Dokument in einer einzelnen Sammlung gruppierend.

DTDs haben die folgenden Beschränkungen:

  • Sie haben keine ausführliche Unterstützung für neuere Eigenschaften von XML, am wichtigsten namespaces.
  • Sie haben an Ausdrucksvollem Mangel. XML DTDs sind einfacher als SGML DTDs, und es gibt bestimmte Strukturen, die mit regelmäßigen Grammatiken nicht ausgedrückt werden können. DTDs unterstützen nur rudimentären datatypes.
  • Sie haben an Lesbarkeit Mangel. DTD Entwerfer machen normalerweise schweren Gebrauch von Parameter-Entitäten (die sich im Wesentlichen als Textmakros benehmen), die es leichter machen, komplizierte Grammatiken, aber auf Kosten der Klarheit zu definieren.
  • Sie verwenden eine Syntax, die auf der regelmäßigen Ausdruck-Syntax gestützt ist, die von SGML geerbt ist, um das Diagramm zu beschreiben. Typische XML APIs wie SAXOFON versuchen nicht, Anwendungen eine strukturierte Darstellung der Syntax anzubieten, so ist es für Programmierer weniger zugänglich, als eine Element-basierte Syntax sein kann.

Zwei eigenartige Eigenschaften, die DTDs von anderen Diagramm-Typen unterscheiden, sind die syntaktische Unterstützung, für einen DTD innerhalb von XML Dokumenten einzubetten und um Entitäten zu definieren, die willkürliche Bruchstücke des Textes und/oder der Preiserhöhung sind, die der XML Verarbeiter in den DTD selbst und ins XML Dokument einfügt, wo auch immer in ihnen wie Charakter-Flüchte Verweise angebracht wird.

DTD Technologie wird noch in vielen Anwendungen wegen seiner Allgegenwart verwendet.

XML Diagramm

Eine neuere Diagramm-Sprache, die durch den W3C als der Nachfolger von DTDs beschrieben ist, ist XML Diagramm, das häufig auf durch den initialism für XML Diagramm-Beispiele, XSD (XML Diagramm-Definition) verwiesen ist. XSDs sind viel stärker als DTDs im Beschreiben von XML Sprachen. Sie verwenden ein reiches datatyping System und berücksichtigen ausführlichere Einschränkungen auf eine logische Struktur eines XML Dokumentes. XSDs verwenden auch ein XML-basiertes Format, das es möglich macht, gewöhnliche XML Werkzeuge zu verwenden, um zu helfen, sie zu bearbeiten.

ENTSPANNEN SIE NG

ENTSPANNEN SIE SICH NG wurde durch die OASE am Anfang angegeben und ist jetzt auch ein ISO/IEC Internationaler Standard (als ein Teil von DSDL). Entspannen Sie SICH Diagramme von NG können entweder in der gestützten Syntax eines XML oder in einer kompakteren non-XML Syntax geschrieben werden; die zwei Syntaxen sind isomorph, und das Trang Umwandlungswerkzeug von James Clark kann sich zwischen ihnen ohne Verlust der Information umwandeln. Entspannen Sie SICH NG hat eine einfachere Definition und Gültigkeitserklärungsfachwerk als XML Diagramm, es leichter machend, zu verwenden und durchzuführen. Es ist auch in der Lage, datatype Fachwerk-Einfügefunktionen zu verwenden; ein ENTSPANNEN Diagramm-Autor von NG kann zum Beispiel verlangen, dass Werte in einem XML Dokument Definitionen im XML Diagramm Datatypes anpassen.

Schematron

Schematron ist eine Sprache, um Behauptungen über die Anwesenheit oder Abwesenheit von Mustern in einem XML Dokument zu machen. Es verwendet normalerweise XPath Ausdrücke.

ISO DSDL und andere Diagramm-Sprachen

Der ISO DSDL (Dokumentendiagramm-Beschreibungssprachen) Standard bringt eine umfangreiche Auswahl von kleinen Diagramm-Sprachen, jeder zusammen, der an spezifischen Problemen ins Visier genommen ist. DSDL schließt ein ENTSPANNEN NG volle und kompakte Syntax, Behauptungssprache von Schematron und Sprachen, um datatypes, Charakter-Repertoire-Einschränkungen, Umbenennung und Entitätsvergrößerung und mit Sitz in namespace Routenplanung von Dokumentenbruchstücken zu verschiedenem validators zu definieren. DSDL Diagramm-Sprachen haben die Verkäufer-Unterstützung von XML Diagrammen noch nicht, und sind einigermaßen eine bodenständige Reaktion von Industrieherausgebern zum Mangel am Dienstprogramm von XML Diagrammen für das Veröffentlichen.

Einige Diagramm-Sprachen beschreiben nicht nur die Struktur eines besonderen XML-Formats, sondern auch Angebot hat Möglichkeiten beschränkt, Verarbeitung von individuellen XML Dateien zu beeinflussen, die sich diesem Format anpassen. DTDs und XSDs beide haben diese Fähigkeit; sie können zum Beispiel die infoset Zunahme-Möglichkeit zur Verfügung stellen und Verzug zuschreiben. ENTSPANNEN SIE NG, und Schematron stellen absichtlich diese nicht zur Verfügung.

Zusammenhängende Spezifizierungen

Eine Traube von mit XML nah verbundenen Spezifizierungen ist entwickelt worden, bald nach der anfänglichen Veröffentlichung von XML 1.0 anfangend. Es ist oft der Fall, den der Begriff "XML" gebraucht wird, um auf XML zusammen mit ein oder mehr von diesen anderen Technologien zu verweisen, die gekommen sind, um als ein Teil des XML Kerns gesehen zu werden.

  • XML Namespaces ermöglichen demselben Dokument, XML Elemente und Attribute zu enthalten, die aus verschiedenen Vokabularen ohne jedes Namengeben-Kollisionsauftreten genommen sind. Obwohl XML Namespaces nicht ein Teil der XML Spezifizierung selbst sind, eigentlich unterstützt die ganze XML Software auch XML Namespaces.
  • XML Basis definiert das Attribut, das verwendet werden kann, um die Basis für die Entschlossenheit von URI Verhältnisverweisungen im Rahmen eines einzelnen XML Elements zu setzen.
  • Der XML Informationssatz oder XML infoset beschreiben ein abstraktes Datenmodell für XML Dokumente in Bezug auf Informationssachen. Der infoset wird in den Spezifizierungen von XML Sprachen, für die Bequemlichkeit im Beschreiben von Einschränkungen auf die XML-Konstruktionen allgemein verwendet, die jene Sprachen erlauben.
  • Xml:id-Version 1.0 behauptet, dass ein Attribut Funktionen als ein "ID-Attribut" im in einem DTD verwendeten Sinn genannt hat.
  • XPath definiert eine Syntax genannt XPath Ausdrücke, die sich ein oder mehr von den inneren Bestandteilen (Elemente, Attribute, und so weiter) eingeschlossen in ein XML Dokument identifiziert. XPath wird in anderen Kern-XML-Spezifizierungen und in der Programmierung von Bibliotheken weit verwendet, um auf XML-verschlüsselte Daten zuzugreifen.
  • XSLT ist eine Sprache mit einer XML-basierten Syntax, die verwendet wird, um XML Dokumente in andere XML Dokumente, HTML oder anderen, unstrukturierte Formate wie Klartext oder Volltextformat umzugestalten. XSLT wird mit XPath sehr dicht verbunden, den er verwendet, um Bestandteile des Eingangs XML Dokument, hauptsächlich Elemente und Attribute zu richten.
  • Formatierende Gegenstände von XSL oder XSL-FO, sind eine Preiserhöhungssprache für die XML Dokumentenformatierung, die meistenteils verwendet wird, um PDFs zu erzeugen.
  • XQuery ist eine XML-orientierte Anfragensprache, die stark in XPath und XML Diagramm eingewurzelt ist. Es stellt Methoden zur Verfügung, auf XML zuzugreifen, zu manipulieren und zurückzugeben, und wird als eine Anfragensprache für XML Datenbanken hauptsächlich konzipiert.
  • XML Unterschrift definiert Syntax und in einer Prozession gehende Regeln, um Digitalunterschriften auf dem XML Inhalt zu schaffen.
  • XML Verschlüsselung definiert Syntax und in einer Prozession gehende Regeln für encrypting XML Inhalt.

Einige andere Spezifizierungen haben empfangen, weil ein Teil des XML "Kerns" gescheitert hat, breite Adoption, einschließlich XInclude, XLink und XPointer zu finden.

Verwenden Sie im Internet

XML ist in übliche Anwendung für den Austausch von Daten über das Internet eingetreten. RFC 3023 gibt Regeln für den Aufbau von Internetsektorformaten für den Gebrauch, wenn er XML sendet. Es definiert auch die Sektorformate application/xml und text/xml, die nur sagen, dass die Daten in XML und nichts über seine Semantik sind. Der Gebrauch von text/xml ist als eine potenzielle Quelle kritisiert worden, Probleme zu verschlüsseln, und es ist darauf hingewiesen worden, dass es missbilligt werden sollte.

RFC 3023 empfiehlt auch, dass Sprachen XML-basiert hat, Sektorformate gegeben werden, die in +xml enden; zum Beispiel image/svg+xml für SVG.

Weitere Richtlinien für den Gebrauch von XML in einem vernetzten Zusammenhang können in RFC 3470, auch bekannt als IETF BCP 70 gefunden werden; dieses Dokument ist sehr weiträumig und bedeckt viele Aspekte des Entwerfens und Entfaltens einer XML-basierten Sprache.

Programmierung von Schnittstellen

Die Designabsichten von XML schließen ein, "Es soll leicht sein, Programme zu schreiben, die XML Dokumente bearbeiten." Trotzdem enthält die XML Spezifizierung fast keine Information darüber, wie Programmierer über das Tun solcher Verarbeitung gehen könnten. Der XML Infoset Spezifizierung stellt ein Vokabular zur Verfügung, um sich auf die Konstruktionen innerhalb eines XML Dokumentes zu beziehen, sondern auch stellt keine Leitung darauf zur Verfügung, wie man auf diese Information zugreift. Eine Vielfalt von APIs, um auf XML zuzugreifen, ist entwickelt und verwendet worden, und einige sind standardisiert worden.

Vorhandene APIs für die XML-Verarbeitung neigen dazu, in diese Kategorien zu fallen:

  • Strom-orientiert APIs zugänglich aus einer Programmiersprache, zum Beispiel SAXOFON und StAX.
  • Baumüberquerender APIs, der aus einer Programmiersprache, zum Beispiel DOM zugänglich ist.
  • XML Datenschwergängigkeit, die eine automatisierte Übersetzung zwischen einem XML Dokument und Programmiersprache-Gegenständen zur Verfügung stellt.
  • Aussagetransformationssprachen wie XSLT und XQuery.

Strom-orientierte Möglichkeiten verlangen weniger Gedächtnis und für bestimmte Aufgaben, die auf einem geradlinigen Traversal eines XML Dokumentes basieren, schneller und einfacher sind als andere Alternativen. Baumüberquerende und datenbindende APIs verlangen normalerweise den Gebrauch viel mehr Gedächtnisses, aber werden häufig günstiger für den Gebrauch von Programmierern gefunden; einige schließen Aussagewiederauffindung von Dokumentenbestandteilen über den Gebrauch von XPath Ausdrücken ein.

XSLT wird für die Aussagebeschreibung von XML Dokumententransformationen entworfen, und ist sowohl in Paketen der Server-Seite als auch in WWW-Browsern weit durchgeführt worden. XQuery greift auf XSLT in seiner Funktionalität über, aber wird mehr entworfen, um großer XML Datenbanken zu suchen.

Einfache API für XML

Die einfache API für XML (SAXOFON) ist eine lexikalische, Ereignis-gesteuerte Schnittstelle, in der ein Dokument serienmäßig gelesen wird und sein Inhalt als Rückrufaktionen verschiedenen Methoden auf einem Dressierer-Gegenstand des Designs des Benutzers berichtet wird. SAXOFON ist schnell und effizient, um durchzuführen, aber schwierig zu verwenden, um Information aufs Geratewohl aus dem XML herauszuziehen, da es dazu neigt, den Anwendungsautor das Nachgehen dessen zu belasten, welcher Teil des Dokumentes bearbeitet wird. Ihm wird Situationen besser angepasst, in denen bestimmte Typen der Information immer derselbe Weg behandelt werden, egal wo sie im Dokument vorkommen.

Ziehen Sie Syntaxanalyse

Ziehen Sie Syntaxanalyse behandelt das Dokument als eine Reihe von Sachen, die in der Folge mit dem Designmuster von Iterator gelesen werden. Das berücksichtigt das Schreiben des rekursiven Abstiegs parsers, in dem die Struktur des Codes, der die Syntaxanalyse durchführt, die Struktur des XML widerspiegelt grammatisch analysiert zu werden, und Zwischenglied Ergebnisse grammatisch analysiert hat, kann verwendet und als lokale Variablen innerhalb der Methoden zugegriffen, die die Syntaxanalyse durchführen, oder (als Methode-Rahmen) in Methoden der niedrigeren Ebene überliefert oder zurückgegeben werden (weil Methode-Rückkehr schätzt) zu Methoden des höheren Niveaus. Beispiele des Ziehens parsers schließen StAX in die javanische Programmiersprache, XMLReader in PHP und System ein. Xml. XmlReader im.NET Fachwerk.

Ein Ziehen parser schafft einen iterator, der folgend die verschiedenen Elemente, Attribute und Daten in einem XML Dokument besucht. Code, der diesen iterator verwendet, kann den aktuellen Artikel prüfen (um zum Beispiel zu erzählen, ob es ein Anfang oder Endelement oder Text ist), und untersuchen Sie seine Attribute (lokaler Name, namespace, Werte von XML-Attributen, Wert des Textes, usw.), und auch den iterator zum folgenden Artikel bewegen kann. Der Code kann so Information aus dem Dokument herausziehen, weil es es überquert. Die Annäherung des rekursiven Abstiegs neigt dazu, sich zum Halten von Daten als getippte lokale Variablen im Code zu leihen, der die Syntaxanalyse tut, während SAXOFON zum Beispiel normalerweise verlangt, dass ein parser Zwischendaten innerhalb eines Stapels von Elementen manuell aufrechterhält, die Elternteilelemente des Elements sind, das grammatisch wird analysiert. Ziehen grammatisch analysierender Code kann aufrichtiger sein, um zu verstehen und aufrechtzuerhalten, als SAXOFON-Syntaxanalyse-Code.

Dokumentengegenstand-Modell

Document Object Model (DOM) ist eine Schnittstelle-orientierte Anwendung, Schnittstelle programmierend, die Navigation des kompletten Dokumentes berücksichtigt, als ob es ein Baum von Knotengegenständen war, die den Inhalt des Dokumentes vertreten. Ein DOM Dokument kann durch einen parser geschaffen werden, oder kann manuell von Benutzern (mit Beschränkungen) erzeugt werden. Datentypen in DOM Knoten sind abstrakt; Durchführungen stellen ihren eigenen programmierenden sprachspezifischen bindings zur Verfügung. DOM Durchführungen neigen dazu, intensives Gedächtnis zu sein, weil sie allgemein verlangen, dass das komplette Dokument ins Gedächtnis geladen und als ein Baum von Gegenständen gebaut wird, bevor Zugang erlaubt wird.

Datenschwergängigkeit

Eine andere Form von XML in einer Prozession gehende API ist XML Datenschwergängigkeit, wo XML Daten als eine Hierarchie der Gewohnheit, stark getippten Klassen im Gegensatz zu den allgemeinen Gegenständen bereitgestellt werden, die durch ein Dokumentengegenstand-Modell parser geschaffen sind. Diese Annäherung vereinfacht Codeentwicklung, und in vielen Fällen erlaubt Problemen, während der Übersetzung aber nicht Durchlaufzeit identifiziert zu werden. Beispiel-Daten verbindliche Systeme schließen die javanische Architektur für XML ein, der (JAXB) und XML Anordnung in.NET Bindet.

XML als Datentyp

XML beginnt, als ein erstklassiger Datentyp auf anderen Sprachen zu erscheinen. Der ECMAScript für XML (E4X) Erweiterung auf die ECMAScript/JavaScript Sprache definiert ausführlich zwei spezifische Gegenstände (XML und XMLList) für JavaScript, die XML Dokumentenknoten und XML Knotenlisten als verschiedene Gegenstände unterstützen und eine Punktnotation verwenden, die Elternteilkind-Beziehungen angibt. E4X wird von Mozilla 2.5 + Browser und Adobe Actionscript unterstützt, aber ist mehr allgemein nicht angenommen worden. Ähnliche Notationen werden in der LINQ Durchführung des Microsofts für Microsoft.NET 3.5 und oben, und in Scala verwendet (der Java VM verwendet). Die offene Quelle xmlsh Anwendung, die eine Linux ähnliche Schale mit Besonderheiten für die XML Manipulation versorgt, behandelt ähnlich XML als ein Datentyp, mit

Geschichte

XML ist ein Anwendungsprofil von SGML (ISO 8879).

Die Vielseitigkeit von SGML für die dynamische Informationsanzeige wurde von frühen Digitalmediaherausgebern gegen Ende der 1980er Jahre vor dem Anstieg des Internets verstanden. Durch die Mitte der 1990er Jahre hatten einige Praktiker von SGML mit dem dann neuen World Wide Web Erfahrung gesammelt und geglaubt, dass SGML Lösungen einiger der Probleme angeboten hat, denen das Web wahrscheinlich gegenüberstehen konnte, wie es gewachsen ist. Dan Connolly hat SGML zur Liste von W3C's Tätigkeiten hinzugefügt, als er sich dem Personal 1995 angeschlossen hat; Arbeit hat Mitte 1996 begonnen, als Sonne-Mikrosystemingenieur Jon Bosak eine Urkunde entwickelt hat und Mitarbeiter rekrutiert hat. Bosak wurde in der kleinen Gemeinschaft von Leuten gut verbunden, die Erfahrung sowohl in SGML als auch im Web hatten.

XML wurde von einer Arbeitsgruppe von elf Mitgliedern kompiliert, die von (grob) Interest 150-Mitglieder-Group unterstützt sind. Technische Debatte hat auf der Adressenliste von Interest Group stattgefunden, und Probleme wurden durch die Einigkeit aufgelöst oder, als das, Majoritätsstimme der Arbeitsgruppe gescheitert hat. Eine Aufzeichnung von Designentscheidungen und ihrem Grundprinzip wurde von Michael Sperberg-McQueen am 4. Dezember 1997 kompiliert. James Clark hat als Technische Leitung der Arbeitsgruppe gedient, namentlich das leere Element "" Syntax und der Name "XML" beitragend. Andere Namen, die für die Rücksicht vorgebracht worden waren, haben "MAGMA" (Minimale Architektur für Verallgemeinerte Preiserhöhungsanwendungen), "SCHLANK" (Strukturierte Sprache für die Internetpreiserhöhung) und "MGML" (Minimale Verallgemeinerte Preiserhöhungssprache) eingeschlossen. Die Mitherausgeber der Spezifizierung waren ursprünglich Tim Bray und Michael Sperberg-McQueen. Halbwegs durch das Projekt hat Bray eine Beratenverpflichtung mit Netscape akzeptiert, laute Proteste von Microsoft provozierend. Bray wurde provisorisch gebeten, die Chefredaktion aufzugeben. Das hat zu intensivem Streit in der Arbeitsgruppe geführt, die schließlich durch die Ernennung von Jean Paoli des Microsofts als ein dritter Mitherausgeber gelöst ist.

Die XML Arbeitsgruppe hat sich nie persönlich getroffen; das Design wurde mit einer Kombination der E-Mail und wöchentlichen Telefonkonferenzen vollbracht. Zu den Hauptdesignentscheidungen wurde in einem kurzen Ausbruch von intensiver Arbeit zwischen August und November 1996 gekommen, als der erste Arbeitsentwurf einer XML Spezifizierung veröffentlicht wurde. Weitere Designarbeit hat im Laufe 1997 weitergegangen, und XML 1.0 ist eine W3C Empfehlung am 10. Februar 1998 geworden.

Quellen

XML ist ein Profil eines ISO normalen SGML, und die meisten XML kommen SGML unverändert her. Von SGML kommt die Trennung von logischen und physischen Strukturen (Elemente und Entitäten), die Verfügbarkeit der Grammatik-basierten Gültigkeitserklärung (DTDs), der Trennung von Daten und metadata (Elemente und Attribute), hat Inhalt, die Trennung der Verarbeitung von der Darstellung gemischt (Instruktionen bearbeitend), und die Verzug-Winkelklammer-Syntax. Entfernt waren die SGML Behauptung (XML ließ ein festes Begrenzungszeichen setzen und nimmt Unicode als die Dokumentencodierung an).

Andere Quellen der Technologie für XML waren Text Encoding Initiative (TEI), die ein Profil von SGML für den Gebrauch als eine "Übertragungssyntax" definiert hat; und HTML, in dem Elemente mit ihrer Quelle, Dokumentencodierungen gleichzeitig waren, war von der Quellenverschlüsselung getrennt, das Xml:lang-Attribut wurde erfunden, und (wie HTTP) hat metadata die Quelle begleitet, anstatt an der Behauptung einer Verbindung erforderlich zu sein. Das Projekt von Extended Reference Concrete Syntax (ERCS) der AUSBREITUNG (Standardisierungsprojekt Bezüglich ostasiatischer Dokumente) Projekt der ISO-verwandten Belegverarbeitungsexperte-Gruppe von China/Japan/Korea war die Basis von XML 1.0's nennende Regeln; AUSBREITUNG hat auch hexadecimal numerische Charakter-Verweisungen und das Konzept von Verweisungen eingeführt, um verfügbar alle Charaktere von Unicode zu machen. Um ERCS, XML und HTML besser zu unterstützen, IST der SGML Standard 8879 wurde 1996 und 1998 mit Anpassungen von WebSGML revidiert. Der XML Kopfball ist dem von ISO HyTime gefolgt.

Ideen, die sich während der Diskussion entwickelt haben, die in XML neuartig waren, haben den Algorithmus eingeschlossen, um Entdeckung und den Verschlüsselungskopfball, das in einer Prozession gehende Instruktionsziel, das Xml:space-Attribut und das neue nahe Begrenzungszeichen für Anhängsel des leeren Elements zu verschlüsseln. Der Begriff gut-formedness im Vergleich mit der Gültigkeit (der ermöglicht, ohne ein Diagramm grammatisch zu analysieren) wurde zuerst in XML formalisiert, obwohl es erfolgreich in der Elektronischen Buchtechnologie "Dynatext" Software durchgeführt worden war; die Software von der Universität des Waterloo Neuen englischen Wörterbuch-Projektes von Oxford; das RISP-LISPELN SGML Textverarbeiter an Uniscope, Tokio; der US-Armeeraketenbefehl IADS Hypertext; Mentor-Grafikzusammenhang; Durchschuss und Xerox-Veröffentlichen-System.

Versionen

Es gibt zwei jetzige Versionen von XML. Das erste (XML 1.0) wurde 1998 am Anfang definiert. Es hat geringe Revisionen seitdem erlebt, ohne eine neue Versionsnummer gegeben zu werden, und ist zurzeit in seiner fünften Ausgabe, wie veröffentlicht, am 26. November 2008. Es wird weit durchgeführt und noch für den allgemeinen Gebrauch empfohlen.

Das zweite (XML 1.1) wurde am 4. Februar 2004, derselbe Tag wie XML die 1.0 Dritte Ausgabe am Anfang veröffentlicht, und ist zurzeit in seiner zweiten Ausgabe, wie veröffentlicht, am 16. August 2006. Es enthält Eigenschaften (einige streitsüchtig), die beabsichtigt sind, um XML leichter zu machen, in bestimmten Fällen zu verwenden. Die Hauptänderungen sollen den Gebrauch von linienbeendenden Charakteren ermöglichen, die auf EBCDIC Plattformen und dem Gebrauch von Schriften und Charakteren verwendet sind, die von Unicode 3.2 fehlen. XML 1.1 wird nicht sehr weit durchgeführt und wird für den Gebrauch nur von denjenigen empfohlen, die seine einzigartigen Eigenschaften brauchen.

Vor seiner fünften Ausgabe-Ausgabe hat sich XML 1.0 von XML 1.1 unterschieden, indem er strengere Voraussetzungen für Charaktere hat, die für den Gebrauch im Element und den Attribut-Namen und den einzigartigen Bezeichnern verfügbar sind: In den ersten vier Ausgaben von XML 1.0 wurden die Charaktere mit einer spezifischen Version des Standards von Unicode exklusiv aufgezählt (Unicode 2.0 zu Unicode 3.2.) Setzt die fünfte Ausgabe den Mechanismus von XML 1.1 ein, der mehr zukünftiger Beweis ist, aber Überfülle reduziert. Die Annäherung, die in der fünften Ausgabe von XML 1.0 und in allen Ausgaben von XML 1.1 genommen ist, besteht darin, dass nur bestimmte Charaktere in Namen verboten werden, und etwas anderem erlaubt wird, um den Gebrauch von passenden Namencharakteren in zukünftigen Versionen von Unicode anzupassen. In der fünften Ausgabe können XML Namen Charaktere in den Balinesen, Cham oder phönizischen Schriften unter vielen anderen enthalten, die zu Unicode seit Unicode 3.2 hinzugefügt worden sind.

Fast jeder Codepunkt von Unicode kann in den Charakter-Daten und Attribut-Werten eines XML 1.0 oder 1.1 Dokument verwendet werden, selbst wenn der Charakter entsprechend dem Codepunkt in der jetzigen Version von Unicode nicht definiert wird. In Charakter-Daten und Attribut-Werten erlaubt XML 1.1 den Gebrauch von mehr Kontrollcharakteren als XML 1.0, aber, für "die Robustheit", müssen die meisten Kontrollcharaktere, die in XML 1.1 eingeführt sind, als numerische Charakter-Verweisungen ausgedrückt werden (und #x7F durch #x9F, dem in XML 1.0 erlaubt worden war, sind in XML 1.1 sogar erforderlich, als numerische Charakter-Verweisungen ausgedrückt zu werden). Unter den unterstützten Kontrollcharakteren in XML 1.1 sind zwei Linienbrechungscodes, die als whitespace behandelt werden müssen. Charaktere von Whitespace sind die einzigen Kontrollcodes, die direkt geschrieben werden können.

Es hat Diskussion eines XML 2.0 gegeben, obwohl keine Organisation Pläne für die Arbeit an solch einem Projekt bekannt gegeben hat. XML-KURZWELLIG (KURZWELLIG für skunkworks), geschrieben von einem der ursprünglichen Entwickler von XML, enthält einige Vorschläge dafür, wie was ein XML 2.0 aussehen könnte: Beseitigung von DTDs von der Syntax, Integration von namespaces, XML Basis und XML Informationssatz (infoset) in den Grundstandard.

Das Konsortium des World Wide Web hat auch eine XML Binäre Charakterisierungsarbeitsgruppe, die einleitende Forschung in Gebrauch-Fälle und Eigenschaften für eine binäre Verschlüsselung des XML infoset tut. Die Arbeitsgruppe wird nicht gechartert, um irgendwelche offiziellen Standards zu erzeugen. Da XML definitionsgemäß textgestützt wird, verwenden ITU-T und ISO den Namen Schneller Infoset für ihren eigenen binären infoset, um Verwirrung zu vermeiden (sieh ITU-T Rec. X.891 | ISO/IEC 24824-1).

Kritik

XML und seine Erweiterungen sind regelmäßig für die Weitschweifigkeit und Kompliziertheit kritisiert worden. Das grundlegende Baummodell von XML kartografisch darzustellen, um Systeme von Programmiersprachen oder Datenbanken zu tippen, kann besonders schwierig sein, wenn XML verwendet wird, um hoch strukturierte Daten zwischen Anwendungen auszutauschen, der nicht seine primäre Designabsicht war. Andere Kritiken versuchen, den Anspruch zu widerlegen, dass XML eine Selbstbeschreiben-Sprache ist (obwohl die XML Spezifizierung selbst keinen solchen Anspruch erhebt). JSON und YAML werden oft als Alternativen vorgeschlagen; beide konzentrieren sich darauf, strukturierte Daten, aber nicht Bericht-Dokumente zu vertreten.

Siehe auch

  • Liste von XML Preiserhöhungssprachen
  • Vergleich von Lay-Out-Motoren (XML)
  • Binärer XML
  • EBML
  • WBXML
  • Milliarde Lachen (ein Angriff der Leugnung des Dienstes auf XML parsers)
  • XML Protokoll
  • Der Vergleich der Datenanordnung formatiert

Weiterführende Literatur

Links


XFL / Xenon
Impressum & Datenschutz