この記事と関連の高い記事
関連キーワード:XML入門
ビギナーズコーナー:XML入門(7)
ビギナーズコーナー:XML入門(6)
ビギナーズコーナー:XML入門(5)
ビギナーズコーナー:XML入門(4)
ビギナーズコーナー:XML入門(3)
ビギナーズコーナー:XML入門(2)
ビギナーズコーナー:XML入門(1)
ビギナーズコーナー:Hop Step XML ! (3)
ビギナーズコーナー:Hop Step XML ! (1)
ホーム > X-Plus > XML Square > ビギナーズコーナー > HOP STEP XML !
| -XML宣言- |
| <?xml version = "1.0" encoding = "Shift_JIS"?> |
| -XMLインスタンス- |
| <会社 登録番号 = "1"> <名称>株式会社日本ユニテック</名称> <連絡先> <郵便番号>105-0001</郵便番号> <住所>東京都港区虎ノ門1-23-7 虎ノ門23森ビル4F</住所> <電話番号>03-3595-8241</電話番号> <FAX>03-3595-8248</FAX> </連絡先> <URL>http://www.utj.co.jp</URL> </会社> |
| <?xml version="XML規格のバージョン番号" encoding="文字コード名"?> |
XML宣言は、XML規格のバージョン番号とXML文書作成に使用する文字コード名を宣言する部分です。 「version=」に続く部分でXMLのバージョンを宣言し、「encoding=」に続く部分でXML文書作成時に使用される文字コード(Shift_Jis、UTF-8など)を指定します。
XMLインスタンスとは、実際の内容にタグが付けられている部分、つまりXML文書の本体のことです。この部分の文法を理解するにはまず、「要素(element)」と「属性(attribute)」について理解する必要があります。
<要素(element)とは?>
開始タグと終了タグで囲まれた部分全体を要素(element)と呼びます。
要素の基本的なタグ付けは以下のように行います。
| <要素名>(開始タグ) …要素の内容…</要素名>(終了タグ) |
| <名称>株式会社日本ユニテック</名称> |
これは1つの要素を表すだけのタグ付けですが、XMLインスタンスにはいくつもの要素が存在し、それらが階層構造になっています。例えば、図1の例では「連絡先」という要素の中に「郵便番号」「住所」「電話番号」「FAX」という要素が含められています。このとき、「連絡先」を「親要素」、「郵便番号」「住所」「電話番号」「FAX」を「連絡先」という親要素に対して、いわば兄弟関係にある「子要素」と呼びます。このようにXML文書は、親要素から子要素、そのまた子要素というように要素を階層的に作り上げることで成り立っています。
ある要素の開始タグと終了タグの対の中に、子要素として別の要素の開始タグと終了タグを「入れ子」にして書くことによって階層関係を作ります。例えば、要素Aの下位に要素Bと要素Cを入れ子にしてタグ付けするには次のような書き方をします。
| 要素aの下に要素bと要素cが含まれる場合 <要素A><要素B>......<要素B/><要素C>....</要素C></要素A> |
階層化された要素のタグ付けに際しては、上位下位の関係がわかるように開始タグと終了タグの対応をきちんと取る必要があります。
<属性(attribute)とは?>
図1のXML文書のサンプルで、<会社 登録番号="1">という開始タグが書かれていました。この中の「登録番号="1"」という部分は、属性(attribute)と呼ばれるもので、要素に付加的な情報を与えるために存在します。属性は開始タグに複数指定することも可能です。次のように書きます。
<属性の書き方>| <要素名 属性名="属性値"......>(属性は開始タグの中で指定) |
例えば、価格という要素(price)に「通貨の単位(unit)は円(yen)である」という情報を追加したい場合、次のように属性を指定します。
| <price unit = "yen"> 2280 </price> |
XMLの構造はDTD(Document Type Definition)で定義されます。DTDは文書型定義と訳され、タグによって表される文書要素およびその階層構造の宣言、要素の付属情報としての属性の宣言を行い、XMLインスタンスでどのようなタグ付けを行うべきかを規定します。
図1のXML文書のサンプルに対するDTDを下記に示します。「会社」要素の中では、「名称」を最初に書き、その後に「連絡先」、そして更にその後にという順序で要素が出現しなければならないという指定が1行目でなされています。

| <!ELEMENT 要素名 内容モデル> |
| <!ELEMENT 名称 (#PCDATA)> (#PCDATAはテキストを表すキーワード) |
| <!ATTLIST 要素名 属性名 属性値の候補 "デフォルト値"> (属性値の候補は、列挙型あるいはデータ型のいずれかで指定される) |
| <!ATTLIST 会社 登録番号 CDATA #REQUIRED> |
ビギナーズコーナー:XML入門(7)
ビギナーズコーナー:XML入門(6)
ビギナーズコーナー:XML入門(5)
ビギナーズコーナー:XML入門(4)
ビギナーズコーナー:XML入門(3)
ビギナーズコーナー:XML入門(2)
ビギナーズコーナー:XML入門(1)
ビギナーズコーナー:Hop Step XML ! (3)
ビギナーズコーナー:Hop Step XML ! (1)