16.4 ドキュメントスタイルの高度な編集

カスタマイズされたスタイルを作成するほどではなくても、デフォルトのスタイルのレイアウトに多少手を加えることで便利になる場合があります。これには、変更する特定のセクションに関連付けられた属性を編集します。必要に応じて、ドキュメントに新しいセクションを追加することもできます。

16.4.1 高度な編集モードの内容

[Advanced Editing (高度な編集)]アイコンを使用すると、簡単な編集モードと高度な編集モードを切り替えることができます。高度な編集モードでは、事前定義のスタイルに添付されているデフォルトのテンプレートとは異なる情報と構造を定義できます。この例では、タイトルページテンプレートがXSL形式で表示されています。このテンプレートの保守はユーザが行います。

図 16-2 事前定義テンプレートの表示

表 16-1 システムエディタの凡例

アイコン

名前

説明

緑のページ

緑のページは、タイトル付きセクションを意味します。このタイトルは、ドキュメントを生成するとき表示されます。

グレーのページ

グレーのページは、タイトルなしのセクションを意味します。これらのページは括弧で囲んで示されます。例: (Title Page (タイトルページ))

白のページ

白のページは、このセクションが無効であり、ドキュメント生成時に取り込まれないことを意味します。

テンプレート

黄色のテンプレートページは、ドキュメントの生成時に使用される特定の形式とスタイルを定義します。

グローバル属性

グローバル(赤)属性は、自分の下位のすべてのセクション(子セクション)に継承されます。

ローカル属性

ローカル(緑)属性は、それが表示されるセクションだけで使用されることを意味します。

グレー属性

グレー属性は、その属性が使用されていないことを意味します。

コントロールアイコン

コントロールタイプは、属性に指定できる機能を定義します。各コントロールタイプには異なる機能があります。

高度な編集モードを使用すると、次の要素を追加できます。

ドキュメントには複数のセクションを定義できますが、テンプレートはセクションごとに1つしか定義できません。テンプレートは、セクションのレイアウトを定義します。新規に作成したセクションにはデフォルトのテンプレートを使用できます。セクションの外観を定義する複数の属性以外にも、複数のコントロールを指定することもできます。コントロールタイプのオプションを指定するには、パラメータ(名前や値など)を使用します。パラメータは、コントロールの子項目の一般名です。コントロールの名前は、コントロールのタイプと、そのタイプを使用して実行できる操作を表します。

セクション

セクションとは、属性、パラメータ、テンプレート、コントロールからなる、XSLで記述されたドキュメントのブロックです。セクションの目次には、Title (タイトル)、Body (本文)、subordinate (下位)情報が含まれます。次の例は、簡単な編集モードで表示したIdentity Manager Systemの[Section Properties (セクションのプロパティ)]ページを示しています。

図 16-3 [Section Properties (セクションのプロパティ)]ページ

[Identity Manager System]セクションには、セクションのタイトルと多数のタブ(属性)である[Document Properties (ドキュメントのプロパティ)]、[Client Properties (クライアントのプロパティ)]、[Header (見出し)]、[Font Settings (フォントの設定)]、[Other (その他)]があります。各タブには、編集可能なフィールドがあります。例えば、セクションのタイトルの名前は変更できます。[Advanced Editing (高度な編集)]アイコンをクリックすると、[Identity Manager System (Identity Managerシステム)]セクションの見出しの下に、1つのテンプレート、および複数の属性、コントロール、パラメータが含まれていることが分かります。

図 16-4 高度な編集モード

セクションのプロパティの表示と編集

[Style Editor (スタイルエディタ)]内で特定のセクションをクリックして[Properties (プロパティ)]ビュー(デフォルトではDesignerの左下隅)を見ると、選択したセクションに関連付けられた値を確認できます(デフォルトで[Properties (プロパティ)]ビューが表示されない場合は、セクションを右クリックして[Show Properties(プロパティの表示)]をクリックします)。

図 16-5 「Appendix B: Schema (付録B: スキーマ)」の[Properties (プロパティ)]ビュー

これらの値は[Properties (プロパティ)]ビューで編集できます。セクションには、[Enabled (有効)]、[Id (ID)]、[Numbered (番号)]、[Source (ソース)]、[Title (タイトル)]、[Titled (タイトル付き)]の各値があります。

表 16-2 セクションのプロパティ値

プロパティ名

説明

Enabled (有効)

(True/False)このセクションが有効かどうかを示します。この設定は、Section Style Editor (セクションスタイルエディタ)を使用して変更できます。このエディタは、階層ビューの右側に表示されます。

ID

参照用のIDです。ほとんどの場合、IDは空のままです。しかし、ID を指定することで、変換処理中にこのセクションを見つけやすくなります。

