カスタマイズされたスタイルを作成するほどではなくても、デフォルトのスタイルのレイアウトに多少手を加えることで便利になる場合があります。これには、変更する特定のセクションに関連付けられた属性を編集します。必要に応じて、ドキュメントに新しいセクションを追加することもできます。
[Advanced Editing (高度な編集)]アイコンを使用すると、簡単な編集モードと高度な編集モードを切り替えることができます。高度な編集モードでは、事前定義のスタイルに添付されているデフォルトのテンプレートとは異なる情報と構造を定義できます。この例では、タイトルページテンプレートがXSL形式で表示されています。このテンプレートの保守はユーザが行います。
図 16-2 事前定義テンプレートの表示

表 16-1 システムエディタの凡例
高度な編集モードを使用すると、次の要素を追加できます。
ドキュメントには複数のセクションを定義できますが、テンプレートはセクションごとに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 セクションのプロパティ値
メモ:各値は[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 サポートされているパラメータ
Style Editor (スタイルエディタ)に新しいセクションを挿入するには:
Style Editor (スタイルエディタ)で新しい.docgenファイルを作成するか、既存のファイルを開きます。
[Enable Advanced Editing (高度な編集を有効にする)]アイコンをクリックします。ドキュメントアウトラインのツリービューが展開され、属性、テンプレート、パラメータなどのセクションオブジェクト以外の追加オブジェクトも表示されます。
新規セクションの追加先となる親セクションを右クリックして、新規セクション名を指定します。例: 「My Section (マイセクション)」
(オプション)セクションオブジェクトをナビゲーションツリー内の別の場所にドラッグして並べ替えます。同じスタイル内でも、異なるスタイル間でも、コピーおよび貼り付けが可能です。
[Style Editor (スタイルエディタ)]ビューでセクションを右クリックします。[New (新規)]>[Attribute (属性)]の順に選択します。
[Attribute Name (属性名)]ウィンドウに属性の名前を指定します。例: MyAttribute (スペースなし)[OK]をクリックします。
[Properties (プロパティ)]ビューの[Value (値)]プロパティに値を指定します。例: This is my attribute value (これは属性値です)。

[Properties (プロパティ)]ビューには次の属性値が表示されます(属性はコントロールとパラメータによって定義されます)。
別のコントロールタイプの属性を表示することもできます。次の例では、まずコントロールを作成し、次にコントロールタイプをチェックボックス(デフォルト)から別のもの(テキストエリアなど)に変更しています。
[MyAttribute]を右クリックして、[New (新規)]>[Control (コントロール)]を選択します。
今作成したコントロール上にカーソルを移動し、[Properties (プロパティ)]ビューで、コントロールタイプの値を[textarea]に変更します。
セクションをクリックして変更内容を確認します。

生成されるドキュメントに、追加した属性の情報が取り込まれるようにするには、次のいずれかの操作を実行する必要があります。
テンプレートを使用せずにセクションを作成する場合(および、テンプレートが子セクションを含まないリーフセクションの場合)は、デフォルトのテンプレートによってドキュメントの属性値が生成されます。したがって、特別なアクションは必要ありません。そのセクションだけのドキュメントを生成するには、セクションの見出しを右クリックして、[Generate Doc for this Section (このセクションのドキュメントを生成する)]を選択します。ドキュメント全体を生成するには、最上部の[Generate Document (ドキュメントの生成)]アイコンをクリックします。
メモ:デフォルトのテンプレートによって生成される属性は、textbox (テキストボックス)、textarea (テキストエリア)、およびtable (テーブル)だけです(checkbox (チェックボックス)、select (選択)、comment (コメント)は生成されません)。
次のタスクを実行します。
新しく作成したセクションを右クリックします。
[新規]>[テンプレート]を選択します。

テンプレートには大半がコメントからなるデフォルトのコンテンツが含まれています。これらのコンテンツは初めてテンプレートを使用する際に役立ちます。この方法については次のタスクで説明します。ここでは、このテンプレート内のコメントを次の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, ドキュメントジェネレータのコアサポートテンプレートを参照してください。
テンプレートは次のようになるはずです。

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

新しく作成したセクションを右クリックして、[New (新規)]>[Section (セクション)]の順に選択します。[Section Name (セクション名)]ウィンドウで、新しいセクションに「Table of Contents (目次)」と名前を付けます。
この新規作成したセクションを右クリックして、[New (新規)]>[Template (テンプレート)]の順に選択します。このテンプレートのコメントは慎重に目を通してください。これらの詳細は重要です。
カスタムのセクションを作成する際には、ドキュメントになんらかの情報を挿入することになります。コメントにも記載されているとおり、開発者は通常、次のいずれかのテンプレート関数を上書きします。
次の図は、定義されるセクションを示しています。スタイルの開発者は、このテンプレートを書いて関心のある領域を上書きします。
図 16-8 テンプレートの拡張ポイント

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

この時点でドキュメントを生成しても、Table of Contents (目次)に内容は取り込まれません(周りのテキストを除く)。これは、スタイルソースがこのセクションに対して指定されていると、テンプレート側では想定するためです。ソースを指定するには:
Table of Contents (目次)セクションをクリックします。
[Properties (プロパティ)]ビューで、ソースに[]を設定します。
[MySection]を右クリックして、[Generate Doc for this Section (このセクションのドキュメントを生成する)]を選択します。

ドキュメントを生成すると、[Output XML Source Files (XMLソースファイルを出力)]というオプションがあります。このオプションの横にあるチェックボックスをクリックしてオンにしてください。ドキュメントを生成するとき、.xmlソースファイルが表示されるようになります。これらのソースファイルは、ソースを(例えば「style (スタイル)」などに)設定するときテンプレート内で使用されるXMLデータです。Designer 1.1以降では、次のソースが用意されています。
今バージョンより、環境設定ファイルによって、ドキュメントの生成でダブルバイト文字がサポートされるようになりました。特定言語向けのダブルバイトサポートを追加するには:
<install location>/Designer/eclipse/plugins/com.novell.designer.idm.docgen.processor/fontsディレクトリに移動します。
fop.xconfファイルを開きます。
font-baseタグのコメントを外し、フォントがインストールされている場所にフォントの場所を変更します。例: <font-base>C:\myfontDirectory\</font-base>
フォントファイルからメトリックファイルを生成します。まず、<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
TTF Fontファイルの場合は、generate-metric-from-ttf.batファイル、または Linux上の同等のシェルスクリプトを実行します。例: generate-metric-from-ttf.bat C:\myfontDirectory\simhei.ttf c:\myfontDirectory\simhei.xml
fontタグのコメントを外します。
メトリックXMLファイルを指すようにmetrics-url属性を変更します。
メトリックXMLファイルembed-url属性を変更します。
Document Generator (ドキュメントジェネレータ)を実行します。
上記の操作を実行すると、生成されるドキュメント内でフォントがグローバルに変更されます。
Designerでは、プロジェクトのドキュメント生成に使用できるデフォルトのスタイルが用意されています。Default_Style.docgenファイルはNovell\designer\eclipse\plugins\ com.novell.designer.idm.docgen.editor_1.0.0\content\stylesフォルダに格納されており、新しいスタイルを選択するときオプションとして表示されます。
ユーザ固有のスタイルファイルを...\content\styles フォルダに追加しておくと、新しいスタイルの基盤を選択するとき簡単に見つけることができます。
追加する.docgenファイルを特定します。
デフォルトでは、このファイルは保存したプロジェクト内のディレクトリにあります。例えば、 Blanston2.docgenファイルは、workspace\Blanston2\documentationディレクトリ内に作成されます。
.docgenファイルをStyles Library (スタイルライブラリ)(Novell\designer\eclipse\plugins\ com.novell.designer.idm.docgen.editor_1.2.0\content\styles)にコピーします。次回、Designerを開いてドキュメントを生成するときには、stylesフォルダ内に.docgenファイルが表示されます。
