Lassen Sie uns zunächst „Notepad“ verwenden, um unsere XML-Datei zu erstellen. Schauen wir uns zunächst eine XML-Datei an:
Beispiel 1
〈?xml version="1.0" binding="gb2312" ?〉
〈Referenzen〉
<Bücher>
〈Name〉Einführung in XML 〈/Name〉
〈Autor〉Zhang San〈/Autor〉
〈Preiswährungseinheit="RMB"〉20,00〈/Preis〉
</books>
<Bücher>
<name>XML-Syntax </name>
〈!--Dieses Buch wird bald veröffentlicht--〉
〈Autor〉Li Si〈/Autor〉
〈Preiswährungseinheit="RMB"〉18,00〈/Preis〉
</books>
〈/Referenzmaterialien〉
Dies ist eine typische XML-Datei. Nach der Bearbeitung wird sie als Datei mit dem Suffix .xml gespeichert. Wir können diese Datei in zwei Hauptteile unterteilen: die Dateipräambel (Prolog) und den Dateihauptteil. Die erste Zeile in dieser Datei ist die Dateipräambel. Diese Zeile muss eine XML-Datei deklarieren und muss sich auch in der ersten Zeile der XML-Datei befinden. Sie sagt dem XML-Parser hauptsächlich, wie er arbeiten soll. Unter anderem ist Version die von dieser XML-Datei verwendete Standardversionsnummer, die erforderlich ist; die Codierung gibt den in dieser XML-Datei verwendeten Zeichentyp an, der weggelassen werden kann. Wenn Sie diese Anweisung weglassen, muss der folgende Zeichencode ein Unicode-Zeichencode sein (Es wird empfohlen, es nicht wegzulassen). Da wir in diesem Beispiel den GB2312-Zeichencode verwenden, kann die Codierungsanweisung nicht weggelassen werden. Es gibt auch einige Deklarationsanweisungen in der Präambel der Datei, die wir später vorstellen werden.
Der Rest der Datei gehört zum Dateikörper, in dem die Inhaltsinformationen der XML-Datei gespeichert sind. Wir können sehen, dass der Hauptteil der Datei aus den ersten <reference>- und den endenden </reference>-Kontrolltags besteht. Dies wird als „Stammelement“ der XML-Datei bezeichnet. direkt unter dem Wurzelelement „Unterelement“; unter „Buch“ befinden sich Unterelemente wie „Name“, „Autor“ und „Preis“. Die Währungseinheit ist ein „Attribut“ im Element <price> und „RMB“ ist der „Attributwert“.
〈!--Dieses Buch wird bald veröffentlicht--〉 ist ein Kommentar, genau wie HTML. In einer XML-Datei wird der Kommentarteil zwischen den Tags „〈!--“ und „--〉“ platziert.
Wie Sie sehen, ist die XML-Datei recht einfach. Wie HTML bestehen auch XML-Dateien aus einer Reihe von Tags. Die Tags in XML-Dateien sind jedoch unsere eigenen benutzerdefinierten Tags und haben eine klare Bedeutung des Inhalts der Tags.
Nachdem wir einen ersten Eindruck von XML-Dateien gewonnen haben, sprechen wir nun ausführlich über die Syntax von XML-Dateien. Bevor wir über Grammatik sprechen, müssen wir ein wichtiges Konzept verstehen, nämlich XML Parse.
1. XML-Parser
Die Hauptfunktion des Parsers besteht darin, zu prüfen, ob Strukturfehler in der XML-Datei vorliegen, die Tags in der XML-Datei zu entfernen und den korrekten Inhalt zur Verarbeitung durch das nächste Anwendungsprogramm auszulesen. XML ist eine Auszeichnungssprache, die zur Strukturierung von Dateiinformationen verwendet wird. Die XML-Spezifikation enthält detaillierte Regeln zur Markierung der Dateistruktur. Der Parser ist eine nach diesen Regeln geschriebene Software (meistens in Java geschrieben). Genau wie bei HTML muss im Browser ein HTML-Parser vorhanden sein, damit der Browser verschiedene aus HTML-Tags bestehende Webseiten „lesen“ und vor uns anzeigen kann. Wenn es Tags gibt, die der HTML-Parser des Browsers nicht lesen kann, wird eine Fehlermeldung an uns zurückgegeben.
Da die aktuellen HTML-Tags tatsächlich ziemlich verwirrend sind und es viele nicht standardmäßige Tags gibt (einige Webseiten können mit IE normal angezeigt werden, nicht jedoch mit Netscape Navigator), haben die XML-Designer die Syntax von XML streng festgelegt Ganz am Anfang und in der Struktur müssen die von uns geschriebenen XML-Dateien diesen Vorschriften entsprechen, sonst zeigt Ihnen der XML-Parser gnadenlos Fehlermeldungen an.
Es gibt zwei Arten von XML-Dateien: eine wohlgeformte XML-Datei und die andere eine validierende XML-Datei.
Wenn eine XML-Datei bestimmte relevante Regeln in der XML-Spezifikation erfüllt und keine DTD (Dokumentformatdefinition – Details später) verwendet, kann das Dokument als wohlgeformt bezeichnet werden. Und wenn eine XML-Datei wohlgeformt ist, die DTD korrekt verwendet wird und die Syntax in der DTD korrekt ist, dann ist die Datei validierend. Entsprechend den beiden XML-Dateien gibt es zwei XML-Parser, einen ist der wohlgeformte Parser und der andere ist der validierende Parser. IE 5 enthält einen Validierungsparser, der auch zum Parsen wohlgeformter XML-Dateien verwendet werden kann.
Überprüfen Sie, ob es die Bedingungen von Well-Formed erfüllt. Wir können die erste XML-Datei, die wir gerade bearbeitet haben, mit einem Browser von IE 5 oder höher öffnen.
Sie fragen sich vielleicht, warum die Anzeige im Browser mit meiner Quelldatei übereinstimmt? Das ist richtig, denn bei XML-Dateien kennen wir nur den Inhalt und seine Anzeigeform wird durch CSS oder XSL vervollständigt. Hier haben wir für diese XML-Datei keine CSS- oder XSL-Datei definiert, daher wird sie in ihrer ursprünglichen Form angezeigt. Tatsächlich ist für den elektronischen Datenaustausch nur eine XML-Datei erforderlich. Wenn wir sie in irgendeiner Form anzeigen möchten, müssen wir die CSS- oder XSL-Datei bearbeiten (dieses Problem wird später besprochen).
2. Wohlgeformte XML-Datei
Wir wissen, dass XML wohlgeformt sein muss, um vom Parser korrekt analysiert und im Browser angezeigt zu werden. Was ist also eine wohlgeformte XML-Datei? Bei der Erstellung von XML-Dateien müssen vor allem die folgenden Richtlinien beachtet werden.
Zunächst muss in der ersten Zeile einer XML-Datei angegeben werden, dass es sich bei der Datei um eine XML-Datei handelt und welche XML-Spezifikationsversion sie verwendet. Vor der Datei dürfen keine anderen Elemente oder Kommentare stehen.
Zweitens kann es in einer XML-Datei nur ein Stammelement geben. In unserem ersten Beispiel ist 〈References〉...〈/References〉 das Wurzelelement dieser XML-Datei.
Drittens müssen die Tags in der XML-Datei korrekt geschlossen werden, d. h. die Steuertags in der XML-Datei müssen über ein entsprechendes schließendes Tag verfügen. Beispiel: Das <name>-Tag muss über ein entsprechendes schließendes Tag </name> verfügen. Im Gegensatz zu HTML ist das schließende Tag einiger Tags optional. Wenn Sie in einer XML-Datei auf ein eigenständiges Unit-Tag stoßen, das <img src=.....> in HTML ohne End-Tag ähnelt, nennt XML es ein „leeres Element“ und Sie müssen die Schreibmethode verwenden lautet: 〈leerer Elementname/〉 Wenn das Element Attribute enthält, lautet die Schreibmethode: 〈leerer Elementname Attributname = „Attributwert“/〉.
Viertens dürfen sich die Markierungen nicht kreuzen. In früheren HTML-Dateien könnte man so schreiben:
〈B〉〈H〉XXXXXXX〈/B〉〈/H〉,
es gibt überlappende Bereiche zwischen den 〈B〉- und 〈H〉-Tags, aber in XML ist es streng gestaffelt Das Schreiben solcher Marken ist verboten. Marken müssen in einer regelmäßigen Reihenfolge erscheinen.
Fünftens müssen Attributwerte in „“-Zeichen eingeschlossen werden. Zum Beispiel „1.0“, „gb2312“, „RMB“ im ersten Beispiel. Sie sind alle durch „ “ umschlossen und können nicht übersehen werden.
Sechstens muss bei englischen Steuer-Tags, Anweisungen und Attributnamen die Groß-/Kleinschreibung beachtet werden. Im Gegensatz zu HTML haben in HTML Tags wie <B> und <b> die gleiche Bedeutung, während in XML Tags wie <name>, <NAME> oder <Name> unterschiedlich sind.
Siebtens wissen wir, dass wir in HTML-Dateien, wenn wir möchten, dass der Browser die von uns eingegebenen Dinge intakt anzeigt, diese Dinge in 〈pre〉〈/pre〉 oder 〈xmp〉〈/xmp〉 einfügen können Markieren Sie die Mitte. Dies ist für die Erstellung von HTML-Unterrichtswebseiten für uns unerlässlich, da der HTML-Quellcode auf der Webseite angezeigt werden muss. Um eine solche Funktion zu erreichen, müssen in XML CDATA-Tags verwendet werden. Die Informationen im CDATA-Tag werden vom Parser intakt an die Anwendung übergeben und alle Steuertags im Informationssegment werden nicht analysiert. Der CDATA-Bereich ist gekennzeichnet durch: „<![CDATA[“ als Startmarke und „>>“ als Endmarke. Beispiel: Im Quellcode in Beispiel 2 wird der Rest des Inhaltsparsers mit Ausnahme der Symbole „<![CDATA[“ und „>>“ intakt an die Downstream-Anwendung übergeben, auch wenn Leerzeichen vorhanden sind Dabei werden auch der Anfang und das Ende des CDATA-Bereichs sowie Newline-Zeichen etc. übertragen (beachten Sie, dass es sich bei CDATA um ein Großbuchstabe handelt).
Beispiel 2
〈![CDATA[flying xml〉〉〉〉〉,:-)
ooo〈〈〈〈〈〈
>〉
Achtens behandelt XML Leerzeichen anders als HTML. Der HTML-Standard schreibt vor, dass Leerzeichen unabhängig von der Anzahl als ein einziges Leerzeichen behandelt werden, während in XML festgelegt ist, dass der Parser alle Leerzeichen außer Tags ordnungsgemäß zur Verarbeitung an nachgelagerte Anwendungen übergeben muss. Auf diese Weise müssen wir beim Schreiben von HTML-Dateien manchmal die Einrückungsgewohnheit aufgeben, da der Parser auch die eingerückten Leerzeichen verarbeiten muss. Zum Beispiel:
〈Autor〉Zhang San〈/Autor〉
und 〈Autor〉
Zhang San 〈/Author〉
unterscheidet sich für den Parser (letzterer enthält zusätzlich zum Zeichen Zhang San im Tag 〈Author〉〈/Author〉 auch zwei Zeilenumbrüche und die Zeichen vor „Zhang San“. " Texteinrückungssymbole). Daher wird der Parser nach dem Entfernen der Markierung und der Übergabe der Informationen an die Anwendung unterschiedliche Verarbeitungsergebnisse erzielen.
Wenn wir dem XML-Programm klar mitteilen möchten, dass die Leerzeichen in den Tags eine klare Bedeutung haben und nicht beiläufig entfernt werden sollten (in einigen Gedichten haben Leerzeichen beispielsweise eine bestimmte Bedeutung), können wir ein integriertes XML-Attribut hinzufügen – xml - zu den Tags :space . Zum Beispiel (beachten Sie die Groß-/Kleinschreibung von Attributnamen und -werten):
〈poetry xml:space="preserver"〉
Heimat! Heimat!
Mein Mutterland!
〈/Poetry〉
Darüber hinaus müssen in der XML-Datei die Sonderzeichen in Tabelle 1 durch entsprechende Symbole ersetzt werden, wenn sie verwendet werden sollen.
Tabelle 1
Sonderzeichen-Ersetzungssymbole && &
<⁢
>>
" "
' '
Um hier eine Zusammenfassung zu machen: Die XML-Datei, die die oben genannten Anforderungen erfüllt, ist die Well-Formed XML-Datei. Dies ist die grundlegendste Voraussetzung zum Schreiben von XML-Dateien. Sie sehen, dass die Syntax von XML-Dateien viel strenger ist als die von HTML. Aufgrund dieser strengen Vorschriften ist es für Softwareentwickler viel einfacher, XML-Parser zu schreiben, als Parser für die HTML-Sprache zu schreiben. Sie müssen hart daran arbeiten, sich an verschiedene Methoden zum Schreiben von Webseiten anzupassen und die Anpassungsfähigkeit ihrer eigenen Browser zu verbessern. Tatsächlich ist das auch für uns Anfänger eine gute Sache. Machen Sie einfach, was Sie wollen, und müssen Sie sich nicht wie zuvor Gedanken darüber machen, wie Sie verschiedene HTMLs schreiben.
Wir sehen, dass in XML-Dateien die meisten benutzerdefinierten Tags verwendet werden. Aber denken Sie darüber nach: Wenn zwei Unternehmen A und B in derselben Branche mithilfe von XML-Dateien Daten miteinander austauschen möchten, verwendet Unternehmen A das <price>-Tag, um die Preisinformationen ihrer Produkte darzustellen, während Unternehmen B möglicherweise <selling verwendet Preis>, um die Preisinformationen darzustellen. Wenn eine XML-Anwendung die Informationen in ihren jeweiligen XML-Dateien liest und nur weiß, dass das <price>-Tag Preisinformationen darstellt, können die Preisinformationen von Unternehmen B nicht gelesen werden und es tritt ein Fehler auf. Offensichtlich muss für Entitäten, die XML-Dateien zum Informationsaustausch verwenden möchten, eine Vereinbarung zwischen ihnen bestehen – das heißt, welche Tags zum Schreiben von XML-Dateien verwendet werden können, welche Unterelemente in das übergeordnete Element aufgenommen werden können und in welcher Reihenfolge welches Element angezeigt wird und wie die Eigenschaften definiert werden usw. Auf diese Weise können sie beim Datenaustausch mit XML reibungslos kommunizieren. Diese Konvention wird DTD (Document Type Definition, Dokumentformatdefinition) genannt. Sie können sich eine DTD als Vorlage zum Schreiben von XML-Dateien vorstellen. Für den XML-Datenaustausch zwischen derselben Branche ist es viel praktischer, eine feste DTD zu haben. Wenn beispielsweise die XML-Webseiten großer elektronischer Einkaufszentren im Internet alle derselben DTD folgen, können wir problemlos eine Anwendung basierend auf dieser DTD schreiben, um automatisch die Dinge zu erfassen, die uns online interessieren. Tatsächlich gibt es bereits mehrere gut definierte DTDs wie MathML, SMIL usw., die bereits erwähnt wurden.
Wenn eine XML-Datei wohlgeformt ist und basierend auf einer DTD korrekt erstellt wurde, wird die XML-Datei als „Validierende XML-Datei“ bezeichnet. Der entsprechende Parser heißt: Validating Parser.