XML 構文規則


XML の構文規則は非常にシンプルで、論理的です。

これらの規則は簡単に学ぶことができ、簡単に使用できます。


XML 宣言

XML 宣言はファイルの省略可能な部分であり、存在する場合はドキュメントの最初の行に置く必要があります。以下に示すとおりです:

<?xml version="1.0" encoding="utf-8"?>

上記の例には XML バージョン(version="1.0")が含まれ、さらに文字エンコーディング(encoding="utf-8")も含まれています。

UTF-8 は HTML5、CSS、JavaScript、PHP、SQL のデフォルトエンコーディングでもあります。


XML ドキュメントにはルート要素が必要です

XML にはルート要素を含める必要があります。これは他のすべての要素の親要素です。たとえば、次の例では root がルート要素です:

<root> <child> <subchild>.....</subchild> </child> </root>

次の例では note がルート要素です:

<?xml version="1.0" encoding="UTF-8"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>

XML ドキュメントは要素で構成され、各要素には開始タグ、終了タグ、および要素の内容が含まれます。


属性

要素は属性を含むことができ、属性は要素に関する追加情報を提供します。

属性は開始タグ内に配置されます。例:

<person age="30" gender="male">John Doe</person>

XML 単一タグ

すべての XML 要素には通常クローズタグがありますが、単一タグの使用も許可されています。

単一タグの書き方は次のとおりです:

<elementName attribute="value" />

単一タグとは、1つのタグ内に開始タグと終了タグの両方を含むもので、形式は HTML の空要素タグに似ています。

XML では、次の2つの方法で単一タグを表すことができます:

空要素タグを使用する:

<exampleTag />

開始タグと終了タグを使用するが、内容を含まない:

<exampleTag></exampleTag>

これら2つの表現方法は同等であり、個人またはプロジェクトの規約に応じていずれかを選択して使用できます。

多くの XML パーサーでは、これら2つの形式は同じ構造として解釈されます。

例

<lineBreak />

ここ<lineBreak />は単一タグで、改行操作を表します。

属性付きの単一タグ:

<image src="logo.png.html" alt="Logo" />

このタグは画像要素を表し、src 属性と alt 属性を含み、画像のパスと代替テキストを表します。

XML ファイルの例:

例

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <note to="Tove" from="Jani" heading="Reminder" body="Don't forget me this weekend!" />
    <emptyElement attribute="value" />
</root>

この例では、<note>と<emptyElement />すべて単一タグです。<note>タグの用途は情報を伝達することで、<emptyElement />は子要素のない空タグです。


XML タグは大文字と小文字を区別します

XML タグは大文字と小文字を区別します。タグ <Letter> とタグ <letter> は異なります。

開始タグと終了タグは、同じ大文字と小文字を使用して記述する必要があります:

<Message>这是错误的</message>
<message>这是正确的</message>

注釈:オープンタグとクローズタグは通常、開始タグと終了タグと呼ばれます。どちらの用語を使用しても、その概念は同じです。


XML は正しくネストする必要があります

HTML では、正しくネストされていない要素がよく見られます:

<b><i>This text is bold and italic</b></i>

XML では、すべての要素は必ず互いに正しくネストしなければなりません:

<b><i>This text is bold and italic</i></b>

上記の例で「正しくネスト」の意味は、<i> 要素が <b> 要素内で開かれたため、<b> 要素内で閉じなければならないということです。


XML 属性値は引用符で囲む必要があります

HTML と同様に、XML 要素も属性(名前と値のペア)を持つことができます。

XML では、XML の属性値は引用符で囲む必要があります。

次の2つの XML ドキュメントを調べてください。1つ目は間違いで、2つ目は正しいです:

<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>

1つ目のドキュメントの間違いは、note 要素内の date 属性が引用符で囲まれていないことです。


実体参照

XML では、一部の文字は特別な意味を持ちます。

文字 "<" を XML 要素内に置くと、エラーが発生します。これは、パーサーがそれを新しい要素の開始とみなすためです。

これにより XML エラーが発生します:

<message>if salary < 1000 then</message>

このエラーを回避するには、実体参照を使用して "<" 文字を置き換えてください:

<message>if salary &lt; 1000 then</message>

XML には、5つの定義済み実体参照があります:

&lt; < less than
&gt; > greater than
&amp; & ampersand
&apos; ' apostrophe
&quot; " quotation mark

注釈:XML では、実際に不正なのは文字 "<" と "&" だけです。大なり記号は合法ですが、実体参照で置き換えるのは良い習慣です。


XML 内のコメント

XML でコメントを書く構文は、HTML の構文と非常に似ています。

<!-- This is a comment -->

XML では、スペースは保持されます

HTML は、複数の連続するスペース文字を1つに切り詰め(結合)ます:

HTML:
Hello           Tove
出力結果: Hello Tove

XML では、ドキュメント内のスペースは削除されません:

<bookstore>
    <book>
        <title>xx       xxx</title>
        <author>John Doe</author>
        <price>29.99</price>
    </book>
</bookstore>

title の内容は次のように表示されます:

xx       xxx

XML は LF で改行を保存します

Windows アプリケーションでは、改行は通常、キャリッジリターン(CR)とラインフィード(LF)の2文字のペアで保存されます。

Unix と Mac OSX では、LF を使用して新しい行を保存します。

古い Mac システムでは、CR を使用して新しい行を保存します。

XML は LF で改行を保存します。

その他の拡張