Numbered (番号)

(True/False)このセクションに番号を付け、目次に含める必要があるかどうかを指定します。

Source (ソース)

テンプレートの転送に使用されるデータソース。たとえば、designer、style (スタイル)、none (なし)など。

Title (タイトル)

タイトルとして表示される値。この設定は、Section Style Editor (セクションスタイルエディタ)を使用して変更できます。このエディタは、階層ビューの右側に表示されます。

Titled (タイトル付き)

(True/False)生成されたドキュメントにタイトル値を表示する必要があるかどうかを示します。表示しない場合は、GUIでコンテキストとしてのみ使用されます。

バージョン

セクションのバージョン。

メモ:各値は[Style Editor (スタイルエディタ)]ビューで選択した内容によって変わります。例えば、属性を選択している場合と、セクションやテンプレートを選択している場合とでは、表示されるプロパティが異なります。

テンプレート

テンプレートとは、生成されるページ全体のレイアウトを定義するXMLソースです。例えば、タイトルページには、多くの他の見出しだに加えて、テンプレートが含まれています。次の図は、Executive Summary (エグゼクティブサマリー)テンプレートの一部です。テンプレートの詳細については、操作チュートリアルを参照してください。

図 16-6 Executive Summary (エグゼクティブサマリー)テンプレートの一部

属性

属性はセクションの子要素です。例えば、セクションのタイトルIdentity Manager Systemを選択した状態で[Advanced Editor (高度なエディタ)]モードをクリックすると、次の属性は赤(グローバル)、緑(ローカル)、グレー(未使用)で表示されます。

図 16-7 属性

コントロールとパラメータ

パラメータを追加すると、各要素の表示方法を制御できます。[Advanced Editing (高度な編集)]モードでは、Short (abbreviated) Solution Name (簡略型ソリューション名)エントリの構造が、コントロールとラベルを含むグローバルな属性になります。次の例では、コントロールのタイプは、生成されるドキュメントの名前を誰でも入力できるテキストボックスです。コントロールを編集するには[プロパティ]ビューを使用します。

Designerでサポートされているコントロールのパラメータまたは値は次のとおりです。

表 16-3 サポートされているパラメータ

コントロール

パラメータまたは値

説明

テーブル

columns=“3” header=“date” width=“30” label=“show this” addrows removerows

コントロール内に表示する列の数。列見出しのテキスト。各列の幅。このコントロールの表示内容を説明するラベル。この機能を実行するボタンを表示。この機能を実行するボタンを表示。

ファイル

extensions=“.jpg;*.gif” label=“show this”

セミコロンで区切られた、サポートされている拡張子(*.jpg;*.jpeg;*.gif)。(1ファイルのみ)ラベルはこのコントロールの機能を説明します。

選択(Identity Manager System/フォントの設定)

option=“font 1” option=“font 2” label=“show this”

フォントポイント選択用パラメータ(例: option = “20pt” and option = “24pt”)。ラベルはこのコントロールで実行できる機能を示します。

チェックボックス

label=“show this”

ラベルはこのコントロールの機能を説明します。ラベルには1つのチェックボックスが含まれます。

テキストボックスまたはテキストエリア

label=“show this”

名前はテキストボックスまたはテキストエリアコントロールのタイトルです。これらのコントロールを編集するには[Properties (プロパティ)]ビューを使用します。

コメント

label=“show this”

ユーザにガイドを提供するコメントを追加できます。このコントロールを編集するには[Properties (プロパティ)]ビューを使用します。

16.4.2 操作チュートリアル

新規セクションの作成

Style Editor (スタイルエディタ)に新しいセクションを挿入するには:

  1. Style Editor (スタイルエディタ)で新しい.docgenファイルを作成するか、既存のファイルを開きます。

  2. [Enable Advanced Editing (高度な編集を有効にする)]アイコンをクリックします。ドキュメントアウトラインのツリービューが展開され、属性、テンプレート、パラメータなどのセクションオブジェクト以外の追加オブジェクトも表示されます。

  3. 新規セクションの追加先となる親セクションを右クリックして、新規セクション名を指定します。例: 「My Section (マイセクション)」

  4. (オプション)セクションオブジェクトをナビゲーションツリー内の別の場所にドラッグして並べ替えます。同じスタイル内でも、異なるスタイル間でも、コピーおよび貼り付けが可能です。

属性の追加

  1. [Style Editor (スタイルエディタ)]ビューでセクションを右クリックします。[New (新規)]>[Attribute (属性)]の順に選択します。

  2. [Attribute Name (属性名)]ウィンドウに属性の名前を指定します。例: MyAttribute (スペースなし)[OK]をクリックします。

  3. [Properties (プロパティ)]ビューの[Value (値)]プロパティに値を指定します。例: This is my attribute value (これは属性値です)。

    値プロパティビュー

