設計様式の利用 文書型定義 (DTD) 〜への設計様式の適用 SGML ドキュメントは、特定の文書型定義 (DTD) に準拠します。インフォメーション・マネージャに文書型定義で定義された要素の処理方法を理解させるには、文書型定義の基本的な要素に属性を適用します。これらの属性は、インフォメーション・マネージャの設計様式に対応します。これらは、インフォメーション・マネージャが解釈し、ドキュメントからオンラインのライブラリを構築するセマンティクスです。 この節の例は、DocBook DTD のバージョン 2.2.1 のものです。 インフォメーション・マネージャの設計様式は、インフォメーション・マネージャにおけるドキュメントの編成モデルに基づいています。インフォメーション・マネージャは、インフォメーション・ライブラリをグループ化して、そのタイトルがハイパーテキスト目次になっているセクションのブックを含むブックケースにします。これには、表やグラフィックのような特定の要素へのアクセスが含まれます。 ブックケース、ブック、セクション、タイトル、リンク、表、およびグラフィックは、ブラウザがインフォメーションを管理するために識別しなければならない重要な要素の例です。インフォメーション・マネージャは、このような種類のインフォメーションのそれぞれに対応する設計様式を提供します。インフォメーション・マネージャでこれらを識別するには、文書型定義に対応する設計様式を適用します。特に、識別したい属性をもつ各要素に、属性を追加します。文書型定義の保守を容易にするには、インフォメーション・マネージャによって提供されるパラメータ・エンティティ参照を使用します。 パラメータ・エンティティ参照の使用 インフォメーション・マネージャは、インフォメーション・マネージャ設計様式を使用する簡易な(そして推奨の)方法として、パラメータ・エンティティ参照を提供します。インフォメーション・マネージャ設計様式のエンティティ名は、/usr/dt/infolib/<lang>/SGML/dtinfo.af に格納されています。完全な属性を入力するのではなく、属性リストでパラメータ・エンティティ参照を使用することによって、文書型定義への変更を最少限にして、インフォメーション・マネージャの最新の機能を利用することができます。次に、例を示します。 完全な属性を適用するには、次のようにします。 <!ELEMENT caption - - ((%inlinechar.gp;)+) > <!ATTLIST caption %commonatts; DTINFO.TITLE CDATA #FIXED “#CONTENT” > パラメータ・エンティティ参照を使用するには、次のようにします。 <!ELEMENT caption - - ((%inlinechar.gp;)+) > <!ATTLIST caption %commonatts; %DTINFO.Title; “#CONTENT” > 文書型定義の編集の詳細については、 「設計様式の適用」 「DTINFO 設計様式の記述」 を参照してください。 DTINFO 設計様式の記述 設計様式の記述は、記述された設計様式と連携して共通に使用される関連様式を識別します。関連様式は、その対応する属性名を使用して、マニュアル中で識別されます。この節では、以下に示すことを説明します。 「セクション様式」 「値様式」 「スコープ様式」 「ハイパーテキスト様式」 「スタイル様式」 目次、ブックケース規定、およびスクラッチのスタイル・シートの作成は容易ですが、既存のブックケース、スタイル・シート、および目次の文書型定義に、インフォメーション・マネージャの設計様式を適用することができます。詳細については、ブックケース様式、スタイル・シート様式、および 「目次の設計様式」 を参照してください。 これらの設計様式は、ほとんどの dtinfogen のサブコマンドの使用前に、適用しなければなりません。 値の理解 データ値をとるインフォメーション・マネージャ設計様式では、単純な機能言語が、要素内容、属性値、およびリテラルの連携を形成する機構を提供します。引き数は、表 「値の作成の構文」 で定義されています。 値の作成の構文 構文 意味 attr() attr() は引き数として使用される属性名の値を返します。IMPLIED 属性は、空の文字列を返します。attr() は、現在の要素についてのみ参照します。 concat() concat() は、文字列の引き数(リテラル、要素内容、属性値、または他の機能の値)を連結します。 firstof() firstof() は、その引き数中の最初の空でない文字列を返します。これは、その引き数によって定義される可能性の順序から値を選択します。 要素名 要素名は、現在の要素の内容モデルのメンバである要素の名前を、値として使用します。 リテラル文字列 リテラル文字列は、リテラル文字列指定するために、引用符 '...' または "..." のいずれかを使用します。 #CONTENT #CONTENT は、現在の要素内容のすべてを値として使用します。
表で説明されている構文を組み合わせて、値を作成することができます。また、必要に応じて、リテラル文字列を追加することもできます。 次に、設計様式で値を指定する例を示します。 DTINFO.Title CDATA #FIXED "concat( attr(Label), RefTitle, ManVolNum )" DTINFO.Graphic CDATA #FIXED "firstof( attr(Fileref), attr(Other), #CONTENT )"
セクション様式 設計様式 セクション様式 インフォメーション・マネージャに、SGML ファイルの構造を理解させるには、セクション設計様式を適用しなければなりません。様式の値の使用と意味は、その様式の型に依存します。たとえば、章のタイトルに指定されると、値はハイパーテキスト目次に表示されます。DTINFO.Graphic では、値はグラフィック・データを含むファイルの名前です。これらの関係性は、表 「様式の値の意味」 で説明しています。 様式の値の意味 セクション様式 値様式の意味、適用時 DTINFO.Section セクションの値は、インフォメーション・マネージャの表示ウィンドウに表示されるものです。デフォルト値は #CONTENT です。 DTINFO.Title DTINFO.Section のタイトルの値は、インフォメーション・マネージャのブック・リストに表示されます。 DTINFO.Graphic グラフィックの値は、グラフィック・データを含むファイル名です。この値は、エンティティ参照からも引き出されます。 DTINFO.Ignore この情報は、データベースあるいは 全テキスト索引 (FulText Index) に格納されません。(したがって表示されません。) DTINFO.ShortTitle 短縮タイトルの値は、表示ウィンドウにおいて、タイトルの一部分が切り詰められるところで使用されます。
DTINFO.Section DTINFO.Section 様式を、章のようなインフォメーションの一部分を分離するコンテナ要素に適用します。DTINFO.Section を使用して、インフォメーション・マネージャの表示ウィンドウに、インフォメーションの単位として、どの要素を表示するかを定義します。dtinfogen は、DTINFO.Section を使用して、階層構造を引き出すことができます。 エンティテ名: DTINFO.Section 属性テンプレート: DTINFO.Section CDATA FIXED “#CONTENT” 関連様式: DTINFO.ID (必須), DTINFO.Scope, DTINFO.ShortTitle, DTINFO.Style, DTINFO.Title (必須), DTINFO.Value 例: <!ELEMENT Preface - - (DocInfo?, Title, TitleAbbrev?, (%sect1.gp;)) > <!ATTLIST Preface %commonatts; %DTINFO.Section; “#CONTENT” %DTINFO.Style; “sty1” %DTINFO.Title; “#CONTENT” %DTINFO.ID; “attr(id)” > DTINFO.Title 通常は、章のタイトル、ヘッダ、キャプション、図のタイトル、表のタイトル、および例のタイトルなど、どのようなタイトルであっても DTINFO.Title を適用します。 エンティティ名: DTINFO.Title 属性テンプレート: DTINFO.Title CDATA #FIXED 関連様式: DTINFO.Scope, DTINFO.Value 例: <!ELEMENT RefMeta - - (RefEntryTitle, ManVolNum?,RefMiscInfo*) > <!ATTLIST RefMeta %commonatts; %DTINFO.Title; #“CONTENT” %DTINFO.Value; “concat( RefEntryTitle, ManVolNum)” > DTINFO.ShortTitle 既存の文書型定義にタイトルの省略形があれば、その要素に DTINFO.ShortTitle を適用します。この要素の内容は、決して表示ウィンドウに表示されませんが、ダイアログのリスト項目として現われる可能性があります。内容は、全テキスト索引 (FulText Index) に現われません。 エンティティ名: DTINFO.ShortTitle 属性テンプレート: DTINFO.ShortTitle CDATA #FIXED 関連様式: DTINFO.Value 例: <!ELEMENT TitleAbbrev - - ((%inlinechar.gp;)+) > <!ATTLIST TitleAbbrev %commonatts; %DTINFO.ShortTitle; “#CONTENT” > DTINFO.Graphic グラフィック、数学の式、またはある種の表を指示する要素に DTINFO.Graphic を適用します。 エンティティ名: DTINFO.Graphic 属性テンプレート: DTINFO.Graphic CDATA #FIXED 関連様式: DTINFO.Scope, DTINFO.ID. 例: <!ELEMENT Graphic - - CDATA> <!ATTLIST Graphic Entityref ENTITY #IMPLIED Fileref CDATA #IMPLIED Format NOTATION %notationtypes; #IMPLIED Id ID #IMPLIED %DTINFO.Graphic; “#CONTENT” %DTINFO.ID; “:attr( ID )” %DTINFO.Scope.Graphic; > DTINFO.Table We may not support DTINFO.Table - so it may be commented out in future documentation. CALS の表モデルにしたがって、SGML でエンコードされた表を指示する要素は、DTINFO.Table 属性を受け付けるべきです。そうでなければ、DTINFO.Graphic を受け付けるべきです。 エンティティ名: DTINFO.Table 属性テンプレート: DTINFO.Table CDATA #FIXED 関連様式: Scope.Table 例: <!ELEMENT InformalTable - - ((%tblcontent.gp;)) -(Table|InformalTable)> <!ATTLIST InformalTable %commonatts; Colsep %yesorno; #IMPLIED Frame (Top|Bottom|Topbot|All|Sides|None) #IMPLIED Orient (Port | Land) #IMPLIED Pgwide %yesorno; #IMPLIED Rowsep %yesorno; #IMPLIED Tabstyle NMTOKEN #IMPLIED %DTINFO.Table; “#CONTENT” %DTINFO.Scope.Table; > DTINFO.Ignore 表示したくないインフォメーションを含む要素に DTINFO.Ignore を適用します。要素に有用なハイパーテキスト・インフォメーションがある場合は、構築過程において使用されます。たとえば、DTINFO.Value を指定して、ハイパーテキストの値を作成することができます。 エンティティ名: DTINFO.Ignore 属性テンプレート: DTINFO.Ignore CDATA #FIXED 関連様式: DTINFO.Value 例: <!ELEMENT InternalComment - - ((%inlinechar.gp;)+)> <!ATTLIST InternalComment %DTINFO.Ignore; “#CONTENT” %DTINFO.Value; “#CONTENT” >
値様式 設計様式 セクションの値様式 DTINFO.Value 様式は、設計様式の戻り値を定義します。DTINFO.Value は、最上位の要素への値を返します。たとえば、要素 foo が内容モデル a?b をもち、foo は設計様式 DTINFO.Title firstof “(a,b)” を使用する、と仮定しましょう。a の値は、その Label 属性とその内容を連結することによって形成されます。この形成は、DTINFO.Value を使用して処理し、foo に与えることができます。 値設計様式は、以下のとおりです。 DTINFO.Value DTINFO.Value 属性は、設計様式の戻り値を指定します。DTINFO.Value の値は、値として使用されるストリームを作成する機能言語です。値は、暗黙の連結の様式をとります。引き数は、表 「値の作成の構文」 で定義しています。 エンティティ名: DTINFO.Value 属性テンプレート: DTINFO.Value CDATA #FIXED “ Value 関連様式: すべてのセクション様式 例: <!ELEMENT RefMeta - - (RefEntryTitle, ManVolNum?,RefMiscInfo*) > <!ATTLIST RefMeta %commonatts; %DTINFO.Title; %DTINFO.Value; “concat( RefEntryTitle,'(`, ManVolNum,')')” > スコープ様式 設計様式 スコープ様式 インフォメーション・マネージャでは、ユーザが検索の範囲を定義することができます。どのブックを検索範囲に含めるかブラウザに指示したり、ブック、テキスト本体、例、索引、グラフィック、表、タイトル、またはそれらの組み合わせから成るすべてのコンポーネントの検索可否を指定したりすることができます。スコープ設計様式は、インフォメーション・マネージャの検索範囲に、どの要素を含めるかを決定します。たとえば、全テキスト索引 (FulText Index) 内で、どのスコープ情報に索引を付与するかを決定します。スコープは、DTINFO.Scope が適用される要素内に含まれるどのような要素にも適用されます。 スコープ様式を要素に適用するには、DTINFO.Scope 属性を5種類の値のいずれかで適用します。要素にスコープ様式を適用しない場合、データはデフォルトのスコープ Body Text をもちます。 DTINFO.Scope として指定可能な値は、Example、Graphic、Index、Table および Title であり、次に示すエンティティによって表現されます。 DTINFO.Scope.Example DTINFO.Scope 属性を、値 Example で、例をその一部とする検索範囲に含めたいデータをもつ要素に適用します。 エンティティ名: DTINFO.Scope.Example 属性テンプレート: DTINFO.Scope Name #FIXED Example 例: <!ELEMENT Example - - (Title, TitleAbbrev?, (%para.gp; | %list.gp; | %object.gp;)+) > <!ATTLIST Example %commonatts; Label CDATA #IMPLIED %DTINFO.Scope.Example; > DTINFO.Scope.Graphic DTINFO.Scope 属性を、値 Graphic で、グラフィックをその一部とする検索範囲に含めたい要素に適用します。この設計様式により、あるグラフィック型の内部に含まれるどのような文字列も、検索による抽出および索引付けが可能になります。 エンティティ名: DTINFO.Scope.Graphic 属性テンプレート: DTINFO.Scope Name #FIXED Graphic 関連様式: DTINFO.Graphic, DTINFO.ID, DTINFO.Value 例: <!ELEMENT Graphic - - CDATA> <!ATTLIST Graphic Entityref ENTITY #IMPLIED Fileref CDATA #IMPLIED Format NOTATION %notationtypes #IMPLIED Id ID #IMPLIED %DTINFO.Graphic; %DTINFO.ID; “attr( Id )” %DTINFO.Scope.Graphic; %DTINFO.Value; “attr( Fileref )” > DTINFO.Scope.Index DTINFO.Scope 属性を、値 Index で、索引をその一部とする検索範囲に含めたい要素に適用します。 エンティティ名: DTINFO.Scope.Index 属性テンプレート: DTINFO.Scope Name #FIXED Index 関連様式: DTINFO.Section 例: <!ELEMENT (SetIndex | Index) - - (DocInfo?, (Title, TitleAbbrev?)?, (%component.gp;)*, (IndexDiv+ | IndexEntry+)) > <!ATTLIST (SetIndex | Index) %commonatts; %DTINFO.Section; DTINFO.Scope.Index; > DTINFO.Scope.Table DTINFO.Scope 属性を、値 Table で、表をその一部とする検索範囲に含めたい要素に適用します。この設計様式により、CALS SGML の表モデル内部のどのような文字列にも検索のための索引付けが行われます。 エンティティ名: DTINFO.Scope.Table 属性テンプレート: DTINFO.Scope Name #FIXED Table 関連様式: DTINFO.Table 例: <!ELEMENT InformalTable - - ((%tblcontent.gp;)) -(Table|InformalTable)> <!ATTLIST InformalTable %commonatts; Colsep %yesorno; #IMPLIED Frame (Top|Bottom|Topbot|All|Sides|None) #IMPLIED Orient (Port | Land) #IMPLIED Pgwide %yesorno; #IMPLIED Rowsep %yesorno; #IMPLIED Tabstyle NMTOKEN #IMPLIED %DTINFO.Table; %DTINFO.Scope.Table; > DTINFO.Scope.Title DTINFO.Scope 属性を、値 Title で、タイトルをその一部とする検索範囲に含めたい要素に適用します。 エンティティ名: DTINFO.Scope.Title 属性テンプレート: DTINFO.Scope Name #FIXED Title 関連様式: DTINFO.Title, DTINFO.Value 例: <!ELEMENT RefMeta - - (RefEntryTitle, ManVolNum?, RefMiscInfo*) > <!ATTLIST RefMeta %commonatts; %DTINFO.Title; %DTINFO.Scope.Title; %DTINFO.Value; “concat( RefEntryTitle, ManVolNum)” > ハイパーテキスト様式 設計様式 ロケーション様式 ハイパーテキスト設計様式に対応する属性は、DTINFO.IDDTINFO.IDREF です。これらの属性への値の設定については、表 「値の作成の構文」 を参照してください。 SGML 参照の具体的な構文は、DTINFO.IDDTINFO.IDREF の値が、1024文字を超えてはならず、英数字で始まらなければならない、と規定しています。 DTINFO.ID DTINFO.ID 属性を、リンク先を指定する要素に適用します。 エンティティ名: DTINFO.ID 属性テンプレート: DTINFO.ID CDATA #FIXED “Value 関連様式: すべて 例: <!ELEMENT Anchor - O EMPTY > !ATTLIST Anchor Id ID #REQUIRED Pagenum CDATA #IMPLIED Remap CDATA #IMPLIED Role CDATA #IMPLIED XRefLabel CDATA #IMPLIED %DTINFO.ID; “attr( Id )” > DTINFO.ID の値は一意でなければなりません。 DTINFO.IDREF DTINFO.IDREF 属性を、DTINFO.IDREF の値として指定された位置へ移動するためのホット・スポットとして使用されるデータを含む要素に適用します。 エンティティ名: DTINFO.IDREF 属性テンプレート: DTINFO.IDREF CDATA #FIXED “Value 関連様式: すべて 例: <!ELEMENT Link - - ((%inlinechar.gp;)+) > <!ATTLIST Link Endterm IDREF #IMPLIED Linkend IDREF #REQUIRED Type CDATA #IMPLIED %DTINFO.IDREF; “attr( Linkend )” > DTINFO.IDREF の値は、既存の DTINFO.ID の値にすべきです。 スタイル様式 設計様式 スタイル様式 スタイル設計様式に対応する属性は、以下のとおりです。 DTINFO.Style インフォメーション・マネージャ設計様式、DTINFO.Style を、すでに構造様式 DTINFO.Section を適用し、その継承されたスタイル・シートを上書きしたい要素に適用します。 DTINFO.Style は、DTINFO 設計様式である BookcaseBook および DTINFO.Section の要素にのみ使用することができます。 DTINFO.Style の値は、スタイル・シートの名前(スタイル・シートの DTINFO.ID 設計様式の値)であり、ブックケース規定ドキュメントで指定されたスタイル・シートとして解決されなければなりません。スタイル・シートは、それらが新規のスタイル・シートで上書きされない限り、すべての副次的なセクションによって継承されなければなりません。 DTINFO.Style の内容はスタイル・シート名のIDと一致する文字列(要素ではない)であるため、%DTINFO.Style; “‘sty1’” または様式 %DTINFO.Style “concat(‘sty1’)” のように、2回引用符で囲まなければなりません。 エンティティ名: DTINFO.Style 属性テンプレート: DTINFO.Style CDATA #FIXED “Value 関連様式: DTINFO.Section 例: <!ELEMENT Preface - - (DocInfo?, Title, TitleAbbrev?, (%sect1.gp;)) > <!ATTLIST Preface %commonatts; %DTINFO.Section; %DTINFO.Style; “‘sty1’” >
設計様式の適用 設計様式 既存の文書型定義への適用 ここで説明する手続きによって、文書型定義に設計様式を適用します。文書型定義の要素に設計様式を適用する時期については、「DTINFO 設計様式の記述」 を参照してください。 設計様式の属性の適用は、ドキュメント・インスタンスを無効にするわけではなく、ドキュメント・インスタンスの修正も必要としません。 文書型定義の先頭で、エンティティ宣言を追加し、インフォメーション・マネージャ設計様式のステートメントを使用します。 <!ENTITY % DOCBOOK PUBLIC “-//Common Desktop Environment//ENTITIES DtInfo Architectural Forms//EN” > %DOCBOOK; 文書型定義を解析し、何を表示したいのかを理解します。 コンテナ要素およびそれぞれに対応する 「セクション様式」 を識別します。たとえば、図のキャプションの要素は、Title 様式に対応します。 修正している要素の属性リストにおいて、パラメータ・エンティティ参照または完全な属性を入力します。 パラメータ・エンティティ参照を使用します。 <!ELEMENT caption - - ((%inlinechar.gp;)+) > <!ATTLIST caption %commonatts; %DTINFO.Title; “#CONTENT” > To use the complete attribute: <!ELEMENT caption - - ((%inlinechar.gp;)+) > <!ATTLIST caption %commonatts; DTINFO.Title CDATA #FIXED “#CONTENT” > 設計様式のなかには、関連する様式を必須とするものがあります。たとえば、DTINFO.Section 様式には、DTINFO.TitleDTINFO.ID が必須です。詳細については、「DTINFO 設計様式の記述」 を参照してください。 対象とする要素について、「ハイパーテキスト様式」 を適用するかどうかを決定します。 <!ELEMENT Graphic - - CDATA> <!ATTLIST Graphic Entityref ENTITY #IMPLIED Fileref CDATA #IMPLIED Format NOTATION %notationtypes #IMPLIED Id ID #IMPLIED %DTINFO.Graphic; %DTINFO.ID; “attr( Id )” > 最低限、 DTINFO.SectionDTINFO.Title、および DTINFO.ID 様式 を適用した後、ブックケースを構築することができます。 対象とする要素について、「データ様式」 を適用するかどうかを決定します。 <!ELEMENT Graphic - - CDATA> <!ATTLIST Graphic Entityref ENTITY #IMPLIED Fileref CDATA #IMPLIED Format NOTATION %notationtypes #IMPLIED Id ID #IMPLIED %DTINFO.Graphic; %DTINFO.ID; “attr( Id )” %DTINFO.Value; “attr( Fileref )” > 対象とする要素について、「スコープ様式」 を適用するかどうかを決定します。 <!ELEMENT Graphic - - CDATA> <!ATTLIST Graphic Entityref ENTITY #IMPLIED Fileref CDATA #IMPLIED Format NOTATION %notationtypes #IMPLIED Id ID #IMPLIED %DTINFO.Graphic; %DTINFO.Scope.Graphic; %DTINFO.ID; “attr( Id )” %DTINFO.Value; “attr( Fileref )” > DTINFO.Section 設計様式を適用した要素について、このセクションによって継承されたものではないスタイル・シートを使用するかどうかを決定します。別のスタイル・シートを使用するには、「スタイル様式」 を適用します。 <!ELEMENT Preface - - (DocInfo?, Title, TitleAbbrev?, (%sect1.gp;)) > <!ATTLIST Preface %commonatts; %DTINFO.Section; %DTINFO.Style; “sty1” > 設計様式を必要とする各要素について、手順4から7を繰り返します。