XMLの記述ルール
概要
本ページでは、これからXMLを勉強してみようという方に向けて、基本的なことを中心に、分かりやすく説明しています。日々の業務にお役立てください。
基本
XMLは主に、「要素」、「属性」、「テキスト」の3種類の情報で構成されます。
<application name="Microsoft Word" version="2010"> ワード2010 </application>
この場合、application と書かれている部分が「要素」または「タグ」と呼ばれます。
さらに細分化して1行めの部分を「開始タグ」、3行目の部分を「終了タグ」、または「閉じタグ」と呼ぶこともあります。
name や version の部分が「属性」と呼ばれるものです。
さらに、name や version は「属性名」、” ” で囲まれた部分は「属性値」と細分化されることもあります。
「ワード2010」のように、開始タグと終了タグに挟まれた部分は「テキスト情報」や「値」と呼ばれます。
!Note |
---|
XMLとして書いたデータがどのような表示になるのかについては、「XML紹介」のトップ記事で、分かりやすいイメージ例をご覧いただけます。 |
3つの構成
XMLは次の3つの部分から構成されます。
- XML宣言
- 文書型宣言
- データ部分
「データ部分」だけを書いてもXMLとして扱うことは可能です。
しかし、「XML宣言」は書くことが推奨されており、この部分でXMLファイルの文字コードの定義を行うことができますので、動作の安定などを考慮すると、XML宣言は書いておいたほうが好ましいです。
2番めの「文書型宣言」については、DTDという「文書型定義」のファイルが必要になってきますが、すべてのXMLでフォーマット(記法)を定義しているわけではないので、オプション程度に捉えていただければ良いかと思います。
XML宣言
<?xml version="1.0" encoding="UTF-8" ?>
文書型宣言
当該XMLファイルの記法を宣言する部分です。どういう要素や属性を、どういう順序で記述するのか?ということをルールとして定義します。
次のように外部ファイル(別ファイル)の文書型定義ファイル(DTD)を指定する記述方法が主に使われます。このように文書型定義ファイルを外部に持っておくことで、複数のXMLファイルが同じ様式に則った記述をされているかどうか確認することができます。
<!DOCTYPE chapter SYSTEM "document.dtd">
!Note |
---|
上に記載している外部の文書型定義ファイルを指定する方法以外に、この宣言部分で文書型定義を直接に記述する方法についても述べておきます。
しかし、実際には、XML文書内に文書型宣言を記述する例は少なく、記述するメリットも小さいので、技術的に可能という程度でご理解いただければと思います。
|
<!DOCTYPE document [ <!ELEMENT chapter (#PCDATA) > <!ELEMENT title (#PCDATA) > <!ATTLIST note CDATA #IMPLIED > ]>
データ部分
先ほどの例のとおり、次のように記述することができます。
<application name="Microsoft Word" version="2010"> ワード2010 </application>
この application という要素名やnameなどをはじめとする属性名などの様式について、XMLでは自由に定義することができます。また、次のように要素をネスト(入れ子)にすることもできます。
<list type=”software”> <application name="Microsoft Word" version="2010"> ワード2010 </application> <application name="Microsoft Excel" version="2010"> エクセル2010 </application> </list>
その他、XMLでは終了タグを省略した記述もできます。次の2つは同じデータになります。
<application name="Microsoft Word" version="2010" /> <application name="Microsoft Word" version="2010"> </application>
このように、要素の終端を「 />」と記述することで終了タグを省略できます。
この記述は「空タグ」と呼ばれます。
よくあるXML記述ミス
XMLで禁止とされている書き方の中でも、人の手で記述するときによく起こるミスをいくつか紹介します。
開始タグと終了タグが一対になっていない
HTMLでは終了タグが無くても表示できますが、XMLではエラー扱いになって全く動作しなくなります。
<application name="Microsoft Word" version="2010"> ワード2010
!Note |
---|
</application> という終了タグがありません。 |
ルート(最上位)となるタグが無い
<application name="Microsoft Word" version="2010"> ワード2010 </application> <application name="Microsoft Excel" version="2010"> エクセル2010 </application>
!Note |
---|
<list> と </list> などで全体を囲む必要があります。 |
このように要素が並列に並んでいるだけで、ルートの要素が無いとエラーになります。
1つのルート要素の下で複数の要素が並列に記述されていることは問題ありません。
1つの要素に同じ属性名を使う
次の例のように、同じ属性を2つ使うことは禁止されているのでエラーになります。
<application name="Microsoft Excel" version="2010" version="2003">
!Note |
---|
version という同じ名前の属性が2つ以上記載されています。 |
属性の記述方法が間違っている
属性は 属性名=”属性値” という記述をする必要があります。
<application name"Microsoft Excel" version=2010>
!Note |
---|
nameのあとに=が必要です。
versionの値部分はダブルクォーテーションで囲んで“2010”と記述する必要があります。
|
目視によるチェックでミスを探しだすのは難しいですが、ツールを使うと簡単にミス部分を探しだすことができます。次回の「XMLのチェックの仕方」という表題ではXMLのチェック方法をご紹介します。
« XMLってなに?