[Properties (プロパティ)]ビューには次の属性値が表示されます(属性はコントロールとパラメータによって定義されます)。

  • [Global (グローバル)]: サブセクションに継承される
  • [Group (グループ)]:属性をグループ化するときのグループ名。このグループ名は、[Style Editor (スタイルエディタ)]の簡単モードのタブの一部に表示されます。
  • [Name (名前)]: 属性の名前
  • [Value (値)]: 属性の値

別のコントロールタイプの属性を表示することもできます。次の例では、まずコントロールを作成し、次にコントロールタイプをチェックボックス(デフォルト)から別のもの(テキストエリアなど)に変更しています。

  1. MyAttribute]を右クリックして、[New (新規)]>[Control (コントロール)]を選択します。

  2. 今作成したコントロール上にカーソルを移動し、[Properties (プロパティ)]ビューで、コントロールタイプの値を[textarea]に変更します。

  3. セクションをクリックして変更内容を確認します。

    変更を適用後の状態

追加内容をドキュメントに認識させる

生成されるドキュメントに、追加した属性の情報が取り込まれるようにするには、次のいずれかの操作を実行する必要があります。

  • 自分のセクションがリーフセクション(子セクションを含まないセクション)であることを確認します。
  • 追加した属性を明示的に使用するテンプレートを作成します。通常は、この方法を推奨します。テンプレートを使用してレイアウトを記述することで、思い通りに属性値を表示できるためです。
方法1: セクションソースを「Style (スタイル)」に設定する

テンプレートを使用せずにセクションを作成する場合(および、テンプレートが子セクションを含まないリーフセクションの場合)は、デフォルトのテンプレートによってドキュメントの属性値が生成されます。したがって、特別なアクションは必要ありません。そのセクションだけのドキュメントを生成するには、セクションの見出しを右クリックして、[Generate Doc for this Section (このセクションのドキュメントを生成する)]を選択します。ドキュメント全体を生成するには、最上部の[Generate Document (ドキュメントの生成)]アイコンをクリックします。

メモ:デフォルトのテンプレートによって生成される属性は、textbox (テキストボックス)、textarea (テキストエリア)、およびtable (テーブル)だけです(checkbox (チェックボックス)、select (選択)、comment (コメント)は生成されません)。

方法2: カスタムレイアウト用のテンプレートを追加する

次のタスクを実行します。

テンプレートの作成

  1. 新しく作成したセクションを右クリックします。

  2. [新規]>[テンプレート]を選択します。

    テンプレート

テンプレートには大半がコメントからなるデフォルトのコンテンツが含まれています。これらのコンテンツは初めてテンプレートを使用する際に役立ちます。この方法については次のタスクで説明します。ここでは、このテンプレート内のコメントを次のXSLコマンドで置換します。

	<xsl:param name="MyAttribute"/>	<xsl:template name="Section.Body"> MyAttribute:<xsl:call-template name="Format.OutputTextArea">		                 	                    <xsl:with-param name="value" select="$MyAttribute"/>		 	           </xsl:call-template> </xsl:template>

メモ: XSL内にFormat.OutputTextAreaの呼び出しがありますが、これはDocGen Core Support (DocGen コアサポート)テンプレートに含まれているヘルパー関数です。テキストエリアにはHTMLコードを使用できますが、Format.OutputTextAreaの呼び出しによりHTMLコードが正しく解釈およびエスケープされます。ドキュメント生成用の主要なXSLライブラリコールについては、セクション C.0, ドキュメントジェネレータのコアサポートテンプレートを参照してください。

テンプレートは次のようになるはずです。

テンプレート

このセクションのドキュメントを生成すると、次のような結果が得られます。

別のセクションとテンプレートの作成

  1. 新しく作成したセクションを右クリックして、[New (新規)]>[Section (セクション)]の順に選択します。[Section Name (セクション名)]ウィンドウで、新しいセクションに「Table of Contents (目次)」と名前を付けます。

  2. この新規作成したセクションを右クリックして、[New (新規)]>[Template (テンプレート)]の順に選択します。このテンプレートのコメントは慎重に目を通してください。これらの詳細は重要です。

カスタムのセクションを作成する際には、ドキュメントになんらかの情報を挿入することになります。コメントにも記載されているとおり、開発者は通常、次のいずれかのテンプレート関数を上書きします。

  • セクションの本文 (最も一般的)
  • セクションのコンテンツ
  • セクションのタイトル

次の図は、定義されるセクションを示しています。スタイルの開発者は、このテンプレートを書いて関心のある領域を上書きします。

図 16-8 テンプレートの拡張ポイント

