# 設計様式の理解

インフォメーション・マネージャを使用して、SGML ドキュメントのセットから、インフォメーション・ライブラリのブックの集まりであるブックケースを構築します。これらのドキュメントの中には、スタイル・シートのように、SGML 文書型が、インフォメーション・マネージャとともに配布される SGML 文書型定義 (DTD) によって定義されるものがあります。他のものについては、ブックの内容のように、どのような文書型定義 (DTD) でも使用することが可能です。

多くの SGML アプリケーションが、さまざまな文書型定義の要素に付与されるべきセマンティクス理解の問題に直面します。これを処理するために、インフォメーション・マネージャは、設計様式を提供します。

設計様式は、あるアプリケーションによって統一的に処理されるべき要素を含むクラスに与えられる名前です。設計様式は、ベース・クラスを定義します。このとき、特定の文書型定義において定義される特定の SGML の要素は、サブクラスとして扱われます。設計様式を実装するには、インフォメーション・マネージャの設計様式と対応する標準の SGML 属性で、文書型定義を記述します。ほとんどの場合、設計様式は、`FIXED` キーワードを使用し、すべてのドキュメント中のすべての要素のインスタンスに特定の属性値を設定することによって、定義されます。

## 設計様式の単純な例

インフォメーション・マネージャがインフォメーションを正確に管理できるように、既存の文書型定義を修正しなければなりません。たとえば、インフォメーション・マネージャは、「タイトル (title)」を使用します。これにより、インフォメーション・マネージャの表示ウィンドウのさまざまなウィンドウに表示される内容を決定します。もちろん、どのような特定の文書型定義においても、タイトル・オブジェクトの汎用識別子の選択に制限はありません。これは、`head`、`h1`、`title` などのように呼ばれます。アプリケーションがこれらのタイトル・オブジェクトを識別できるようにするために、文書型定義に属性 `DTINFO.Title` を適用します。特定の要素が `head` という名前であるとした場合の例を次に示します。

    <!ELEMENT   HEAD  - - (PCDATA) >
    <!ATTLIST   HEAD
                   DTINFO.Title  NAME #FIXED "#CONTENT">

アプリケーションがドキュメントを処理しているとき、要素 `HEAD` の各インスタンスは、`DTINFO.Title` と名付けられた属性と関連付けられます。アプリケーションは、このことを認識することができ、タイトルがあるものとして要素の内容を処理することができます。

設計様式の適用は、SGML インスタンスの検証性に影響を与えません。文書型定義への設計様式適用の詳細については、「設計様式の利用」 を参照してください。

## 設計様式のツールキット・モデルへの適合方法

図 「ツールキット・モデル」 は、インフォメーションの異なる部分が、構築過程において、どのように対話するかを示しています。図　の共有領域は、設計様式を処理する構築の一部分を表現しています。

### ツールキット・モデル

インフォメーション・マネージャによって提供される文書型定義の下におけるブックケース開発の詳細については、「ブックケース・ドキュメントの作成」 を参照してください。`dtinfoStyle.dtd` に準拠するスタイル・シートのドキュメント作成の詳細については、「スタイル・シートの作成」 を参照してください。