Ich bin neu in XML und versuche, die Grundlagen zu verstehen. Ich habe die folgende Zeile in "Lernen von XML" gelesen, aber es ist mir immer noch nicht klar. Kann mich jemand auf ein Buch oder eine Website verweisen, die diese Grundlagen klar erklärt?
Vom Lernen von XML :
Die XML-Deklaration beschreibt einige der allgemeinsten Eigenschaften des Dokuments und teilt dem XML-Prozessor mit, dass er einen XML-Parser zur Interpretation dieses Dokuments benötigt.
Was bedeutet das?
Ich verstehe den xml version
Teil - sowohl doc als auch user of doc sollten in derselben XML-Version "sprechen". Aber was ist mit dem encoding
Teil? Warum ist das notwendig?
Antworten:
Um das Attribut "Kodierung" zu verstehen, müssen Sie den Unterschied zwischen Bytes und Zeichen verstehen .
Stellen Sie sich Bytes als Zahlen zwischen 0 und 255 vor, während Zeichen Dinge wie "a", "1" und "Ä" sind. Der Satz aller verfügbaren Zeichen wird als Zeichensatz bezeichnet .
Jedes Zeichen hat eine Folge von einem oder mehreren Bytes, die zur Darstellung verwendet werden. Die genaue Anzahl und der genaue Wert der Bytes hängen jedoch von der verwendeten Codierung ab , und es gibt viele verschiedene Codierungen.
Die meisten Codierungen basieren auf einem alten Zeichensatz und einer Codierung namens ASCII, die ein einzelnes Byte pro Zeichen (tatsächlich nur 7 Bit) ist und 128 Zeichen enthält, einschließlich vieler der im US-Englisch verwendeten allgemeinen Zeichen.
Hier sind beispielsweise 6 Zeichen im ASCII-Zeichensatz, die durch die Werte 60 bis 65 dargestellt werden.
Im vollständigen ASCII-Satz ist der niedrigste verwendete Wert Null und der höchste 127 (beide sind versteckte Steuerzeichen).
Sobald Sie jedoch mehr Zeichen benötigen, als das grundlegende ASCII bereitstellt (z. B. Buchstaben mit Akzenten, Währungssymbolen, Grafiksymbolen usw.), ist ASCII nicht mehr geeignet und Sie benötigen etwas umfangreicheres. Sie benötigen mehr Zeichen (einen anderen Zeichensatz) und eine andere Codierung, da 128 Zeichen nicht ausreichen, um alle Zeichen aufzunehmen. Einige Codierungen bieten ein Byte (256 Zeichen) oder bis zu sechs Bytes.
Im Laufe der Zeit wurden viele Codierungen erstellt. In der Windows-Welt gibt es CP1252 oder ISO-8859-1, während Linux-Benutzer UTF-8 bevorzugen. Java verwendet UTF-16 nativ.
Eine Folge von Bytewerten für ein Zeichen in einer Codierung kann für ein völlig anderes Zeichen in einer anderen Codierung stehen oder sogar ungültig sein.
In ISO 8859-1 wird â beispielsweise durch ein Byte Wert dargestellt
226
, während es in UTF-8 zwei Bytes sind :195, 162
. Doch in ISO 8859-1 ,195, 162
würden zwei Zeichen lang sein, Ã, ¢ .Stellen Sie sich XML nicht als eine Folge von Zeichen vor, sondern als eine Folge von Bytes.
Stellen Sie sich vor, das System, das das XML empfängt, sieht die Bytes
195, 162
. Woher weiß es, welche Charaktere das sind?Damit das System diese Bytes als tatsächliche Zeichen interpretieren (und sie so anzeigen oder in eine andere Codierung konvertieren kann), muss es die im XML verwendete Codierung kennen.
Da die meisten gängigen Codierungen in Bezug auf grundlegende alphabetische Zeichen und Symbole mit ASCII kompatibel sind, kann in diesen Fällen die Deklaration selbst davonkommen, nur die ASCII-Zeichen zu verwenden, um die Codierung anzugeben. In anderen Fällen muss der Parser versuchen, die Codierung der Deklaration herauszufinden. Da es weiß, dass die Deklaration damit beginnt
<?xml
, ist es viel einfacher, dies zu tun.Schließlich gibt das
version
Attribut die XML-Version an, von der es derzeit zwei gibt (siehe Wikipedia-XML-Versionen . Es gibt geringfügige Unterschiede zwischen den Versionen, sodass ein XML-Parser wissen muss, womit er es zu tun hat. In den meisten Fällen (für Englisch) Lautsprecher sowieso), Version 1.0 ist ausreichend.quelle
Eine XML-Deklaration ist nicht in allen XML-Dokumenten erforderlich. Autoren von XHTML-Dokumenten wird jedoch dringend empfohlen, in allen Dokumenten XML-Deklarationen zu verwenden. Eine solche Deklaration ist erforderlich, wenn die Zeichenkodierung des Dokuments nicht der Standard-UTF-8 oder UTF-16 entspricht und keine Kodierung durch ein übergeordnetes Protokoll bestimmt wurde. Hier ist ein Beispiel für ein XHTML-Dokument. In diesem Beispiel ist die XML-Deklaration enthalten.
Bitte beachten Sie die W3-Standards für XML .
quelle
Dies ist die optionale XML- Präambel.
version="1.0"
bedeutet, dass dies der XML-Standard ist, dem diese Datei entsprichtencoding="utf-8"
bedeutet, dass die Datei mit der UTF-8-Unicode-Codierung codiert wirdquelle
Weitere Informationen zur XML-Deklaration finden Sie hier: http://msdn.microsoft.com/en-us/library/ms256048.aspx
quelle
Sie können dieses XML-Tutorial anhand von Beispielen überprüfen .
W3C bietet Erklärungen zur Codierung:
quelle
Die XML-Deklaration in der Dokumentzuordnung besteht aus folgenden Elementen:
Dies ist obligatorisch. Obwohl sich die Anzahl für zukünftige XML-Versionen ändern kann, ist 1.0 die aktuelle Version.
Die Kodierungserklärung,
Dies ist optional. Bei Verwendung muss die Codierungsdeklaration unmittelbar nach den Versionsinformationen in der XML-Deklaration erscheinen und einen Wert enthalten, der eine vorhandene Zeichencodierung darstellt.
quelle