< 前へ | 次へ >

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

この演習では、DTD ファイル内で 要素および属性の作成と変更を行う方法を学習します。

この演習を始める前に、 演習 1.1: DTD の作成を終了しておく必要があります。
この演習では、DTD 内で以下の要素を定義します。
要素 説明
CDLib CD ライブラリーのルート要素で、その他の要素すべてを含む。
CD CD に関する情報を含むコンテナー要素。
artist CD の演奏家の名前を含む要素。
title CD のタイトルを記述する属性。
format このタイトルの CD の数を記述する要素。
description CD の内容を説明する要素。
price CD の価格を示す要素。

要素の作成および命名

以下の手順に従って、上の表に示した要素を 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. formatdescription、および price 要素についてステップ 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」に設定されていなければなりません。
  3. DTD を保管するには、「ファ イル」 > 「保管」と選択します。
CDLib の定義が完了しました。次のようになっているはずです。

演習のチェックポイント

DTD エディターにより、要素および属性を効率的に作成 および編集できます。

以上で、この演習は終了です。 この演習では、次のことを学習しました。
  • 要素を作成し、命名する。
  • 要素のコンテンツ・モデルを編集する。
  • 要素に属性を追加する。
< 前へ | 次へ >