演習 1.2: DTD のカスタマイズ
この演習を始める前に、『演習 1.1: DTD の作成』を終了しておく必要があります。
このセクションでは、以下の作業を実行して、DTD をカスタマイズします。
- エレメントを作成し、命名する。
- エレメントのコンテンツ・モデルを編集する。
- エレメントに属性を追加する。
DTD には以下のエレメントが含まれます。
エレメント | 説明 |
---|
CDLib | CD ライブラリーのルート・エレメントで、その他のエレメントすべてを含む。 |
CD | CD に関する情報を含むコンテナー・エレメント。 |
artist | CD の演奏家の名前を含むエレメント。 |
title | CD のタイトルを記述する属性。 |
format | このタイトルの CD の数を記述するエレメント。 |
description | CD の内容を説明するエレメント。 |
price | CD の価格を示すエレメント。 |
エレメントの作成と命名
次に、DTD にすべてのエレメントを追加します。
- 「アウトライン」ビューで、「DTD」を右クリックし、「エレメントの追加」をクリックします。
- 「プロパティー」ビューで、エレメントの名前を CDLib に変更します。
- 再度、DTD を右クリックして、「エレメントの追加」をクリックします。
「プロパティー」ビューで、エレメントの名前を CD に変更します。
- ステップ 3 を繰り返して、エレメント artist、format、description、および price を作成します。
エレメントのコンテンツ・モデルの編集
エレメントのコンテンツ・モデルは、エレメント内に含めることができるデータの表記です。
エレメントを作成すると、ノードが自動的に「アウトライン」ビューに表示されて、エレメントのコンテンツ・モデル型を表します。これはデフォルトでは「空き」(他のエレメントまたはテキストを含まない) です。
それぞれのエレメントの値を変更する必要があります。
- 「アウトライン」ビューの CDLib の下で、「空き」をクリックします。
「プロパティー」ビューで、「コンテンツ型」リストから CD を選択します。
- 「アウトライン」ビュー内の CD (CDLib の下の子エレメントでなく、親エレメント) の下で、「空き」をクリックします。
- 「プロパティー」ビューで、「コンテンツ型」リストから「子コンテンツ」を選択します。
これによって、CD エレメントの下にグループ・ノードが追加されます。
- グループ・ノードを展開して、「newChild」を選択します。
次に、「プロパティー」ビューで、「コンテンツ・モデル」リストから artist を選択します。
- グループ・ノードをクリックして、そのポップアップ・メニューから「コンテンツ・モデルへのエレメントの追加」をクリックします。
これによって、別の子エレメントが追加されます。
- 新規の子エレメントを選択します。
そのエレメントの「プロパティー」ビューで、「コンテンツ・モデル」リストから「フォーマット」を選択します。
- ステップ 5 と 6 を繰り返して、description および price 子エレメントを作成します。
- artist エレメント (CD の下の子エレメントでなく、親エレメント) をクリックして、展開します。
- 「空き」をクリックし、「プロパティー」ビューで、「コンテンツ型」リストから (#PCDATA) を選択します。
- format、description、price エレメントについてステップ 8 と 9 を繰り返します。
これで、それぞれのエレメントごとにコンテンツ・モデルが指定されました。
CDLib エレメントには CD エレメントしか含めることはできませんが、CD エレメントには、artist、format、description、および price エレメントを含めることができます。
artist、format、description、および price エレメントに他のエレメントを含めることはできません。含めることができるのはテキストのみです。
CD エレメントに複数のエレメントを含めたいので、そのコンテンツ型を子コンテンツとして定義しました。
この定義によって、CD エレメントに自動的にグループ・ノードが追加されます。
グループ・ノードによって、エレメントのコンテンツ・モデルに必要な数だけエレメントを追加できます。
また、エレメントを順序どおりにソートするか、選択が可能であるか (選択できるのはいずれか 1 つのオプションだけです)、またエレメント・グループの発生回数も決定できます。
一般に、CD ライブラリーには複数の CD が含まれます。
DTD がこれを表すようにするために、CDLib エレメントのコンテンツ・モデルを変更する必要があります。
- 「アウトライン」ビューで、CDLib エレメントの下の CD 子エレメントを選択します。
「プロパティー」ビューには、コンテンツ・モデルのオカレンスが「1 回のみ」として表示されます (つまり、CDLib は 1 つの CD エレメントしか含むことができません)。
- 「オカレンス」ドロップダウン・リストから「1 回以上」をクリックして、そのコンテンツ・モデルが 1 つ以上の CD を含むように変更します。
- 「ソース」ビューのコンテンツを検討します。
CDLib エレメントは次のように表示されるはずです。<!ELEMENT CDLib (CD+)>
お客様が追加したいだけの CD を CD ライブラリーに含めることができるようになっています。
artist および format コンテンツ・モデルにも若干の変更が必要です。
- CD の場合、複数のアーティストが関与している場合があります。
このことは、artist 子エレメント (つまり CD の下にリストされている artist エレメント) を選択し、そのオカレンスを「1 回以上」に変更することによって示します。
- 1 つの CD にほとんどのタイトルを収めることができます。
そのようなタイトルについては「エレメントのフォーマット」はオプションです。
このことは、format 子エレメントを選択して、そのオカレンスを「オプション」に変更することによって示します。
結果の CD エレメントは次のようになります (「ソース」ビューに表示されます)。
<!ELEMENT CD (artist+,format?,description,price)>
属性の追加
ここで、CD エレメント (CDLib の下の子エレメントでなく親エレメント) に属性 title を追加する必要があります。
そのためには、以下のステップに従ってください。
- 「アウトライン」ビューで、CD エレメントのポップアップ・メニューから、「属性の追加」をクリックします。
注 : すべてのエレメントは、その属性が属性リストに含まれていなければならないため、まだ属性リストがない属性をエレメントに追加すると、属性リストが自動的に作成されて、新規属性がそれに追加されます。
- 属性リストを拡張して、属性「NewAttribute」を選択します。
「プロパティー」ビューで、属性の名前を title に変更します。
属性タイプの値は「文字データ (CDATA)」にデフォルト設定され、属性デフォルト値はすでに「#IMPLIED」に設定されていなければなりません。
ここで、DTD を保管してください。
「ファイル」>「保管」の順にクリックします。
CDLib の定義が完了しました。次のようになっているはずです。

これで、『演習 1.3: XML ファイルの作成および編集』の開始準備ができました。