Thursday, January 24, 2019

Textual description of firstImageUrl

XML - Wikipedia


Vom W3C entwickelte Auszeichnungssprache zum Verschlüsseln von Daten

Extensible Markup Language ( XML ) ist eine Auszeichnungssprache, die einen Satz von Regeln zum Verschlüsseln von Dokumenten in einem Format definiert, das beides ist lesbar und maschinenlesbar. Die XML 1.0-Spezifikation des W3C [2] und einige andere verwandte Spezifikationen [3] - alle freien offenen Standards - definieren XML. [4]

Die Entwurfsziele von XML betonen Einfachheit, Allgemeingültigkeit und Verwendbarkeit im Internet. [5] It ist ein Textdatenformat mit starker Unterstützung für verschiedene menschliche Sprachen über Unicode. Obwohl das Design von XML sich auf Dokumente konzentriert, wird die Sprache häufig für die Darstellung beliebiger Datenstrukturen [6] verwendet, wie sie beispielsweise in Web-Services verwendet werden.

Es gibt mehrere Schemasysteme, die bei der Definition von XML-basierten Sprachen helfen, während Programmierer viele Anwendungsprogrammierschnittstellen (APIs) entwickelt haben, die die Verarbeitung von XML-Daten unterstützen.

Anwendungen von XML [ edit ]

Der Grundgedanke, warum erweiterbare Auszeichnungssprachen erforderlich sind, wird unter Markup Language Markup erläutert Sprache § XML ) und bei Standard Generalized Markup Language .

Es wurden Hunderte von Dokumentformaten mit XML-Syntax entwickelt, [7] darunter RSS, Atom, SOAP, SVG und XHTML. XML-basierte Formate sind für viele Office-Tools zum Standard geworden, darunter Microsoft Office (Office Open XML), OpenOffice.org und LibreOffice (OpenDocument) sowie Apples iWork [ Citation needed ]. . XML hat auch die Basissprache für Kommunikationsprotokolle wie XMPP bereitgestellt. Anwendungen für das Microsoft .NET Framework verwenden XML-Dateien zur Konfiguration, und Eigenschaftslisten stellen eine auf XML basierende Implementierung von Konfigurationsspeicher dar. [8]

Viele Industriedatenstandards, z. HL7, OTA, FpML, MISMO, NIEM usw. basieren auf XML und den umfangreichen Funktionen der XML-Schemaspezifikation. Viele dieser Standards sind ziemlich komplex und es ist nicht ungewöhnlich, dass eine Spezifikation mehrere tausend Seiten umfasst.

Im Verlagswesen ist DITA ein XML-Industriedatenstandard. XML wird umfassend verwendet, um verschiedene Veröffentlichungsformate zu untermauern.

XML wird häufig in einer serviceorientierten Architektur (SOA) eingesetzt. Unterschiedliche Systeme kommunizieren miteinander, indem sie XML-Nachrichten austauschen. Das Nachrichtenaustauschformat ist als XML-Schema (XSD) standardisiert. Dies wird auch als kanonisches Schema bezeichnet.

Für den Datenaustausch über das Internet ist XML allgemein üblich. IETF RFC: 3023, jetzt abgelöst durch RFC: 7303, gab Regeln für den Aufbau von Internet-Medientypen für die Verwendung beim Senden von XML vor. Es definiert auch die Medientypen application / xml und text / xml die nur besagen, dass die Daten in XML sind und nichts über ihre Semantik.

RFC 7303 empfiehlt außerdem, dass für XML-basierte Sprachen Medientypen angegeben werden, die auf + xml enden. zum Beispiel image / svg + xml für SVG.

Weitere Richtlinien für die Verwendung von XML in einem vernetzten Kontext finden Sie in RFC 3470, auch als IETF BCP 70 bekannt, einem Dokument, das viele Aspekte des Entwurfs und der Implementierung einer XML-basierten Sprache abdeckt.

Schlüsselterminologie [ edit ]

Das Material in diesem Abschnitt basiert auf der XML-Spezifikation. Dies ist keine erschöpfende Liste aller Konstrukte, die in XML angezeigt werden. Es bietet eine Einführung in die wichtigsten Konstrukte, die im täglichen Gebrauch am häufigsten anzutreffen sind.

Character
Ein XML-Dokument besteht aus Zeichen . Nahezu jedes gültige Unicode-Zeichen kann in einem XML-Dokument enthalten sein.
Prozessor und Anwendung
Der Prozessor analysiert das Markup und übergibt strukturierte Informationen an eine Anwendung . Die Spezifikation stellt Anforderungen an das, was ein XML-Prozessor tun muss und was nicht, aber die Anwendung liegt außerhalb ihres Geltungsbereichs. Der Prozessor (wie die Spezifikation es nennt) wird häufig umgangssprachlich als XML-Parser .
bezeichnet. Markup und Inhalt
Die Zeichen, aus denen ein XML-Dokument besteht, werden in Markup unterteilt ] und content die durch die Anwendung einfacher syntaktischer Regeln unterschieden werden können. Im Allgemeinen beginnen Zeichenfolgen, die einen Aufschlag darstellen, entweder mit dem Zeichen < und enden mit einem > oder sie beginnen mit dem Zeichen & und enden mit einem . . Zeichenfolgen, die keine Markierungen sind, sind Inhalt. In einem CDATA-Abschnitt werden die Trennzeichen [![CDATA und ]> jedoch als Markup klassifiziert, während der Text zwischen ihnen als Inhalt klassifiziert wird. Außerdem wird der Leerraum vor und nach dem äußersten Element als Markup klassifiziert.
Tag
Ein Tag ist ein Markup-Konstrukt, das mit beginnt und mit endet. . Tags gibt es in drei Ausführungen:
  • start-tag wie beispielsweise
  • end-Tag wie
  • Leerelement-Tag wie .
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 Element mit leeren Elementen besteht . Die Zeichen zwischen dem Start-Tag und dem End-Tag (falls vorhanden) sind der Inhalt des Elements und können Markup enthalten, einschließlich anderer Elemente, die als Kindelemente bezeichnet werden. Ein Beispiel ist Hallo, Welt! . Ein anderes ist .
Attribut
Ein -Attribut ist ein Markup-Konstrukt, das aus einem Name-Wert-Paar besteht, das in einem Start-Tag oder einem Leerelement-Tag vorhanden ist. Ein Beispiel ist  Madonna wo die Namen der Attribute "src" und "alt" sind und ihre Werte "http://en.wikipedia.org/madonna.jpg" bzw. "Madonna" sind . Ein anderes Beispiel ist Verbinden Sie A mit B. wobei der Name des Attributs "number" und der Wert "3" ist. Ein XML-Attribut kann nur einen einzelnen Wert haben und jedes Attribut darf höchstens einmal auf jedem Element erscheinen. In der allgemeinen Situation, in der eine Liste mit mehreren Werten gewünscht wird, muss dies durch Kodieren der Liste in ein wohlgeformtes XML-Attribut [i] mit einem Format erfolgen, das über die von XML selbst definierten Werte hinausgeht. Normalerweise ist dies entweder eine durch Kommas oder Semikolons getrennte Liste oder, wenn bekannt ist, dass die einzelnen Werte keine Leerzeichen enthalten, [ii] kann eine durch Leerzeichen getrennte Liste verwendet werden.
Willkommen!
wobei das Attribut "class" sowohl den Wert "innere Begrüßungsbox" als auch die beiden CSS-Klassennamen "innere" und "Begrüßungsbox" aufweist.
XML-Deklaration
] XML-Dokumente können mit einer XML-Deklaration beginnen, die einige Informationen über sich selbst enthält. Ein Beispiel ist .

