< 前へ | 次へ >

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

この演習では、DTD ファイル内の要素と属性の作成および変更方法について取り上げます。
始める前に、演習 1.1: DTD の作成を完了しておく必要があります。
この演習では、ご使用の DTD に以下の要素を定義します。
要素 説明
CDLib CD ライブラリー・ルート要素。その他のすべての要素が含まれています。
CD CD に関する情報が含まれるコンテナー要素。
artist CD のミュージシャン名が含まれる要素。
title CD のタイトルについて記述した属性。
format このタイトルの CD 番号について記述した要素。
説明 CD の説明が記されている要素。
price CD の価格が記された要素。

要素の作成と名前指定

以下の手順に従って、上のテーブルにリストされている要素をご使用の DTD に追加します。
  1. 「アウトライン」ビューで、DTD を右クリックし、「要素の追加」をクリックします。
  2. 「プロパティー」ビューで、要素の名前を CDLib に変更します。
  3. この DTD をもう一度右クリックして、「要素の追加」をクリックします。 「プロパティー」ビューで、要素の名前を CD に変更します。
  4. ステップ 3 を繰り返して、artistformatdescriptionprice の各要素を作成します。

要素のコンテンツ・モデルの編集

要素のコンテンツ・モデルは、ある要素に含めることのできるデータを表しています。要素を作成すると、その要素のコンテンツ・モデル・タイプを表すノードが「アウトライン」ビューに自動的に表示されます。タイプはデフォルトでは EMPTY (他の要素またはテキストは含まれません) です。各要素の値を以下のようにして変更する必要があります。
  1. 「アウトライン」ビューの「CDLib」の下にある「EMPTY」を選択します。 「プロパティー」ビューで、「その他」タブをクリックします。コンテンツ・タイプのリストから、「CD」を選択します。
  2. 「アウトライン」ビューの親要素「CD」 (「CDLib」の下の子要素ではない) の下で、「EMPTY」を選択します。
  3. 「プロパティー」ビューで、「コンテンツ・タイプ」リストにある「子コンテンツ」を選択します。このようにすると、「CD」要素の下にグループ・ノードが追加されます。
  4. このグループ・ノードを展開して、「コンテンツ・モデルへの要素の追加」を選択します。その後、「プロパティー」ビューの「一般」タブにある「コンテンツ・モデル」リストから、artist を選択します。
  5. 「グループ」ノードを右クリックします。ポップアップ・メニューで、「コンテンツ・モデルへの要素の追加」を選択します。これにより、別の子要素が追加されます。
  6. 新しい子要素を選択します。この子要素の「プロパティー」ビューで、「コンテンツ・モデル」リストから「フォーマット」を選択します。
  7. ステップ 5 と 6 を繰り返して、description 子要素と price 子要素を作成します。
  8. artist (「CD」の下にある子要素ではない) という名前の親要素をクリックして、展開します。
  9. 「EMPTY」をクリックします。「プロパティー」ビューで、「その他」タブをクリックします。コンテンツ・タイプのリストから、(#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. 1 枚の CD に関して、複数のアーティストが参加している可能性があります。これを示すには、artist 子要素 (つまり、CD の下にリストされている artist 要素) を選択して、そのオカレンスを「1 回以上」に変更します。
  2. ほとんどのタイトルの場合、その長さは 1 つの CD で収まります。そのようなタイトルの場合、format 要素はオプションとなります。このことを指定するには、format 子要素を選択して、そのオカレンスを「オプション」に変更します。
結果として、CD 要素は「ソース」ビューで以下のようになります。
<!ELEMENT CD (artist+,format?,description,price)>

属性の追加

次に、属性 titleCD 要素 (CDLib の下にある子要素ではなく、親要素) に追加する必要があります。このためには、次の手順で行います。
  1. 「アウトライン」ビューで CD 親要素を右クリックし、「属性の追加」を選択します。注: すべての要素の属性は、属性リストにリストされている属性でなければなりません。そのため、属性リストにまだない属性を要素に追加すると、属性リストが自動的に作成されて、新規属性がそのリストに追加されます。
  2. 属性リストを展開し、「新規属性」を選択します。 「プロパティー」ビューで、その属性の名前を title に変更します。 属性タイプ値のデフォルトは文字データ (CDATA) で、属性デフォルト値は #IMPLIED になっているはずです。
  3. DTD を保存するには、「ファイル」 > 「保存」を選択します。
これで、ご使用の CDLib 定義が完成しました。次のようになります。

演習のチェックポイント

DTD エディターを使用すると、要素および属性の作成、編集操作を効率的に実行できます。
これでこの演習を完了したので、以下の操作が可能です。
  • 要素の作成と名前指定
  • 要素のコンテンツ・モデルの編集
  • 要素への属性の追加
< 前へ | 次へ >

フィードバック