1. ホーム
  2. Web制作
  3. XML/XSLT

XMLマークアップ言語の基本概念と構文のチュートリアル

2022-01-25 02:54:34


XMLとは、Extensible Markup Language(拡張可能なマークアップ言語)の略です。SGML(Standard Generalized Markup Language)から派生したテキストベースのマークアップ言語である。

XMLタグはデータを識別し、保存や整理に使われるもので、HTMLがデータを表示するために使われるように、データの表示方法を指定するものではありません。XMLは近い将来、HTMLに取って代わることはないでしょうが、HTMLを成功させた多くの機能を採用することで、可能性を導入しています。

ここでは、さまざまなシステムやソリューションに活用できるXMLの重要な3つの特徴を紹介します。

XMLは拡張可能である。XMLでは、用途に応じた独自の自己記述型タグや言語を作成することができる。
XMLはデータを運ぶが、レンダリングはしない。XMLは、どのようにレンダリングされるかに関係なく、データを保存することができる。
XMLは公共規格です。XMLはW3C(World Wide Web Consortium)という組織が開発し、オープンな規格として公開されています。


XMLの用途
この短いXMLの用途のリストがすべてを物語っています。

XMLは、大規模なウェブサイトのHTML文書の作成を簡素化するために、舞台裏で働くことができます。
XMLは、組織やシステム間の情報交換に利用することができます。
XMLは、データベースのアンロードとリロードに使用できる。
XML は、データの保存と整理、およびデータ処理要件のカスタマイズに使用できます。
XMLはスタイルシートの結合が容易であり、ほぼすべての出力を作成することができます。
事実上、あらゆる種類のデータをXML文書として表現することができる。


タグとは何ですか?
XMLは、人間が読め、かつ機械が読める形式で文書を符号化するための一連の規則を定義したマークアップ言語である。では、マークアップ言語とはいったい何なのだろうか。マークアップとは、何らかの方法で文書の意味を向上させるために追加される情報のことで、部品やその関連性を識別することができます。具体的には、マークアップ言語とは、文書の特定の部分を区別してマークアップするために、文書のテキストに配置できる一連の記号のことを指します。

次の例は、テキストに埋め込まれたXMLタグがどのようなものかを示しています。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <スパン < メッセージ >
  2. <スパン <スパン <

    テキスト > ハロー、ワールド <スパン </ テキスト >
  3. <スパン <スパン </ メッセージ >

このフラグメントは <message>... </message> や <text>... </text> などのマークアップ記号、またはタグを含んでいます。message> と </message> というタグは、このXMLコードフラグメントの開始と終了を表します。タグ <text> と </text> は、テキスト Hello world!

XMLはプログラミング言語ですか?
コンピュータのプログラムを作成するためのプログラミング言語は、構文規則と独自の語彙で構成されています。これらのプログラムは、コンピュータに特定のタスクを実行するように指示します。XMLは、計算やアルゴリズムを行わないので、プログラミング言語には該当しない。通常、XMLは単純なテキストファイルに格納され、XMLを解釈できる特別なソフトウェアによって処理されます。

XMLの構文
以下は完全なXML文書である。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <? xml バージョン = "1.0"。 ?
  2. <スパン <スパン <

    コンカットインフォ >
  3. <スパン <スパン <

    名称 > タンメイ・パティル </ 名称 >
  4. <スパン <スパン <

    会社 > チュートリアルポイント </ 会社 >
  5. <スパン <スパン <

    電話 > (011) 123-4567 <スパン </ 電話 >
  6. <スパン <スパン </ コンカットインフォ >

上の例で、2種類の情報があることにお気づきでしょうか。

タグのような、<concat-info>のようなタグがあります。
チュートリアルポイントや(011) 123-4567_などのテキストまたは文字データです。
次の図は、XML文書にさまざまな種類のタグとテキストを記述するための構文規則を説明したものです。

上の画像にある各構成要素を詳しく見てみましょう。

XML 宣言
XML文書には、オプションでXML宣言を付けることができる。これは、次のような形式で記述することができる。

<?xml version="1.0" encoding="UTF-8"? >
ここで、versionはXMLのバージョン、encodingはドキュメントで使用される文字エンコーディングを指定します。

XML宣言の構文規則

XML宣言は大文字と小文字を区別し、"<?xml>"で始めなければなりません。
ドキュメントにXML宣言が含まれる場合、それはXMLドキュメントの最初のステートメントでなければなりません。
XML 宣言は、XML 文書の最初の文でなければならない。
HTTP プロトコルは、XML 宣言で指定されたエンコーディングの値を上書きするために使用することができ る。