Zeichen und Flucht [ edit ]

XML-Dokumente bestehen ausschließlich aus Zeichen aus dem Unicode-Repertoire. Mit Ausnahme einer kleinen Anzahl von ausdrücklich ausgeschlossenen Steuerzeichen kann jedes von Unicode definierte Zeichen im Inhalt eines XML-Dokuments erscheinen.

XML umfasst Einrichtungen zum Identifizieren der -Codierung der Unicode-Zeichen, aus denen das Dokument besteht, und zum Ausdrücken von Zeichen, die aus dem einen oder anderen Grund nicht direkt verwendet werden können.

Gültige Zeichen [ edit ]

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

  • U + 0009 (Horizontal Tab), U + 000A (Zeile) Feed), U + 000D (Wagenrücklauf): Dies sind die einzigen in XML 1.0 akzeptierten C0-Steuerelemente;
  • U + 0020 – U + D7FF, U + E000 – U + FFFD: davon ausgenommen einige (nicht alle) Nicht-Zeichen im BMP (alle Surrogate U + FFFE und U + FFFF sind verboten);
  • U + 10000 – U + 10FFFF: Dies umfasst alle Codepunkte in ergänzenden Ebenen , einschließlich Nicht-Zeichen.

XML 1.1 [10] erweitert den Satz zulässiger Zeichen um alle oben genannten und die übrigen Zeichen im Bereich U + 0001 – U + 001F. Gleichzeitig werden jedoch die Steuerzeichen C0 und C1 außer U + 0009 (Register Horizontal), U + 000A (Zeilenvorschub), U + 000D (Wagenrücklauf) und U + 0085 (nächste Zeile) verwendet ), indem verlangt wird, dass sie in Escape-Form geschrieben werden (z. B. muss U + 0001 als oder dessen Äquivalent geschrieben werden). Bei C1-Zeichen ist diese Einschränkung eine Rückwärtsinkompatibilität. Es wurde eingeführt, um die Erkennung gängiger Codierungsfehler zu ermöglichen.

Der Codepunkt U + 0000 (Null) ist das einzige Zeichen, das in keinem XML 1.0- oder 1.1-Dokument zulässig ist.

Verschlüsselungserkennung [ edit ]

Der Unicode-Zeichensatz kann in Byte zur Speicherung oder Übertragung auf verschiedene Arten codiert werden, die als "Kodierungen" bezeichnet werden. Unicode selbst definiert Kodierungen, die das gesamte Repertoire abdecken. Bekannte umfassen UTF-8 und UTF-16. [11] Es gibt viele andere Textcodierungen, die vor Unicode vorkommen, wie ASCII und ISO / IEC 8859; Ihre Zeichenrepertoires sind in fast allen Fällen Teilmengen des Unicode-Zeichensatzes.

XML erlaubt die Verwendung aller von Unicode definierten Kodierungen sowie aller anderen Kodierungen, deren Zeichen auch in Unicode erscheinen. XML bietet auch einen Mechanismus, mit dem ein XML-Prozessor ohne Vorwissen zuverlässig bestimmen kann, welche Kodierung verwendet wird. [12] Andere Kodierungen als UTF-8 und UTF-16 werden nicht unbedingt von jedem XML-Parser erkannt.

Flucht [ edit ]

XML bietet Escape -Einrichtungen für das Einfügen von Zeichen, deren direktes Einfügen problematisch ist. Zum Beispiel:

  • Die Zeichen "<" und "&" sind wichtige Syntaxmarker und können niemals in Inhalten außerhalb eines CDATA-Abschnitts erscheinen. Die Verwendung von "<" in XML-Entity-Werten ist erlaubt, aber nicht empfohlen. [13]
  • Einige Zeichenkodierungen unterstützen nur eine Teilmenge von Unicode. Es ist beispielsweise zulässig, ein XML-Dokument in ASCII zu kodieren, aber ASCII fehlen Codepunkte für Unicode-Zeichen wie "é".
  • Es ist möglicherweise nicht möglich, das Zeichen auf dem Computer des Autors einzugeben.
  • Einige Zeichen Zeichen haben, die visuell nicht von anderen Zeichen unterschieden werden können, wie z. B. dem geschützten Leerzeichen ( ) "" und dem Leerzeichen ( ) "", und der kyrillische Großbuchstabe A ( ) "А" und der lateinische Großbuchstabe A ( ) "A".

Es gibt fünf vordefinierte Entitäten:

  • & lt; repräsentiert ""
  • & gt; repräsentiert ">";
  • & amp; repräsentiert "&";
  • repräsentiert "" ";
  • " repräsentiert" "".

