Heim  >  Artikel  >  Backend-Entwicklung  >  Eine ausführliche Einführung in die XML-Struktur und -Syntax

Eine ausführliche Einführung in die XML-Struktur und -Syntax

黄舟
黄舟Original
2017-03-24 17:09:231259Durchsuche

Lassen Sie uns zunächst Notepad verwenden, um unsere XML-Datei zu erstellen. Schauen Sie sich zunächst eine XML-Datei an:

Beispiel 1:

〈?xml version="1.0" encoding="gb2312" ?〉
〈参考资料〉
〈书籍〉
〈名称〉XML入门精解〈/名称〉
〈作者〉张三〈/作者〉
〈价格 货币单位="人民币"〉20.00〈/价格〉
〈/书籍〉
〈书籍〉
〈名称〉XML语法〈/名称〉
〈!--此书即将出版--〉
〈作者〉李四〈/作者〉
〈价格 货币单位="人民币"〉18.00〈/价格〉
〈/书籍〉
〈/参考资料〉

Dies ist eine typische XML-Datei. Speichern Sie sie nach der Bearbeitung als Datei mit dem Suffix .xml. 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. Darunter gibt die Version die in dieser XML-Datei verwendete Standardversionsnummer an, die erforderlich ist; die Kodierung gibt den in dieser XML-Datei verwendeten Zeichentyp an, der weggelassen werden kann Der Zeichencode muss ein Unicode-Zeichencode sein (es wird empfohlen, ihn 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 und die Inhaltsinformationen der XML-Datei werden hier gespeichert. Wir können sehen, dass der Hauptteil der Datei aus den ersten - und den endenden -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 und „RMB“ ist der „Attributwert“.

〈!--Dieses Buch wird bald veröffentlicht--〉Dieser Satz ist derselbe wie HTML, es ist ein Kommentar. In der XML-Datei wird der Kommentarteil zwischen „〈!--“ platziert. und „--〉“-Tags zwischen Teilen.

Wie Sie sehen, sind XML-Dateien 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 im Detail ü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 strukturelle Fehler in der XML-Datei vorliegen, die Tags in der XML-Datei zu entfernen und den korrekten Inhalt auszulesen Weiter zur nächsten Ein-Schritt-Anwendungsverarbeitung. XML ist eine Auszeichnungssprache, die zum Strukturieren von Dateiinformationen verwendet wird. Die XML-Spezifikation enthält detaillierte Regeln zum Markieren der Struktur von Dateien. 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 Webseiten, die aus HTML-Tags bestehen, „lesen“ und vor uns anzeigen kann. Wenn es Tags gibt, die der HTML-Parser des Browsers nicht lesen kann, wird eine

Fehlermeldung zurückgegeben.

Da die aktuellen HTML-Tags eigentlich ziemlich verwirrend sind und es viele nicht standardmäßige Tags gibt (einige Webseiten können normal mit IE angezeigt werden, aber nicht mit Netscape Navigator), also von Anfang an die Designer von XML Die Syntax und Struktur von XML sind streng vorgeschrieben. Die von uns geschriebenen XML-Dateien müssen diesen Vorschriften entsprechen, sonst zeigt Ihnen der XML-Parser gnadenlos Fehlermeldungen an.

Es gibt zwei Arten von XML-Dateien, eine ist eine wohlgeformte XML-Datei und die andere ist eine validierende XML-Datei.

Wenn eine XML-Datei bestimmte relevante Regeln in der XML-Spezifikation erfüllt und keine DTD (Document Format Definition – Details später) verwendet, kann sie 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.

1.XML文件的第一行必须是声明该文件是XML文件以及它所使用的XML规范版本。在文件的前面不能够有其它元素或者注释。

2.在XML文件中有且只能够有一个根元素。我们的第一个例子中,〈参考资料〉... 〈/参考资料〉就是此XML文件的根元素。

3.在XML文件中的标记必须正确地关闭,也就是说,在XML文件中,控制标记必 须有与之对应的结束标记。如:〈名称〉标记必须有对应的〈/名称〉结束标记,不像HTML,某些标记的结束标记可有可无。如果在XML文件中遇到自成一个单元的标记,就是类似于HTML 中的〈img src=.....〉的这些没有结束标记的时候,XML把它称为“空元素”,必须用这样的写法:〈空元素名/〉,如果元素中含有属性时写法则为:〈空元素名 属性名=“属性值”/〉。

4.标记之间不得交叉。在以前的HTML文件中,可以这样写:

〈B〉〈H〉XXXXXXX〈/B〉〈/H〉,〈B〉和〈H〉

标记之间有相互重叠的区域,而在XML中,是严格禁止这样标记交错的写法,标记必须以规则性的次序来出现。

5.属性值必须要用“ ”号括起来。如第一个例子中的“1.0”、“gb2312”、“人民币”。都是用“ ”号括起来了的,不能漏掉。

6.控制标记、指令和属性名称等英文要区分大小写。与HTML不同的是,在HTML中, 类似〈B〉和〈b〉的标记含义是一样的,而在XML中,类似〈name〉、〈NAME〉或〈Name〉这样的标记是不同的。

7.我们知道,在HTML文件中,如果我们要浏览器原封不动地将我们所输入的东西显示出来,可以将这些东西放到〈pre〉〈/pre〉或者〈xmp〉〈/xmp〉标记中间。这对于我们创建HTML教学的网页是必不可少的,因为网页中要显示HTML的源代码。而在XML中,要实现这样的功能,就必须使用CDATA标记。在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记。CDATA区域是由:“〈![CDATA[”为开始标记,以“>〉”为结束标记。例如:例2中的源码,除了“〈![CDATA[”和“>〉”符号,其余的内容解析器将原封不动地交给下游的应用程序,即使CDATA区域中的开始和结尾的空白以及换行字符等,都同样会被转交(注意CDATA是大写的字符)。

例2:

〈![CDATA[飞翔的xml〉〉〉〉〉,:-)
oooo〈〈〈〈〈〈〈
>〉

8.XML处理空白字符和HTML不一样。HTML标准规定,不管有多少个空白,都当作一个空白来处理;而在XML中规定,所有标记以外的空白,解析器都要忠实地交给下游的应用程序处理。这样,我们有时必须摒弃编写HTML文件时的缩排习惯,因为缩排的空格,解析器也要处理。如:

〈作者〉张三〈/作者〉
和
〈作者〉
张三
〈/作者〉

上述内容对于解析器来说是不同的(后者在〈作者〉〈/作者〉标记之内除了张三这个字符以外,还包括两个换行记号以及“张三”前的文字缩排符号)。所以解析器在去掉标记后将信息传给应用程序将有不同的处理结果。

如果我们想明确地告诉XML程序,标记中的空白有明确的含义,不要随便去掉(如在一些诗中,空格有它具体的意义),则可在标记中加入一个XML内置的属性——xml:space 。如(注意属性名称和值的大小写):

〈诗歌 xml:space="preserver"〉
祖国啊! 祖国!
我的祖国!
〈/诗歌〉

另外,在XML文件中,如果要用到表1的特殊字符,必须用相应符号代替。

表1:

特殊字符     替代符号
 &&       &
 <       &it;
 >       >
 "       "
 &#39;      &apos;

小结:

符合上述规定的XML文件就是Well-Formed的XML文件。这是编写XML文件的最基本要求。可以看到XML文件的语法规定比HTML要严格多了。由于有这样的严格规定,软件工程师编写XML的解析器就容易多了,不像编写HTML语言的解析器,必须费尽心思去适应不同的网页写法,提高自己浏览器的适应能力。实际上,这对于我们初学者来说,也是一件好事。该怎样就怎样,不必像原来那样去疑惑各种HTML的写法。

Wir sehen, dass in XML-Dateien die meisten verwendeten Tags benutzerdefinierte Tags sind. 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 -Tag, um die Preisinformationen ihrer Produkte darzustellen, während Unternehmen B möglicherweise , um die Preisinformationen darzustellen. Wenn eine XML-Anwendung die Informationen in ihren jeweiligen XML-Dateien liest und nur weiß, dass das -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, heißt die XML-Datei: Validierende XML-Datei. Der entsprechende Parser heißt: Validating Parser.

Das obige ist der detaillierte Inhalt vonEine ausführliche Einführung in die XML-Struktur und -Syntax. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn