演習 1.2: DTD のカスタマイズ

この演習を始める前に、『演習 1.1: DTD の作成』を終了しておく必要があります。

このセクションでは、以下の作業を実行して、DTD をカスタマイズします。

  1. エレメントを作成し、命名する。
  2. エレメントのコンテンツ・モデルを編集する。
  3. エレメントに属性を追加する。

DTD には以下のエレメントが含まれます。

エレメント説明
CDLibCD ライブラリーのルート・エレメントで、その他のエレメントすべてを含む。
CDCD に関する情報を含むコンテナー・エレメント。
artistCD の演奏家の名前を含むエレメント。
titleCD のタイトルを記述する属性。
formatこのタイトルの CD の数を記述するエレメント。
descriptionCD の内容を説明するエレメント。
priceCD の価格を示すエレメント。

エレメントの作成と命名

次に、DTD にすべてのエレメントを追加します。

  1. 「アウトライン」ビューで、「DTD」を右クリックし、「エレメントの追加」をクリックします。
  2. 「プロパティー」ビューで、エレメントの名前を CDLib に変更します。
  3. 再度、DTD を右クリックして、「エレメントの追加」をクリックします。 「プロパティー」ビューで、エレメントの名前を CD に変更します。
  4. ステップ 3 を繰り返して、エレメント artistformatdescription、および price を作成します。

エレメントのコンテンツ・モデルの編集

エレメントのコンテンツ・モデルは、エレメント内に含めることができるデータの表記です。 エレメントを作成すると、ノードが自動的に「アウトライン」ビューに表示されて、エレメントのコンテンツ・モデル型を表します。これはデフォルトでは「空き」(他のエレメントまたはテキストを含まない) です。 それぞれのエレメントの値を変更する必要があります。

  1. 「アウトライン」ビューの CDLib の下で、「空き」をクリックします。 「プロパティー」ビューで、「コンテンツ型」リストから CD を選択します。
  2. 「アウトライン」ビュー内の CD (CDLib の下の子エレメントでなく、親エレメント) の下で、「空き」をクリックします。
  3. 「プロパティー」ビューで、「コンテンツ型」リストから「子コンテンツ」を選択します。 これによって、CD エレメントの下にグループ・ノードが追加されます。
  4. グループ・ノードを展開して、「newChild」を選択します。 次に、「プロパティー」ビューで、「コンテンツ・モデル」リストから artist を選択します。
  5. グループ・ノードをクリックして、そのポップアップ・メニューから「コンテンツ・モデルへのエレメントの追加」をクリックします。 これによって、別の子エレメントが追加されます。
  6. 新規の子エレメントを選択します。 そのエレメントの「プロパティー」ビューで、「コンテンツ・モデル」リストから「フォーマット」を選択します。
  7. ステップ 5 と 6 を繰り返して、description および price 子エレメントを作成します。
  8. artist エレメント (CD の下の子エレメントでなく、親エレメント) をクリックして、展開します。
  9. 空き」をクリックし、「プロパティー」ビューで、「コンテンツ型」リストから (#PCDATA) を選択します。
  10. formatdescriptionprice エレメントについてステップ 8 と 9 を繰り返します。

これで、それぞれのエレメントごとにコンテンツ・モデルが指定されました。 CDLib エレメントには CD エレメントしか含めることはできませんが、CD エレメントには、artist、format、description、および price エレメントを含めることができます。 artist、format、description、および price エレメントに他のエレメントを含めることはできません。含めることができるのはテキストのみです。

CD エレメントに複数のエレメントを含めたいので、そのコンテンツ型子コンテンツとして定義しました。 この定義によって、CD エレメントに自動的にグループ・ノードが追加されます。 グループ・ノードによって、エレメントのコンテンツ・モデルに必要な数だけエレメントを追加できます。 また、エレメントを順序どおりにソートするか、選択が可能であるか (選択できるのはいずれか 1 つのオプションだけです)、またエレメント・グループの発生回数も決定できます。

一般に、CD ライブラリーには複数の CD が含まれます。 DTD がこれを表すようにするために、CDLib エレメントのコンテンツ・モデルを変更する必要があります。

  1. 「アウトライン」ビューで、CDLib エレメントの下の CD 子エレメントを選択します。 「プロパティー」ビューには、コンテンツ・モデルのオカレンスが「1 回のみ」として表示されます (つまり、CDLib は 1 つの CD エレメントしか含むことができません)。
  2. オカレンス」ドロップダウン・リストから「1 回以上」をクリックして、そのコンテンツ・モデルが 1 つ以上の CD を含むように変更します。
  3. 「ソース」ビューのコンテンツを検討します。 CDLib エレメントは次のように表示されるはずです。<!ELEMENT CDLib (CD+)>

お客様が追加したいだけの CD を CD ライブラリーに含めることができるようになっています。

artist および format コンテンツ・モデルにも若干の変更が必要です。

  1. CD の場合、複数のアーティストが関与している場合があります。 このことは、artist 子エレメント (つまり CD の下にリストされている artist エレメント) を選択し、そのオカレンスを「1 回以上」に変更することによって示します。
  2. 1 つの CD にほとんどのタイトルを収めることができます。 そのようなタイトルについては「エレメントのフォーマット」はオプションです。 このことは、format 子エレメントを選択して、そのオカレンスを「オプション」に変更することによって示します。

結果の CD エレメントは次のようになります (「ソース」ビューに表示されます)。

<!ELEMENT CD (artist+,format?,description,price)>

属性の追加

ここで、CD エレメント (CDLib の下の子エレメントでなく親エレメント) に属性 title を追加する必要があります。 そのためには、以下のステップに従ってください。

  1. 「アウトライン」ビューで、CD エレメントのポップアップ・メニューから、「属性の追加」をクリックします。
    : すべてのエレメントは、その属性が属性リストに含まれていなければならないため、まだ属性リストがない属性をエレメントに追加すると、属性リストが自動的に作成されて、新規属性がそれに追加されます。
  2. 属性リストを拡張して、属性「NewAttribute」を選択します。 「プロパティー」ビューで、属性の名前を title に変更します。 属性タイプの値は「文字データ (CDATA)」にデフォルト設定され、属性デフォルト値はすでに「#IMPLIED」に設定されていなければなりません。

ここで、DTD を保管してください。 「ファイル」>「保管」の順にクリックします。

CDLib の定義が完了しました。次のようになっているはずです。

CDLib 定義のイメージ

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

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.