Alle zulässigen Unicode-Zeichen kann mit einer numerischen Zeichenreferenz dargestellt werden. Betrachten Sie das chinesische Zeichen "中", dessen numerischer Code in Unicode hexadezimal 4E2D oder dezimal 20.013 ist. Ein Benutzer, dessen Tastatur keine Methode für die Eingabe dieses Zeichens bietet, könnte noch einfügen in einem XML-Dokument, das entweder als oder codiert ist. Ebenso könnte die Zeichenfolge "I <3 Jörg" für die Aufnahme in ein XML-Dokument als codiert werden I 3 J rF .

ist jedoch nicht zulässig, da das Nullzeichen eines der Steuerelemente ist, die von XML ausgeschlossen sind, auch wenn eine numerische Zeichenreferenz verwendet wird. [14] Ein alternativer Codierungsmechanismus wie Base64 wird benötigt, um solche Zeichen darzustellen.

[ edit ]

Kommentare können an einer beliebigen Stelle in einem Dokument außerhalb einer anderen Auszeichnung erscheinen. Kommentare dürfen nicht vor der XML-Deklaration erscheinen. Kommentare beginnen mit <! - und enden mit -> . Aus Gründen der Kompatibilität mit SGML ist die Zeichenfolge "-" (doppelter Bindestrich) innerhalb von Kommentaren nicht zulässig; [15] bedeutet, dass Kommentare nicht geschachtelt werden können. Das kaufmännische Und hat innerhalb von Kommentaren keine besondere Bedeutung. Daher werden Entitäts- und Zeichenreferenzen nicht als solche erkannt. Es gibt keine Möglichkeit, Zeichen außerhalb des Zeichensatzes der Dokumentcodierung darzustellen.

Ein Beispiel für einen gültigen Kommentar: <! - keine Notwendigkeit zu entkommen und dergleichen in Kommentaren ->

Internationale Verwendung [ edit ]

XML 1.0 (fünfte Ausgabe) und XML 1.1 unterstützt die direkte Verwendung von nahezu allen Unicode-Zeichen in Elementnamen, Attributen, Kommentaren, Zeichendaten und Verarbeitungsanweisungen (mit Ausnahme derjenigen, die in XML selbst eine besondere symbolische Bedeutung haben, z. B. das Zeichen "<"). Im Folgenden finden Sie ein wohlgeformtes XML-Dokument mit chinesischen, armenischen und kyrillischen Zeichen:

  <俄语   լեզու =  "65" >   

