ホームページ  >  記事  >  バックエンド開発  >  XML の構造と構文の詳細な紹介

XML の構造と構文の詳細な紹介

黄舟
黄舟オリジナル
2017-03-24 17:09:231302ブラウズ

次に、「メモ帳」を使用して XML ファイルを作成しましょう。まず XML ファイルを見てみましょう:

例 1:

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

これは、編集後、.xml 拡張子が付いたファイルとして保存します。このファイルは、ファイル プリアンブル (プロローグ) とファイル本体の 2 つの主要な部分に分割できます。このファイルの最初の行はファイルのプリアンブルです。この行は XML ファイルで宣言する必要があり、主に XML パーサーに動作方法を指示するものであり、XML ファイルの最初の行に配置する必要があります。このうち、version はこの XML ファイルで使用される標準のバージョン番号を示し、必須です。encoding は、この XML ファイルで使用される文字の種類を示し、このステートメントを省略する場合は、次の文字コードを指定する必要があります。 Unicode 文字コード (省略しないことをお勧めします)。この例では文字コード GB2312 を使用しているため、encoding ステートメントは省略できません。ファイルのプリアンブルにもいくつかの宣言文がありますが、これについては後で紹介します。

ファイルの残りの部分はファイル本体に属し、XML ファイルのコンテンツ情報がここに格納されます。ファイルの本体は開始 制御タグと終了 制御タグで構成されていることがわかります。これは XML ファイルの「ルート要素」と呼ばれ、 は「ルート要素」です。ルート要素の直下には「サブ要素」があり、「Book」の下には「名前」、「著者」、「価格」などのサブ要素があります。通貨単位は要素の「属性」で、「RMB」が「属性値」となります。

この文章はHTMLと同じようにコメント部分を「」タグで挟みます。

ご覧のとおり、XML ファイルは非常に単純です。 HTML と同様に、XML ファイルも一連のタグで構成されていますが、XML ファイル内のタグは独自のカスタム タグであり、タグ内のコンテンツの意味を説明できます。

XML ファイルについての予備的な印象を持った後、XML ファイルの構文について詳しく話しましょう。文法について話す前に、XML 解析という重要な概念を理解する必要があります。

1.XML パーサー

パーサーの主な機能は、XML ファイルに構造上のエラーがあるかどうかを確認し、XML ファイル内のタグを取り除き、次のアプリケーション プログラムで処理するための正しい内容を読み出すことです。 XML は、ファイル情報を構造化するために使用されるマークアップ言語です。XML 仕様には、ファイルの構造をマークする方法に関する詳細な規則があります。パーサーは、これらの規則に従って記述されたソフトウェアです (主に Java で記述されています)。 HTML と同様に、ブラウザーが HTML タグで構成されるさまざまな Web ページを「読み取り」、それを私たちの前に表示できるように、ブラウザーにも HTML パーサーが必要です。ブラウザの HTML パーサーが読み取れないタグがある場合、エラー メッセージが返されます。

今日の HTML タグは実際には非常に混乱しており、標準外のタグが多数あるため (一部の Web ページは IE では正常に表示できるが、Netscape Navigator では表示できない)、当初から XML 設計者は XML を厳密に規定してきました。私たちが作成する XML ファイルの構文と構造は、これらの規制に準拠している必要があります。準拠していないと、XML パーサーは容赦なくエラー メッセージを表示します。

XML ファイルには 2 種類あり、1 つは整形式 XML ファイル、もう 1 つは検証 XML ファイルです。

XML ファイルが XML 仕様の特定の関連ルールを満たし、DTD (文書形式定義 - 詳細は後述) を使用していない場合、その XML ファイルは整形式と呼ばれます。 XML ファイルが整形式であり、DTD が正しく使用され、DTD 内の構文が正しい場合、ファイルは検証中です。 2 つの XML ファイルに対応して、2 つの XML パーサーがあり、1 つは Well-Formed パーサー、もう 1 つは Validating パーサーです。 IE 5 には検証パーサーが含まれており、整形式 XML ファイルの解析にも使用できます。

Well-Formedの条件を満たしているか確認してください。編集した最初の XML ファイルは、IE 5 以降のブラウザで開くことができます。

なぜブラウザでの表示がソース ファイルと同じなのか疑問に思われるかもしれません。そうです、XML ファイルの場合は内容しか分からず、その表示形式は CSS または XSL によって完成されるからです。ここでは、この XML ファイルの CSS または XSL ファイルを定義していないため、元の形式で表示されます。実際、電子データの交換に必要なのは XML ファイルだけです。それを何らかの形式で表示したい場合は、CSS または XSL ファイルを編集する必要があります (この問題については後で説明します)。

2. 整形式の XML ファイル

パーサーによって正しく解析され、ブラウザーに表示されるためには、XML が整形式である必要があることがわかっています。では、整形式 XML ファイルとは何でしょうか? XML ファイルを作成する際には、主に次のガイドラインを満たす必要があります。

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的写法。

XML ファイルでは、ほとんどのカスタム タグが使用されていることがわかります。しかし、考えてみてください。同じ業界の 2 つの企業 A と B が XML ファイルを使用して相互にデータを交換したい場合、A 社は製品の価格情報を表すために タグを使用し、B 社は タグを使用する可能性があります。価格> 情報を表します。 XML アプリケーションがそれぞれの XML ファイル内の情報を読み取る場合、 タグが価格情報を表すことしか認識していないと、B 社の価格情報を読み取ることができず、エラーが発生します。 XML ファイルを使用して情報を交換したいエンティティの場合、明らかに、エンティティ間で合意が必要です。つまり、どのタグを使用して XML ファイルを作成できるか、どのサブ要素を親要素に含めることができるか、親要素の順序などです。各要素がどのようなものになるのか、プロパティの定義方法など。これにより、XML でデータを交換するときにスムーズな通信が可能になります。この規約をDTD(Document Type Definition、文書フォーマット定義)といいます。 DTD は、XML ファイルを作成するためのテンプレートと考えることができます。同じ業界間で XML データを交換する場合、固定 DTD があったほうがはるかに便利です。たとえば、インターネット上の主要な電子ショッピング モールの XML Web ページがすべて同じ DTD に従っている場合、この DTD に基づいて、オンラインで関心のあるものを自動的にキャプチャするアプリケーションを簡単に作成できます。実際、前述した MathML や SMIL など、明確に定義された DTD がすでにいくつか存在します。

XML ファイルが整形式であり、特定の DTD に基づいて正しく作成されている場合、XML ファイルは「Validating XML file」と呼ばれます。対応するパーサーは、Validating Parser と呼ばれます。

以上がXML の構造と構文の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。