タグと要素
XMLファイルの構造は、XMLノードまたはXMLタグとも呼ばれるいくつかのXML要素で構成されています。XML要素の名前は、次のようにカギカッコ < > で閉じられています。

<element>
タグと要素の構文規則

要素の構文。XMLの各要素は、以下のように閉じているか、開始要素と終了要素を持たなければなりません。

<element>... </element>
あるいは、こんな風に省略された形でも。

<element/>
要素のネスト。XML要素は複数のXML要素を子として含むことができますが、子要素は重なり合うことはできません。例えば、ある要素の終了タグは、最も新しい開始タグと同じ名前でなければなりません。

次の例は、タグのネストが正しくないことを示しています。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <? xml バージョン = "1.0"。 ?
  2. <スパン <スパン <

    コンタクトインフォ >
  3. <スパン <スパン <

    会社 > チュートリアルポイント   
  4. <スパン <スパン <

    コンタクトインフォ >
  5. <スパン <スパン </ 会社 >

次の例は、正しいネストされたタグを示しています。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <? xml バージョン = "1.0"。 ?
  2. <スパン <スパン <

    コンタクトインフォ >
  3. <スパン <スパン <

    会社 > チュートリアルポイント </ 会社 >
  4. <スパン <スパン <

    コンタクトインフォ >

ルート要素。XML 文書は 1 つのルート要素のみを持つ。例えば、次の例はルート要素を持たないxとyの要素がトップレベルに表示されるため、正しくないXML文書となります。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <スパン < x > ... </ x >
  2. <スパン <スパン <

    y > ... </ y >

次の例は、XMLドキュメントを正しい形式で表示しています。

<root>
    <x>... </x>
    <y>... </y>
</root>
大文字・小文字を区別する。XML要素の名前は、大文字と小文字を区別します。これは、要素の開始タグと終了タグの大文字と小文字が同じでなければならないことを意味します。

例えば、<contact-info> と __<Contact-Info> は別物です。

属性
属性は、名前と値のペアを使用して要素に属性(プロパティ)を割り当てます。XML要素は、1つ以上の属性を持つことができます。例えば

XML/HTMLコード 内容をクリップボードにコピーする
  1. <スパン < a ホールド = <スパン "http://www.tutorialspoint.com/"。 <スパン > Tutorialspoint! </ a >

ここでhrefは属性名、http://www.tutorialspoint.com/ は属性値です。

XML属性の構文規則

XMLの属性名は大文字と小文字を区別します(HTMLとは異なります)。つまり、HREFとhrefは2つの異なるXML属性であるとみなされます。
構文上、同一の属性を2つ存在させることはできません。次の例では、属性bが2回指定されているため、誤った構文であることがわかります。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <スパン < a b = <スパン "x"。 <スパン c = <スパン "y"。 b = <スパン "z"。 > <スパン .... </ a >

属性名は引用符なしで定義し、属性値は引用符で囲んで表示する必要があります。次の例は、誤ったXML構文を示しています。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <スパン < a <スパン b = x > .... </ a >

上記の構文では、引用タグの中で属性値が定義されていません。

XMLリファレンス
参照は通常、XML文書に追加のテキストを追加または含めることを可能にします。参照は常に予約文字である記号 "&" で始まり、記号 ";" で終わります。XML には 2 種類の参照があります。

エンティティの参照。実体参照は、開始と終了のデリミタの間に名前を含む。例えば、&amp;で、ampは名前である。この名前は通常、定義済みのテキスト文字列またはトークンを指します。

文字参照。ハッシュタグ("#")と数字を含む &#65; のような参照です。この数字は、常に文字の Unicode コードを指します。この場合、65は文字quot;A"を指します。

XMLテキスト
XML要素およびXML属性の名前は、大文字と小文字を区別する。つまり、要素の開始タグと終了タグの大文字と小文字を一致させる必要があります。
文字コードの問題を避けるため、すべての XML ファイルは Unicode UTF-8 または UTF-16 ファイルとして保存する必要があります。
XML 要素と XML 属性の間のスペース、タブ、改行などの空白文字は無視されます。
一部の文字は、XML 構文自体によって予約されています。したがって、それらを直接使用することはできません。それらを使用するには、いくつかの代替エンティティを使用する必要があります。以下にそのいくつかを示します。