■ DTDを作成
ツリー構造を参考に、会員情報の記述ルールを定義したDTDを作成します。
DTDを記述する事で、複数でXML文書作成の作業を行う事が可能になります。
■ DTDを記述
ツリー構造を見てもわかるように、ここではルート要素は「会員情報」なので
<!DOCTYPE 会員情報[
・・・・・・・・・
]>
と <!DOCTYPE 会員情報[
と ]> を記述します。
■ 各要素の親子関係を記述
<!DOCTYPE 会員情報[
<!ELEMENT 会員情報 (会員データ*)>
<!ELEMENT 会員データ (氏名,住所,電話番号,メール,職業)>
]>
ルート要素である、「会員情報」の下に個々の会員データがあるので
<!ELEMENT 会員情報 (会員データ*)>
と記述して会員情報と、会員データの親子関係を表します。会員データ要素は
複数になる事がわかっているので、 * を記述して
出現回数を0件以上と指定します。同様に
<!ELEMENT 会員データ (氏名,住所,電話,メール,職業)>
と、「会員データ」要素と、その下にある各要素との親子関係を記述します。
■ 要素の宣言
<!DOCTYPE 会員情報[
<!ELEMENT 会員情報 (会員データ*)>
<!ELEMENT 会員データ (氏名,住所,電話番号,メール,職業)>
<!ELEMENT 氏名 (#PCDATA)>
<!ELEMENT 住所 (#PCDATA)>
<!ELEMENT 電話 (#PCDATA)>
<!ELEMENT メール (#PCDATA)>
<!ELEMENT 職業 (#PCDATA)>
]>
会員データの下にある、各要素を宣言します。
これらは全て文字データなので、
#PCDATAを指定します。
■ 属性の宣言
<!DOCTYPE 会員情報[
<!ELEMENT 会員情報 (会員データ*)>
<!ELEMENT 会員データ (氏名,住所,電話番号,メール,職業)>
<!ELEMENT 氏名 (#PCDATA)>
<!ELEMENT 住所 (#PCDATA)>
<!ELEMENT 電話 (#PCDATA)>
<!ELEMENT メール (#PCDATA)>
<!ELEMENT 職業 (#PCDATA)>
<!ATTLIST 氏名 フリガナ CDATA #REQUIRED>
]>
属性を宣言します。
「氏名」要素に「フリガナ」属性を追加します。
<!ATTLIST と >
の間に、氏名 フリガナを記述し CDATA
で文字データである事を指定、そして#REQUIREDで
属性である「フリガナ」が必須である事を指定します。
#REQUIREDと#IMPLIED
#REQUIREDはしてした属性が必須である事を表しています。それとは違い、#IMPLIEDは
属性を省略する事もある場合に指定します。
以上でメインXML文書のDTDは完成です。
|