XML 入門
XML (Extensible Markup Language) は HTML に似たマークアップ言語ですが、使用するタグがあらかじめ定義されていません。代わりに、ニーズに応じて自分自身でタグを定義します。これは、格納、検索、共有が可能な形式でデータを格納するための強力な方法です。最も重要なことは、XML の基本形式が標準化されているため、ローカルまたはインターネットを介して、システムやプラットフォーム間で XML を共有または送信する場合でも、標準化された XML 構文により、受信者はデータを解釈できるということです。
XML に基づいた言語はたくさんあります。XHTML、MathML、SVG、RSS、RDF などがあります。独自のものを定義することもできます。
XML 文書構造
XML および XML ベースの言語の全体の構造はタグに基づいて構築されています。
XML 宣言
コメント
<!-- コメント -->
「正しい」XML (妥当であり、整形式であること)
正しいデザインルール
XML 文書を正しくするには、次の条件を満たす必要があります。
- 文書は整形式でなければなりません。
- 文書はすべての XML 構文ルールに準拠している必要があります。
- 文書は、通常 XML スキーマまたは DTD (文書型定義) で設定されている意味付けルールに準拠する必要があります。
例
<?xml version="1.0" encoding="UTF-8"?>
<message>
<warning>
Hello World
<!--missing </warning> -->
</message>
整形式に適合した正しい例は以下です。
<?xml version="1.0" encoding="UTF-8"?>
<message>
<warning>
Hello World
</warning>
</message>
未定義のタグを含む文書は無効です。たとえば、<warning>
タグを定義しなかった場合、上記の文書は無効になります。
ほとんどのブラウザーは、形式が不適切な XML 文書を識別できるデバッガーを提供しています。
文字参照
HTMLと同様に、XML はいくつかの特別な予約文字(タグに使用する大なり記号など)を参照するための文字参照を提供しています。知っておくべき文字は 5 つあります。
エンティティ | 文字 | 説明 |
---|---|---|
< | < | 小なり記号 |
> | > | 大なり記号 |
& | & | アンパサンド |
" | " | 1 つの二重引用符 |
' | ' | 1 つのアポストロフィ (または単一引用符) |
宣言されたエンティティは 5 つしかありませんが、文書の文書型宣言 を使用して追加することができます。たとえば、新しい &warning;
エンティティを作成するには、次のようにします。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE body [
<!ENTITY warning "Warning: Something bad happened... please refresh and try again.">
]>
<body>
<message> &warning; </message>
</body>
数字の文字参照を使用して特殊文字を指定することもできます。 たとえば、© は "©" 記号です。
XML の表示
XML はふつう、記述のために用いられますが、XML データを表示するための方法があります。その方法を定義しなければ、生の XML コードがブラウザーに表示されます。
XML ページに見た目を持たせる方法の一つは、xml-stylesheet
宣言で CSS を用いることです。
<?xml-stylesheet type="text/css" href="stylesheet.css"?>
XML を表示するもう 1 つのより強力な方法もあります。XSL を HTML などの他の言語に変換するために使用できる Extensible Stylesheet Language Transformation (XSLT) です。 これにより、XML は非常に用途が広くなります。
<?xml-stylesheet type="text/xsl" href="transform.xsl"?>
推奨事項
この記事は、XMLとは何かについて、取り掛かるためのいくつかの例とリファレンスを、とても簡単に紹介したに過ぎないことは明らかです。XMLの詳細については、ウェブでより詳細な記事を見ていってください。
ハイパーテキストマークアップ言語 (HTML) を学ぶと、XML をよりよく理解するのに役立ちます。