ホーム > X-Plus > XML Square >  ビギナーズコーナー  >  HOP STEP XML !

この記事を送る はてなブックマークに追加する BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
テキストリンクコードを取得する

ビギナーズコーナー:Hop Step XML ! (2)

2001年05月31日作成 

(株)日本ユニテック 黒木 将人
  1. PART1.XMLって何?
  2. PART2.XMLってどうやって書くの?
  3. PART3.XMLとSGMLとHTML!

PART2:XMLってどうやって書くの?

XMLデータは大きく分けて次の3つの部分から成り立っています。

・ XML宣言
・ DTD
・ XMLインスタンス

(XML宣言とDTDは必須ではありません)

以下の図1にはXML宣言と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>
</会社>
図1

XML宣言の書き方

<?xml version="XML規格のバージョン番号" encoding="文字コード名"?>

XML宣言は、XML規格のバージョン番号とXML文書作成に使用する文字コード名を宣言する部分です。 「version=」に続く部分でXMLのバージョンを宣言し、「encoding=」に続く部分でXML文書作成時に使用される文字コード(Shift_Jis、UTF-8など)を指定します。

XMLインスタンスの書き方

XMLインスタンスとは、実際の内容にタグが付けられている部分、つまりXML文書の本体のことです。この部分の文法を理解するにはまず、「要素(element)」と「属性(attribute)」について理解する必要があります。

<要素(element)とは?>

開始タグと終了タグで囲まれた部分全体を要素(element)と呼びます。
要素の基本的なタグ付けは以下のように行います。

<1つの要素を表すタグの書き方>
<要素名>(開始タグ) …要素の内容…</要素名>(終了タグ)


図1の「名称」は次のようにタグ付けされていました。

<名称>株式会社日本ユニテック</名称>

これは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>


DTDの書き方

XMLの構造はDTD(Document Type Definition)で定義されます。DTDは文書型定義と訳され、タグによって表される文書要素およびその階層構造の宣言、要素の付属情報としての属性の宣言を行い、XMLインスタンスでどのようなタグ付けを行うべきかを規定します。
図1のXML文書のサンプルに対するDTDを下記に示します。「会社」要素の中では、「名称」を最初に書き、その後に「連絡先」、そして更にその後にという順序で要素が出現しなければならないという指定が1行目でなされています。



DTDに記述する宣言は、次の4つです。

・ 要素型宣言
・ 属性リスト宣言
・ エンティティ宣言
・ 記法宣言


ここでは、このうち要素型宣言と属性リスト宣言についてのみ説明します。

<要素型宣言の書き方>
<!ELEMENT 要素名 内容モデル>


例えばテキストを内容として持つ「名称」という要素は次のように宣言します。

<!ELEMENT 名称 (#PCDATA)>
(#PCDATAはテキストを表すキーワード)


要素型宣言もXMLインスタンスの場合と同じようにいくつもの要素を順に積み重ねることによって、文書(データ)全体の階層構造を作り、要素型宣言を重ねていきます。

<属性リスト宣言の書き方>
<!ATTLIST 要素名 属性名 属性値の候補 "デフォルト値">
(属性値の候補は、列挙型あるいはデータ型のいずれかで指定される)


前述のDTDの例では、次のような属性リスト宣言が書かれていました。

<!ATTLIST 会社 登録番号 CDATA #REQUIRED>


これは、「<会社> 要素には、登録番号という属性があり、その値は任意の文字列(CDATA)である。この属性は省略してはならない(#REQUIRED)」ということを表しています。

前の記事へ
次の記事へ


関連サービス

XMLを使ったシステム構築への支援業務





ページトップへ戻る