XML HOME > XMLの構文(入門編)

XMLの構文(入門編)(最終更新日 2002/03/11)

XMLであることを宣言
HTML の場合、ファイルの先頭行に
<html>
と記述し、この文書が HTML で記述されていることを宣言していたが、XML の場合も同様に、ファイルの先頭行に
<?xml version="1.0" encoding = "Shift_JIS"?>
と記述する。これによって、当該文書が XML であるということを宣言する。
XML であることを宣言しているこの箇所を、「XML 宣言」(XML declaration) という。

XML 宣言は以下の書式で記述される。
<?xml version="XML規格のバージョン番号" encoding = "記述文字コード名"?>
現在の XML の規格は 1.0 であるので、通常は、「version = "1.0」と表記することになる。
(2000.10 には、バージョンがそのままの Second Edition が W3C より提唱されている。)

また、文字記述には、「encoding = "Shift_JIS"」以外にも、UNICODE の場合の、「encoding = "UTF-16"」や「encoding = "UTF-8"」などが指定可能である。
なお、UNICODE で記述する場合、encoding の省略が可能である。(この場合、XML 宣言自体の省略も可能である。)
タグ(要素)名のつけ方
HTML と異なり要素はユーザが自由に設定できる。ただし、要素名に使用可能な文字は次に限定されている。
先頭文字として使用可能 アルファベット・全角かな・全角カナ・漢字・コロン( ; )・アンダーバー( _ )
二文字目以降に使用可能 上記文字郡・数字・ピリオド( . )・ハイフン( - )
使用不可能 半角カナ・全角数字・全角アルファベット
また、以下の文字列は XML において定義済みの予約語であるため、要素名として使用禁止である。
キーワード 意味
#FIXED 属性の固定値
#IMPLIED 属性のデフォルト値
#PCDATA 文字データ
#REQUIRED 属性値の必須指定
ANY 任意要素
ATTLIST 属性リスト宣言
CDATA CDATAセクション
DOCTYPE 文書型宣言
ELEMENT 要素型宣言
EMPTY 空要素
encoding XML が使用している文字コード
ENTITY エンティティ宣言
ENTITIES 複数のエンティティ
ID 識別子
IDRES 識別子参照
IDREFS 複数の識別子参照
IGNORE 無視指定(条件付セクション)
INCLUDE 処理指定(条件付セクション)
NDATA データ記法宣言
NMTOKEN 名前トークン
NMTOKENS 複数の名前トークン
NOTATION 記法宣言
PUBLIC 公開識別子
standalone 外部文書参照
SYSTEM システム識別子
version XML 文書のバージョン
xml XML 宣言
xml:lang 言語
xml:space 空白以外の処理方法
これらの規約に従う限り、自由な要素名を作成することができる。
(例) <title> <タイトル> <xml-だよ> ... etc
タグ(要素)の書き方
タグ(要素)の書き方には、以下の規約がある。

要素名の大文字・小文字は区別される。
(例) <foo> と <FOO> は異なる要素

空要素でない限り、かならず、終了タグを作る。
(例) <foo> なんとか、かんとか </foo>
HTML の <p> タグのようなタグは終了タグが不要であったが、XMLの場合、<p></p>といった終了タグをつける必要がある。
もしくは、空要素と呼ばれる以下のような記述を行う。
(例) <空要素の書き方 />
空要素の用い方に関しては後述する。

要素はかならずネスト構造にする。
(例) (ネスト構造の例)
  <toplevel> 1階層目
   <second-level> 2階層目
     <third-level>  3階層目 </third-level>
     <third-level>  3階層目 </third-level>
   </second-level>
 </top-level>
XMLの簡単な例
(例) (XMLの簡単な例)
 <?xml version="1.0" encoding = "Shift_JIS"?>
 <computer>
  <display>
   <maker> ○○通 </maker>
   <size> ×× </size>
  </display>
  <cpu>
   <maker> イン○○ </maker>
  </cpu>
  <keybord>
   <color> brack </color>
  </keybord>
 </computer>
サンプルはこちらから。