Wohlgeformtheit und Fehlerbehandlung [ edit edit [19599105] Die XML-Spezifikation definiert ein XML-Dokument als einen wohlgeformten Text. Dies bedeutet, dass es einer Liste von in der Spezifikation enthaltenen Syntaxregeln entspricht. Einige wichtige Punkte in der ziemlich langen Liste sind:

  • Das Dokument enthält nur ordnungsgemäß codierte, gültige Unicode-Zeichen.
  • Keine der speziellen Syntaxzeichen wie [ und & erscheinen, außer wenn sie ihre Markup-Delineation-Rollen ausführen. 19659065] Das Start-Tag, das End-Tag und das Tag mit leeren Elementen, die Elemente begrenzen, sind korrekt verschachtelt, wobei keines fehlt und sich nicht überschneidet.
  • Tag-Namen unterscheiden zwischen Groß- und Kleinschreibung. Start-Tag und End-Tag müssen genau übereinstimmen.
  • Tag-Namen dürfen keines der Zeichen enthalten! &quot;# $% & &#39;() * +, /; <=>? @ [] ^` {|} ~, noch ein Leerzeichen und kann nicht mit &quot;-&quot;, &quot;.&quot; oder einer numerischen Ziffer beginnen.
  • Ein einzelnes Stammelement enthält alle anderen Elemente.

Die Definition eines XML-Dokuments schließt Texte aus, die Verstöße gegen die Regeln der Wohlgeformtheit enthalten, und sind einfach kein XML. Ein XML-Prozessor, der auf einen solchen Verstoß stößt, ist erforderlich, um solche Fehler zu melden und die normale Verarbeitung einzustellen. Diese Richtlinie wird gelegentlich als &quot;drakonische Fehlerbehandlung&quot; bezeichnet &quot;steht im Gegensatz zu dem Verhalten von Programmen, die HTML verarbeiten, die selbst bei schwerwiegenden Auszeichnungsfehlern ein vernünftiges Ergebnis liefern sollen. [16] Die XML-Politik in diesem Bereich wurde als Verstoß gegen das Postel-Gesetz ( &quot;Seien Sie in dem, was Sie senden, konservativ; seien Sie in dem, was Sie akzeptieren, liberal.&quot; [17]

Die XML-Spezifikation ification definiert ein gültiges XML-Dokument als ein wohlgeformtes XML-Dokument, das auch den Regeln einer Document Type Definition (DTD) entspricht. [18][19]

Schemata und Validierung [ edit ]

Ein XML-Dokument kann nicht nur gut geformt sein, sondern auch gültig sein . Dies bedeutet, dass es einen Verweis auf eine DTD (Document Type Definition) enthält und dass seine Elemente und Attribute in dieser DTD deklariert sind und den von der DTD festgelegten grammatischen Regeln für sie entsprechen.

XML-Prozessoren werden als klassifiziert, wobei oder 19459018 nicht validierend validiert werden, abhängig davon, ob sie XML-Dokumente auf Gültigkeit prüfen oder nicht. Ein Prozessor, der einen Gültigkeitsfehler entdeckt, muss diesen melden können, kann jedoch die normale Verarbeitung fortsetzen.

Eine DTD ist ein Beispiel für ein Schema oder Grammatik . Seit der ersten Veröffentlichung von XML 1.0 wurde im Bereich der Schemasprachen für XML umfangreiche Arbeit geleistet. Solche Schemasprachen beschränken normalerweise die Menge der Elemente, die in einem Dokument verwendet werden können, welche Attribute auf sie angewendet werden können, die Reihenfolge, in der sie erscheinen, und die zulässigen Eltern / Kind-Beziehungen.

Document Type Definition [ edit ]

Die älteste Schemasprache für XML ist die von SGML übernommene Document Type Definition (DTD).

DTDs haben folgende Vorteile:

  • Die Unterstützung von DTDs ist aufgrund ihrer Einbeziehung in den XML 1.0-Standard allgegenwärtig.
  • DTDs sind im Vergleich zu elementbasierten Schemasprachen knapp und stellen somit mehr Informationen auf einem einzigen Bildschirm dar.
  • DTDs ermöglichen die Deklaration von Standardpublikum Entity-Sets für die Veröffentlichung von Zeichen.
  • DTDs definieren einen Dokumententyp und nicht die von einem Namespace verwendeten Typen, sodass alle Einschränkungen für ein Dokument in einer einzelnen Sammlung zusammengefasst werden.

DTDs weisen die folgenden Einschränkungen auf:

  • Sie haben keine explizite Unterstützung für neuere Funktionen von XML, vor allem für Namensräume.
  • Sie haben keine Ausdruckskraft. XML-DTDs sind einfacher als SGML-DTDs, und es gibt bestimmte Strukturen, die mit regulären Grammatiken nicht ausgedrückt werden können. DTDs unterstützen nur rudimentäre Datentypen.
  • Sie sind nicht lesbar. DTD-Designer verwenden normalerweise Parameterentitäten (die sich im Wesentlichen wie Textmakros verhalten), was die Definition komplexer Grammatiken erleichtert, jedoch auf Kosten der Klarheit.
  • Sie verwenden eine Syntax, die auf der von SGML geerbten regulären Ausdruckssyntax basiert , um das Schema zu beschreiben. Typische XML-APIs wie SAX versuchen nicht, Anwendungen eine strukturierte Repräsentation der Syntax zu bieten, so dass sie für Programmierer weniger zugänglich ist als eine elementbasierte Syntax.

Zwei besondere Merkmale, die DTDs von anderen Schematypen unterscheiden, sind die syntaktische Unterstützung für das Einbetten einer DTD in XML-Dokumente und für das Definieren von Entities bei denen es sich um beliebige Text- und / oder Markierungsfragmente handelt, die der XML-Prozessor in die DTD selbst und in das XML-Dokument einfügt, wo immer sie referenziert werden, wie z Charakter entgeht.

Die DTD-Technologie wird aufgrund ihrer Allgegenwart immer noch in vielen Anwendungen eingesetzt.

XML-Schema [ edit ]

Eine neuere Schemasprache, die vom W3C als Nachfolger von DTDs beschrieben wird, ist XML-Schema, das häufig vom Initialismus für XML-Schema-Instanzen bezeichnet wird. XSD (XML Schema Definition). XSDs sind bei der Beschreibung von XML-Sprachen weitaus leistungsfähiger als DTDs. Sie verwenden ein umfangreiches Datentypisierungssystem und ermöglichen detailliertere Einschränkungen für die logische Struktur eines XML-Dokuments. XSDs verwenden auch ein XML-basiertes Format, das die Verwendung gewöhnlicher XML-Tools zu deren Verarbeitung ermöglicht.

xs: Schemaelement, das ein Schema definiert:

  &lt;xs: schema   > &quot;http://www.w3.org/2001/XMLSchema&quot; &gt;  

RELAX NG [ bearbeiten ]

RELAX NG (Normale Sprache für XML Next Generation) wurde ursprünglich von OASIS festgelegt und ist jetzt ein Standard (Teil 2: Validierung mit regelmäßiger Grammatik von ISO / IEC 19757 - DSDL) . RELAX NG-Schemas können entweder in einer XML-basierten Syntax oder in einer kompakteren Nicht-XML-Syntax geschrieben werden. Die beiden Syntaxen sind isomorph und das Konvertierungstool von James Clark - Trang - kann ohne Informationsverlust zwischen ihnen konvertieren. RELAX NG verfügt über ein einfacheres Definitions- und Validierungs-Framework als XML Schema, wodurch die Verwendung und Implementierung vereinfacht wird. Es kann auch Datentyp-Framework-Plug-Ins verwenden. Ein Autor eines RELAX NG-Schemas kann beispielsweise verlangen, dass Werte in einem XML-Dokument den Definitionen in XML-Schema-Datentypen entsprechen.

Schematron [ edit ]

Schematron ist eine Sprache, in der Aussagen über das Vorhandensein oder Fehlen von Mustern in einem XML-Dokument gemacht werden. Normalerweise werden XPath-Ausdrücke verwendet. Schematron ist heute Standard (Teil 3: Regelbasierte Validierung von ISO / IEC 19757 - DSDL).

DSDL und andere Schemasprachen [ edit ]

DSDL (Document Schema Definition Languages) ist eine mehrteilige ISO / IEC-Norm (ISO / IEC 19757), die eine umfassende zusammenführt eine Reihe kleiner Schemasprachen, von denen jede auf spezifische Probleme abzielt. DSDL umfasst die vollständige und kompakte RELAX NG-Syntax, die Schematron-Assertionssprache und Sprachen zum Definieren von Datentypen, Zeichenrepertoire-Einschränkungen, Umbenennen und Entitätserweiterung sowie das auf Namensraum basierende Routing von Dokumentfragmenten zu verschiedenen Validatoren. DSDL-Schemasprachen haben noch keine Hersteller-Unterstützung für XML-Schemas und sind gewissermaßen eine Basisreaktion industrieller Verleger auf den mangelnden Nutzen von XML-Schemas für die Veröffentlichung.

Einige Schemasprachen beschreiben nicht nur die Struktur eines bestimmten XML-Formats, sondern bieten auch eingeschränkte Möglichkeiten, die Verarbeitung einzelner XML-Dateien zu beeinflussen, die diesem Format entsprechen. DTDs und XSDs haben beide diese Fähigkeit; Sie können zum Beispiel die Erweiterungsfunktion von Infoset bereitstellen und Standardwerte festlegen. RELAX NG und Schematron bieten diese absichtlich nicht an.

Zugehörige Spezifikationen [ edit ]

Ein Cluster von Spezifikationen, der eng mit XML zusammenhängt, wurde entwickelt und begann kurz nach der ersten Veröffentlichung von XML 1.0. Häufig wird der Begriff &quot;XML&quot; verwendet, um auf XML zusammen mit einer oder mehreren dieser anderen Technologien zu verweisen, die als Teil des XML-Kerns gelten.

  • XML-Namespaces ermöglichen, dass dasselbe Dokument XML-Elemente und Attribute enthält, die aus verschiedenen Vokabeln stammen, ohne dass es zu Namenskollisionen kommt. Obwohl XML Namespaces nicht Teil der XML-Spezifikation selbst sind, unterstützt praktisch jede XML-Software auch XML Namespaces.
  • XML Base definiert das Attribut xml: base mit dem die Basis für die Auflösung von festgelegt werden kann relative URI-Verweise innerhalb eines einzelnen XML-Elements.
  • XML Information Set oder XML Infoset ist ein abstraktes Datenmodell für XML-Dokumente im Sinne von Informationselementen . Das Infoset wird häufig in den Spezifikationen von XML-Sprachen verwendet, um die Beschreibung der Einschränkungen in den XML-Konstrukten zu erleichtern, die diese Sprachen zulassen.
  • XSL (Extensible Stylesheet Language) ist eine Familie von Sprachen, die zum Transformieren und Rendern von XML-Dokumenten in drei Teile verwendet werden parts:
  • XSLT (XSL Transformations), eine XML-Sprache zum Umwandeln von XML-Dokumenten in andere XML-Dokumente oder andere Formate wie HTML, Nur-Text oder XSL-FO. XSLT ist sehr eng mit XPath gekoppelt, mit dem es Komponenten des XML-Eingabedokuments anspricht, hauptsächlich Elemente und Attribute.
  • XSL-FO (XSL Formatting Objects), eine XML-Sprache zum Rendern von XML-Dokumenten, die häufig zur Erzeugung von PDFs verwendet wird
  • XPath (XML Path Language), eine Nicht-XML-Sprache zum Adressieren der Komponenten (Elemente, Attribute usw.) eines XML-Dokuments. XPath wird in anderen Core-XML-Spezifikationen und in Programmierbibliotheken für den Zugriff auf XML-codierte Daten häufig verwendet.
  • XQuery (XML Query) ist eine XML-Abfragesprache, die stark in XPath und XML Schema verwurzelt ist. Es bietet Methoden für den Zugriff, die Bearbeitung und die Rückgabe von XML und ist hauptsächlich als Abfragesprache für XML-Datenbanken konzipiert.
  • XML Signature definiert Syntax und Verarbeitungsregeln zum Erstellen digitaler Signaturen auf XML-Inhalten.
  • XML Encryption definiert Syntax und Verarbeitung Regeln für die Verschlüsselung von XML-Inhalten.
  • XML-Modell (Teil 11: Schema Association von ISO / IEC 19757 - DSDL) definiert ein Mittel, um jedes XML-Dokument mit einem der oben genannten Schematypen zu verknüpfen. [19659067] Einige andere Spezifikationen, die im Rahmen des &quot;XML Core&quot; konzipiert wurden, fanden keine breite Akzeptanz, darunter XInclude, XLink und XPointer.

    Programmierschnittstellen [ edit ]

    Zu den Entwurfszielen von XML gehören: &quot;Es soll einfach sein, Programme zu schreiben, die XML-Dokumente verarbeiten.&quot; [5] Trotzdem die XML-Spezifikation enthält fast keine Informationen darüber, wie Programmierer eine solche Verarbeitung durchführen könnten. Die XML-Infoset-Spezifikation bietet ein Vokabular, das auf die Konstrukte in einem XML-Dokument verweist, enthält jedoch keine Anweisungen zum Zugriff auf diese Informationen. Eine Vielzahl von APIs für den Zugriff auf XML wurde entwickelt und verwendet, und einige wurden standardisiert.

    Bestehende APIs für die XML-Verarbeitung fallen normalerweise in folgende Kategorien:

    • Stream-orientierte APIs, auf die von einer Programmiersprache aus zugegriffen werden kann, z. B. SAX und StAX.
    • Tree-Traversal-APIs, die von einer Programmiersprache aus, z. B. DOM.
    • XML-Datenbindung, die eine automatisierte Übersetzung zwischen einer XML-Dokument- und Programmiersprachenobjekte.
    • Deklarative Transformationssprachen wie XSLT und XQuery.
    • Syntaxerweiterungen für allgemeine Programmiersprachen, z. B. LINQ und Scala.

    Streamorientierte Einrichtungen erfordern weniger Speicher und Für bestimmte Aufgaben, die auf einem linearen Durchlauf eines XML-Dokuments basieren, sind sie schneller und einfacher als andere Alternativen. Tree-Traversal- und Datenbindungs-APIs erfordern in der Regel die Verwendung von mehr Arbeitsspeicher, werden jedoch häufig für die Verwendung durch Programmierer als bequemer empfunden. Einige beinhalten den deklarativen Abruf von Dokumentkomponenten über die Verwendung von XPath-Ausdrücken.

    XSLT ist für die deklarative Beschreibung von XML-Dokumentumwandlungen konzipiert und wurde sowohl in serverseitigen Paketen als auch in Webbrowsern umfangreich implementiert. XQuery überlappt XSLT in seiner Funktionalität, ist jedoch eher für die Suche in großen XML-Datenbanken konzipiert.

    Einfache API für XML [ edit ]

    Die einfache API für XML (SAX) ist eine lexikalische, ereignisgesteuerte API, bei der ein Dokument seriell gelesen wird und der Inhalt als angegeben wird Callbacks für verschiedene Methoden eines Handlerobjekts des Benutzerentwurfs. Die Implementierung von SAX ist schnell und effizient, aber es ist schwierig, Informationen nach dem Zufallsprinzip aus dem XML zu extrahieren, da der Anwendungsautor dadurch belastet wird, welcher Teil des Dokuments gerade verarbeitet wird. Es eignet sich besser für Situationen, in denen bestimmte Arten von Informationen immer gleich behandelt werden, unabhängig davon, wo sie im Dokument vorkommen.

    Pull-Analyse [ edit ]

    Bei der Pull-Analyse [20] wird das Dokument als eine Reihe von Elementen behandelt, die nacheinander anhand des Iterator-Entwurfsmusters gelesen werden. Dies ermöglicht das Schreiben von rekursiven Abstiegs-Parsern, bei denen die Struktur des Codes, der die Analyse durchführt, die Struktur der XML-Analyse spiegelt, und die zwischengespeicherten Ergebnisse können als lokale Variablen innerhalb der Methoden, die die Analyse ausführen, abgerufen werden. als Methodenparameter) in untergeordnete Methoden oder als Rückgabewert für Methoden an übergeordnete Methoden zurückgegeben. Beispiele für Pull-Parser sind Data :: Edit :: Xml in Perl, StAX in der Programmiersprache Java, XMLPullParser in Smalltalk, XMLReader in PHP, ElementTree.iterparse in Python, System.Xml.XmlReader in .NET Framework und das DOM Traversal-API (NodeIterator und TreeWalker).

    Ein Pull-Parser erstellt einen Iterator, der nacheinander die verschiedenen Elemente, Attribute und Daten in einem XML-Dokument durchsucht. Code, der diesen Iterator verwendet, kann das aktuelle Element testen (z. B. um festzustellen, ob es sich um ein Start-Tag oder ein End-Tag oder um Text handelt) und seine Attribute (lokaler Name, Namespace, Werte der XML-Attribute, Wert von) überprüfen Text usw.) und kann den Iterator auch zum nächsten Element verschieben. Der Code kann somit beim Durchlaufen des Dokuments Informationen aus dem Dokument extrahieren. Der Ansatz des rekursiven Abstiegs neigt dazu, Daten als typisierte lokale Variablen im Code, der die Analyse durchführt, beizubehalten, während SAX zum Beispiel normalerweise einen Parser benötigt, um Zwischendaten innerhalb eines Stapels von Elementen, die Elternelemente des Elements sind, manuell zu verwalten analysiert werden. Pull-Parsing-Code kann einfacher verstanden und verwaltet werden als SAX-Parsing-Code.

    Document Object Model [ edit ]

    Das Document Object Model (DOM) ist eine API, mit der das gesamte Dokument so navigiert werden kann, als wäre es ein Baum von Knotenobjekten, die das Dokument darstellen Inhalt. Ein DOM-Dokument kann von einem Parser erstellt oder manuell (mit Einschränkungen) von Benutzern erstellt werden. Datentypen in DOM-Knoten sind abstrakt. Implementierungen stellen ihre eigenen, für die Programmiersprache spezifischen Bindungen bereit. DOM-Implementierungen sind in der Regel speicherintensiv, da in der Regel das gesamte Dokument in den Speicher geladen und als Baumstruktur von Objekten erstellt werden muss, bevor der Zugriff ermöglicht wird.

    Datenbindung [ edit ]

    XML-Datenbindung ist die Bindung von XML-Dokumenten an eine Hierarchie von benutzerdefinierten und stark typisierten Objekten, im Gegensatz zu den generischen Objekten, die von einem DOM-Parser erstellt werden . Dieser Ansatz vereinfacht die Codeentwicklung und ermöglicht in vielen Fällen das Erkennen von Problemen zur Kompilierzeit und nicht zur Laufzeit. Es eignet sich für Anwendungen, bei denen die Dokumentstruktur zum Zeitpunkt der Erstellung der Anwendung bekannt und festgelegt ist. Beispiele für Datenbindungssysteme sind die Java-Architektur für XML-Bindung (JAXB), XML-Serialisierung in .NET Framework [21] und XML-Serialisierung in gSOAP.

    XML als Datentyp [ edit ]

    XML ist in anderen Sprachen als erstklassiger Datentyp erschienen. Die Erweiterung ECMAScript for XML (E4X) für die Sprache ECMAScript / JavaScript definiert explizit zwei spezifische Objekte (XML und XMLList) für JavaScript, die XML-Dokumentknoten und XML-Knotenlisten als separate Objekte unterstützen und eine Punktnotation verwenden, die Eltern-Kind-Beziehungen angibt [22] E4X wird von den Browsern Mozilla 2.5+ (obwohl jetzt nicht mehr unterstützt) und Adobe Actionscript unterstützt, wurde jedoch nicht allgemeiner angenommen. Ähnliche Notationen werden in der LINQ-Implementierung von Microsoft für Microsoft .NET 3.5 und höher und in Scala (die Java-VM verwendet) verwendet. Die Open-Source-Anwendung xmlsh, die eine Linux-ähnliche Shell mit speziellen Funktionen für die XML-Manipulation bereitstellt, behandelt XML in ähnlicher Weise als Datentyp mit der <[ ]> -Notation. [23] Das Resource Description Framework definiert einen Datentyp rdf: XMLLiteral zum Umwickeln von kanonischem XML. [24] Facebook hat Erweiterungen für die PHP- und JavaScript-Sprachen erstellt, die in ähnlicher Weise wie E4X XML zur Kernsyntax hinzufügen, nämlich XHP und JSX.

    History [ edit ]

    XML ist ein Anwendungsprofil von SGML (ISO 8879). [25]

    Die Vielseitigkeit von SGML für dynamische Informationen display was understood by early digital media publishers in the late 1980s prior to the rise of the Internet.[26][27] By the mid-1990s some practitioners of SGML had gained experience with the then-new World Wide Web, and believed that SGML offered solutions to some of the problems the Web was likely to face as it grew. Dan Connolly added SGML to the list of W3C&#39;s activities when he joined the staff in 1995; work began in mid-1996 when Sun Microsystems engineer Jon Bosak developed a charter and recruited collaborators. Bosak was well connected in the small community of people who had experience both in SGML and the Web.[28]

    XML was compiled by a working group of eleven members,[29] supported by a (roughly) 150-member Interest Group. Technical debate took place on the Interest Group mailing list and issues were resolved by consensus or, when that failed, majority vote of the Working Group. A record of design decisions and their rationales was compiled by Michael Sperberg-McQueen on December 4, 1997.[30]James Clark served as Technical Lead of the Working Group, notably contributing the empty-element syntax and the name &quot;XML&quot;. Other names that had been put forward for consideration included &quot;MAGMA&quot; (Minimal Architecture for Generalized Markup Applications), &quot;SLIM&quot; (Structured Language for Internet Markup) and &quot;MGML&quot; (Minimal Generalized Markup Language). The co-editors of the specification were originally Tim Bray and Michael Sperberg-McQueen. Halfway through the project Bray accepted a consulting engagement with Netscape, provoking vociferous protests from Microsoft. Bray was temporarily asked to resign the editorship. This led to intense dispute in the Working Group, eventually solved by the appointment of Microsoft&#39;s Jean Paoli as a third co-editor.

    The XML Working Group never met face-to-face; the design was accomplished using a combination of email and weekly teleconferences. The major design decisions were reached in a short burst of intense work between August and November 1996,[31] when the first Working Draft of an XML specification was published.[32] Further design work continued through 1997, and XML 1.0 became a W3C Recommendation on February 10, 1998.

    Sources[edit]

    XML is a profile of an ISO standard SGML, and most of XML comes from SGML unchanged. From SGML comes the separation of logical and physical structures (elements and entities), the availability of grammar-based validation (DTDs), the separation of data and metadata (elements and attributes), mixed content, the separation of processing from representation (processing instructions), and the default angle-bracket syntax. Removed were the SGML declaration (XML has a fixed delimiter set and adopts Unicode as the document character set).

    Other sources of technology for XML were the TEI (Text Encoding Initiative), which defined a profile of SGML for use as a &quot;transfer syntax&quot;; and HTML, in which elements were synchronous with their resource, document character sets were separate from resource encoding, the xml:lang attribute was invented, and (like HTTP) metadata accompanied the resource rather than being needed at the declaration of a link. The ERCS(Extended Reference Concrete Syntax) project of the SPREAD (Standardization Project Regarding East Asian Documents) project of the ISO-related China/Japan/Korea Document Processing expert group was the basis of XML 1.0&#39;s naming rules; SPREAD also introduced hexadecimal numeric character references and the concept of references to make available all Unicode characters. To support ERCS, XML and HTML better, the SGML standard IS 8879 was revised in 1996 and 1998 with WebSGML Adaptations. The XML header followed that of ISO HyTime.

    Ideas that developed during discussion that are novel in XML included the algorithm for encoding detection and the encoding header, the processing instruction target, the xml:space attribute, and the new close delimiter for empty-element tags. The notion of well-formedness as opposed to validity (which enables parsing without a schema) was first formalized in XML, although it had been implemented successfully in the Electronic Book Technology &quot;Dynatext&quot; software;[33] the software from the University of Waterloo New Oxford English Dictionary Project; the RISP LISP SGML text processor at Uniscope, Tokyo; the US Army Missile Command IADS hypertext system; Mentor Graphics Context; Interleaf and Xerox Publishing System.

    Versions[edit]

    There are two current versions of XML. The first (XML 1.0) was initially defined in 1998. It has undergone minor revisions since then, without being given a new version number, and is currently in its fifth edition, as published on November 26, 2008. It is widely implemented and still recommended for general use.

    The second (XML 1.1) was initially published on February 4, 2004, the same day as XML 1.0 Third Edition,[34] and is currently in its second edition, as published on August 16, 2006. It contains features (some contentious) that are intended to make XML easier to use in certain cases.[35] The main changes are to enable the use of line-ending characters used on EBCDIC platforms, and the use of scripts and characters absent from Unicode 3.2. XML 1.1 is not very widely implemented and is recommended for use only by those who need its particular features.[36]

    Prior to its fifth edition release, XML 1.0 differed from XML 1.1 in having stricter requirements for characters available for use in element and attribute names and unique identifiers: in the first four editions of XML 1.0 the characters were exclusively enumerated using a specific version of the Unicode standard (Unicode 2.0 to Unicode 3.2.) The fifth edition substitutes the mechanism of XML 1.1, which is more future-proof but reduces redundancy. The approach taken in the fifth edition of XML 1.0 and in all editions of XML 1.1 is that only certain characters are forbidden in names, and everything else is allowed to accommodate suitable name characters in future Unicode versions. In the fifth edition, XML names may contain characters in the Balinese, Cham, or Phoenician scripts among many others added to Unicode since Unicode 3.2.[35]

    Almost any Unicode code point can be used in the character data and attribute values of an XML 1.0 or 1.1 document, even if the character corresponding to the code point is not defined in the current version of Unicode. In character data and attribute values, XML 1.1 allows the use of more control characters than XML 1.0, but, for &quot;robustness&quot;, most of the control characters introduced in XML 1.1 must be expressed as numeric character references (and #x7F through #x9F, which had been allowed in XML 1.0, are in XML 1.1 even required to be expressed as numeric character references[37]). Among the supported control characters in XML 1.1 are two line break codes that must be treated as whitespace. Whitespace characters are the only control codes that can be written directly.

    There has been discussion of an XML 2.0, although no organization has announced plans for work on such a project. XML-SW (SW for skunkworks), written by one of the original developers of XML,[38] contains some proposals for what an XML 2.0 might look like: elimination of DTDs from syntax, integration of namespaces, XML Base and XML Information Set into the base standard.

    The World Wide Web Consortium also has an XML Binary Characterization Working Group doing preliminary research into use cases and properties for a binary encoding of XML Information Set. The working group is not chartered to produce any official standards. Since XML is by definition text-based, ITU-T and ISO are using the name Fast Infoset for their own binary infoset to avoid confusion (see ITU-T Rec. X.891 and ISO/IEC 24824-1).

    Criticism[edit]

    XML and its extensions have regularly been criticized for verbosity, complexity and redundancy.[39] Mapping the basic tree model of XML to type systems of programming languages or databases can be difficult, especially when XML is used for exchanging highly structured data between applications, which was not its primary design goal. However, XML data binding systems allow applications to access XML data directly from objects representing a data structure of the data in the programming language used, which ensures type safety, rather than using the DOM or SAX to retrieve data from a direct representation of the XML itself. This is accomplished by automatically creating a mapping between elements of the XML schema XSD of the document and members of a class to be represented in memory. Other criticisms attempt to refute the claim that XML is a self-describing language[40] (though the XML specification itself makes no such claim). JSON, YAML, and S-Expressions are frequently proposed as simpler alternatives (see Comparison of data serialization formats);[41] that focus on representing highly structured data rather than documents, which may contain both highly structured and relatively unstructured content. However, W3C standardized XML schema specifications offer a broader range of structured XSD data types compared to simpler serialization formats and offer modularity and reuse through XML namespace.

    See also[edit]

    1. ^ i.e., embedded quote characters would be a problem
    2. ^ A common example of this is CSS class or identifier names.

    References[edit]

    1. ^ &quot;XML Media Types, RFC 7303&quot;. Internettechnik-Arbeitsgruppe. July 2014.
    2. ^ &quot;XML 1.0 Specification&quot;. World Wide Web Consortium. Retrieved 22 August 2010.
    3. ^ &quot;XML and Semantic Web W3C Standards Timeline&quot; (PDF). Dblab.ntua.gr. Retrieved 14 August 2016.
    4. ^ &quot;W3C DOCUMENT LICENSE&quot;. W3.org. Retrieved 16 November 2017.
    5. ^ a b &quot;XML 1.0 Origin and Goals&quot;. W3.org. Retrieved 14 August 2016.
    6. ^ Fennell, Philip (June 2013). &quot;Extremes of XML&quot;. XML London 2013: 80–86. doi:10.14337/XMLLondon13.Fennell01. ISBN 978-0-9926471-0-0.
    7. ^ &quot;XML Applications and Initiatives&quot;. Xml.coverages.org. Retrieved 16 November 2017.
    8. ^ &quot;appleexaminer.com: &quot;PLIST files&quot;&quot;. The Apple Examiner. Retrieved 16 November 2017.
    9. ^ &quot;Extensible Markup Language (XML) 1.0 (Fifth Edition)&quot;. World Wide Web Konsortium. 2008-11-26. Retrieved 23 November 2012.
    10. ^ &quot;Extensible Markup Language (XML) 1.1 (Second Edition)&quot;. World Wide Web Consortium. Retrieved 22 August 2010.
    11. ^ &quot;Characters vs. Bytes&quot;. Tbray.org. Retrieved 16 November 2017.
    12. ^ &quot;Autodetection of Character Encodings&quot;. W3.org. Retrieved 16 November 2017.
    13. ^ &quot;Extensible Markup Language (XML) 1.0 (Fifth Edition)&quot;. W3.org. Retrieved 16 November 2017.
    14. ^ &quot;W3C I18N FAQ: HTML, XHTML, XML and Control Codes&quot;. W3.org. Retrieved 16 November 2017.
    15. ^ &quot;Extensible Markup Language (XML)&quot;. W3.org. Retrieved 16 November 2017. Section &quot;Comments&quot;
    16. ^ Pilgrim, Mark (2004). &quot;The history of draconian error handling in XML&quot;. Web.archive.org. Archived from the original on 2011-07-26. Retrieved 18 July 2013.
    17. ^ &quot;There are no exceptions to Postel&#39;s Law [dive into mark]&quot;. Web.archive.org. Archived from the original on 2011-05-14. Retrieved 22 April 2013.
    18. ^ &quot;XML Notepad&quot;. Xmlnotepad/codeplex.com. Retrieved 16 November 2017.
    19. ^ &quot;XML Notepad 2007&quot;. Microsoft.com. Retrieved 16 November 2017.
    20. ^ DuCharme, Bob. &quot;Push, Pull, Next!&quot;. Xml.com. Retrieved 16 November 2017.
    21. ^ &quot;XML Serialization in the .NET Framework&quot;. Msdn.microsoft.com. Retrieved 31 July 2009.
    22. ^ &quot;Processing XML with E4X&quot;. Mozilla Developer Center. Mozilla Foundation.
    23. ^ &quot;XML Shell: Core Syntax&quot;. Xmlsh.org. 2010-05-13. Retrieved 22 August 2010.
    24. ^ &quot;Resource Description Framework (RDF): Concepts and Abstract Syntax&quot;. W3.org. Retrieved 22 August 2010.
    25. ^ &quot;ISO/IEC 19757-3&quot;. ISO/IEC. 1 June 2006: vi.
    26. ^ Bray, Tim (February 2005). &quot;A conversation with Tim Bray: Searching for ways to tame the world&#39;s vast stores of information&quot;. Association for Computing Machinery&#39;s &quot;Queue site&quot;. Retrieved 16 April 2006.
    27. ^ edited by Sueann Ambron; Kristina Hooper & foreword by John Sculley. (1988). &quot;Publishers, multimedia, and interactivity&quot;. Interactive multimedia. Cobb Group. ISBN 1-55615-124-1.CS1 maint: Extra text: authors list (link)
    28. ^ Eliot Kimber (2006). &quot;XML is 10&quot;. Drmacros-xml-rants.blogspot.com. Retrieved 16 November 2017.
    29. ^ The working group was originally called the &quot;Editorial Review Board.&quot; The original members and seven who were added before the first edition was complete, are listed at the end of the first edition of the XML Recommendation, at http://www.w3.org/TR/1998/REC-xml-19980210.
    30. ^ &quot;Reports From the W3C SGML ERB to the SGML WG And from the W3C XML ERB to the XML SIG&quot;. W3.org. Retrieved 31 July 2009.
    31. ^ &quot;Oracle Technology Network for Java Developers - Oracle Technology Network - Oracle&quot;. Java.sun.com. Retrieved 16 November 2017.
    32. ^ &quot;Extensible Markup Language (XML)&quot;. W3.org. 1996-11-14. Retrieved 31 July 2009.
    33. ^ Jon Bosak; Sun Microsystems (2006-12-07). &quot;Closing Keynote, XML 2006&quot;. 2006.xmlconference.org. Archived from the original on 2007-07-11. Retrieved 31 July 2009.
    34. ^ &quot;Extensible Markup Language (XML) 1.0 (Third Edition)&quot;. W3.org. Retrieved 22 August 2010.
    35. ^ a b &quot;Extensible Markup Language (XML) 1.1 (Second Edition) , Rationale and list of changes for XML 1.1&quot;. W3.org. Retrieved 20 January 2012.
    36. ^ Harold, Elliotte Rusty (2004). Effective XML. Addison-Wesley. pp. 10–19. ISBN 0-321-15040-6.
    37. ^ &quot;Extensible Markup Language (XML) 1.1 (Second Edition)&quot;. W3.org. Retrieved 22 August 2010.
    38. ^ Tim Bray: Extensible Markup Language, SW (XML-SW). 2002-02-10
    39. ^ &quot;XML: The Angle Bracket Tax&quot;. Codinghorror.com. Retrieved 16 November 2017.
    40. ^ &quot;The Myth of Self-Describing XML&quot; (PDF). Workflow.healthbase.info. September 2003. Retrieved 16 November 2017.
    41. ^ &quot;What usable alternatives to XML syntax do you know?&quot;. Stackoverflow.com. Retrieved 16 November 2017.

    Further reading[edit]

    External links[edit]

No comments:

Post a Comment