この例では、Section.Bodyを上書きします。Titleのデフォルトの動作を変更する必要も、他のセクションとこのセクションの関係を変更する必要もないためです(そうした変更は、ここで上書きしなくても、階層ビューを使用して、デフォルトのテンプレートで制御できます)。それには、デフォルトのテンプレートに出てくるサンプル関数のコメントを外します。次に上書き後の結果を示します。

図 16-9 テンプレートの上書き

この時点でドキュメントを生成しても、Table of Contents (目次)に内容は取り込まれません(周りのテキストを除く)。これは、スタイルソースがこのセクションに対して指定されていると、テンプレート側では想定するためです。ソースを指定するには:

  1. Table of Contents (目次)セクションをクリックします。

  2. [Properties (プロパティ)]ビューで、ソースに[style (スタイル)]を設定します。

  3. [MySection]を右クリックして、[Generate Doc for this Section (このセクションのドキュメントを生成する)]を選択します。

    このサンプルのドキュメントを生成する

ソースの表示

ドキュメントを生成すると、[Output XML Source Files (XMLソースファイルを出力)]というオプションがあります。このオプションの横にあるチェックボックスをクリックしてオンにしてください。ドキュメントを生成するとき、.xmlソースファイルが表示されるようになります。これらのソースファイルは、ソースを(例えば「style (スタイル)」などに)設定するときテンプレート内で使用されるXMLデータです。Designer 1.1以降では、次のソースが用意されています。

表 16-4 ソース (ソース)

Source Key (ソースキー)

説明

none (なし)

空のソース。ソースが指定されていないとき、または[none (なし)]が指定されたときに使用されます。

style (スタイル)

スタイルのXMLソース。Table of Contents (目次)などを作成するときに使用されます。

designer (Designer)

Designerモデルの拡張ポイントによって定義されたソース。このソースには、designerプロジェクトの環境設定に関するすべての情報が格納されます。

16.4.3 ダブルバイトのサポート

今バージョンより、環境設定ファイルによって、ドキュメントの生成でダブルバイト文字がサポートされるようになりました。特定言語向けのダブルバイトサポートを追加するには:

  1. <install location>/Designer/eclipse/plugins/com.novell.designer.idm.docgen.processor/fontsディレクトリに移動します。

  2. fop.xconfファイルを開きます。

  3. font-baseタグのコメントを外し、フォントがインストールされている場所にフォントの場所を変更します。例: <font-base>C:\myfontDirectory\</font-base>

  4. フォントファイルからメトリックファイルを生成します。まず、<install location>/Designer/eclipse/plugins/com.novell.designer.idm.docgen.processor/fonts ディレクトリに移動します。TTC Fontファイルの場合は、generate-metric-from-ttcバッチファイル、またはLinux上の同等のシェルスクリプトを実行します。例:generate-metrics-from-ttc.bat "MS Gothic" msgothic.ttc msgothic.xml

  5. TTF Fontファイルの場合は、generate-metric-from-ttf.batファイル、または Linux上の同等のシェルスクリプトを実行します。例: generate-metric-from-ttf.bat C:\myfontDirectory\simhei.ttf c:\myfontDirectory\simhei.xml

  6. fontタグのコメントを外します。

    1. メトリックXMLファイルを指すようにmetrics-url属性を変更します。

    2. メトリックXMLファイルembed-url属性を変更します。

  7. Document Generator (ドキュメントジェネレータ)を実行します。

上記の操作を実行すると、生成されるドキュメント内でフォントがグローバルに変更されます。

16.4.4 Styles Template Library (スタイルテンプレートライブラリ)へのStyle File (スタイルファイル)の保存

Designerでは、プロジェクトのドキュメント生成に使用できるデフォルトのスタイルが用意されています。Default_Style.docgenファイルはNovell\designer\eclipse\plugins\ com.novell.designer.idm.docgen.editor_1.0.0\content\stylesフォルダに格納されており、新しいスタイルを選択するときオプションとして表示されます。

ユーザ固有のスタイルファイルを...\content\styles フォルダに追加しておくと、新しいスタイルの基盤を選択するとき簡単に見つけることができます。

  1. 追加する.docgenファイルを特定します。

    デフォルトでは、このファイルは保存したプロジェクト内のディレクトリにあります。例えば、 Blanston2.docgenファイルは、workspace\Blanston2\documentationディレクトリ内に作成されます。

  2. .docgenファイルをStyles Library (スタイルライブラリ)(Novell\designer\eclipse\plugins\ com.novell.designer.idm.docgen.editor_1.2.0\content\styles)にコピーします。次回、Designerを開いてドキュメントを生成するときには、stylesフォルダ内に.docgenファイルが表示されます。

    .docgenファイルをスタイルライブラリ内に置く