DITA パブリッシング
IBM® FileNet® P8 DITA パブリッシングは、次の IBM FileNet P8 機能に基づいて構築される DITA ベースの情報開発ソリューションを提供します。
- ドキュメント (サブクラス化とカスタム・プロパティー): Document クラスは、DITA のトピック、マップ、および処理プロファイル (DITAVAL ファイル) を表すように拡張されます。『DITA ドキュメント』を参照してください。
- 複合ドキュメント: 複合ドキュメントは、DITA プロジェクトを構成するファイル間の関係の追跡に使用されます。 『DITA 関係』を参照してください。
- ドキュメント分類: カスタム・ドキュメント分類子は、DITA ドキュメントのチェックイン時に適切な Document と ComponentRelationship の各サブクラスを作成します。『DITA 分類子』を参照してください。
- 照会: DITA 固有の Document と ComponentRelationship の各サブクラスは、コンテンツの再利用をサポートする強力な照会機能を提供します。『DITA 照会』を参照してください。
- パブリッシング: DITA パブリッシングでは、Rendition Engineとして DITA Open Toolkit を使用します。また、DITA プロジェクトを作業ディレクトリーにコピーして、IBM FileNet P8 システム外で処理できるようにするオプションもあります。『DITA パブリッシング』を参照してください。
DITA パブリッシングは IBM FileNet P8 のコア機能上に構築されているため、簡単にカスタマイズできます。例えば、DITA の特殊化に対するサポートの追加、特殊化された照会の作成、または独自のパブリッシング・アプリケーションの開発を行うことができます。例については、「DITA パブリッシングの操作」を参照してください。
- IBM FileNet P8 DITA パブリッシングは、DITA Language Specification v1.1 をサポートしています。
- DITA 関連のクラスとプロパティーは、DITA Publishing Extensions アドオンをインストールする際に Content Engine に追加されます。「DITA プロジェクトのセットアップ」を参照してください。
DITA ドキュメント
他のドキュメント・コンテンツと同様に、DITA ファイルは IBM FileNet P8 に Document オブジェクトとして格納されます。Document クラスは、トピック (DitaBase)、マップ (DitaMap)、および処理プロファイル (DitaVal) を表すサブクラスを含むように拡張されます。DitaBase クラスと DitaMap クラスには、DITA の主要なエレメントと属性にマップされ、強力な照会機能を提供する豊富なメタデータ のセットがあります。基本的な DITA 固有のドキュメント・サブクラスを以下の図に示します。
DitaBase
DitaBase クラスには、標準の DITA 情報タイプ (concept (概念)、glossentry (用語集)、reference (参照情報)、task (タスク)、および topic(トピック)) すべてに共通のメタデータが含まれています。DITA 分類子は、DITA のトピックとマップから (XPath を使用して) 抽出されたエレメント・ノードと属性ノードに基づいて、DitaBase メタデータの値を割り当てます。DitaBase クラスは、以下の図に示す特定の DITA 情報タイプを表すようにさらにサブクラス化されます。
DitaMap
DitaMap クラスには、すべての DITA マップに共通のメタデータが含まれています。DitaMap クラスは、DITA ブック・マップ特殊化を表すようにさらにサブクラス化され、ブックとして編成された DITA トピックのコレクションを表すメタデータを提供します。DITA 分類子は、XPath を使用して、<map> (または <bookmap>) エレメントの ID とタイトル属性を取得し、DitaMap クラスの DitaId プロパティーと DitaTitle プロパティーに割り当てます。DITA マップがブック・マップ特殊化を使用している場合、マップは DitaBookMap オブジェクトとして追加され、DITA 分類子によって追加のプロパティーが割り当てられます。DitaMap クラスと DitaBookMap クラスを以下の図に示します。
DitaVal
DitaVal クラスは、DITA 処理プロファイルを表します。IBM FileNet P8 Publish Style Template Manager は、このタイプのオブジェクトを検索して、IBM FileNet P8 システムに格納されている処理プロファイルを特定します。
DITA 関係 (DITA Relationships)
DITA 関係は、IBM FileNet P8 複合ドキュメントを使用して追跡されます。ComponentRelationship クラスは、以下の図に示すさまざまなタイプの DITA 関係を表すように拡張されます。
ComponentRelationship サブクラスは次のように定義されます。
- DitaBaseref は、DITA 固有のすべてのコンポーネント関係クラスのスーパークラスです。
- DitaConref は、コンテンツ参照 (conref 属性で指定) を含む DITA のマップやトピックと、参照されるコンテンツ・フラグメントを含むマップやトピック間の関係を指定します。
- DitaImageref は、DITA トピックと現在の情報セットの一部を構成するイメージ間の関係を指定します。
- DitaLinkref は、現在の情報セット内の別のファイルへのリンク関係を指定します。
- DitaMapref は、DITA マップとサブマップ間の関係を指定します。
- DitaTopicref は、DITA マップとローカル・リソース (例えば、DITA、HTML、または PDF の各ファイル) 間の関係を指定します。
- DitaXref は、現在の情報セット内の別のファイルへの相互参照関係を指定します。
DITA 分類子は、XPath を使用して、DITA トピックまたはマップ・ファイルを解析し、関係を識別して、対応する関係オブジェクトを作成します。詳細情報については、DITA 分類子 (DITA Classifier) を参照してください。
DITA マップやトピックと IBM FileNet P8 システム内の他の Document オブジェクトとの間に作成できるデフォルトの関係タイプを、次の図に示します。必要に応じて、他のコンポーネント関係タイプを追加して、特定の DITA パブリッシング要件をサポートできます。「DITA プロジェクトのセットアップ」を参照してください。
DITA マップの関係
DitaMap オブジェクトは、DitaConref、DitaMapref、および DitaTopicref の 3 つのタイプのコンポーネント関係をサポートします。これらの関係は、親 DitaMap オブジェクトを子のコンテンツ・フラグメント、サブマップ、またはトピック (DITA、HTML、または PDF ファイル) にリンクできます。
DITA トピックの関係
DitaBase オブジェクトは、次のタイプのコンポーネント関係をサポートします。DitaConref、DitaImageref、DitaLinkref、および DitaXref。これらの関係は、親 DitaBase オブジェクトを子のコンテンツ・フラグメント、イメージ、リンク先、または相互参照先にリンクできます。
DITA コンポーネント関係の使用
Document クラスは、ComponentRelationship オブジェクトまたはそれらがバインドされているドキュメントを取得する以下のプロパティーを定義します。
- ChildDocuments
- ChildRelationship
- ParentDocuments
- ParentRelationships
これらのプロパティーを使用すると、親コンポーネントの直接の子コンポーネントすべて、および子コンポーネントを参照する親コンポーネントすべてを検索できます。DitaBaseref サブクラス (DitaConref、DitaImageref、DitaLinkref、DitaMapref、DitaTopicref、および DitaXref) では、照会を特定タイプの関係に制限できます。例えば、子コンポーネントから特定の conref (DitaElementId プロパティーで指定) を参照するすべての親オブジェクトを検索する照会を定義できます。
DITA 分類子 (DITA Classifier)
DITA パブリッシングには、IBM FileNet P8 ドキュメント分類フレームワークにプラグインするカスタム分類子が用意されています。AUTO_CLASSIFY オプションを設定して DITA ファイルにチェックインすると、DITA 分類子は次のタスクを実行します。
- ドキュメント・クラスを割り当てます (DITA ファイルのルート・エレメントに基づいて)。注: ドキュメントが存在し、正しいドキュメント・クラスが (ドキュメント・ルート・エレメントによって定義されたように) 割り当てられている場合、分類子はドキュメント・クラスを再割り当てしません。したがって、ルート・エレメントを変更しなかった場合、設定済みの非 DITA プロパティーは、ドキュメントのチェックイン時に上書きされません。しかし、DITA 固有プロパティーのいずれかを手動で変更した場合、それらのプロパティーは、DITA ドキュメント内の対応する値と一致するように更新されます。
- 値をドキュメントの DITA 固有のプロパティーに割り当てます (DITA のエレメントと属性に基づいて)。
- 子を参照するコンポーネント関係オブジェクト (相互参照、イメージ、リンクなど) を作成します。参照対象オブジェクトが存在しない場合、分類子は、メジャー・バージョン番号 0 とマイナー・バージョン番号 1 を使用して、長さが 0 のスタブ・ファイルを作成します。このとき、このファイルを収容するフォルダーも作成します。
ドキュメント分類
DITA 分類子が実行する最初のタスクは、ドキュメント分類です。分類子は DITA トピックのルート・エレメントを調べ、割り当てる適切なドキュメント・クラスを特定します。デフォルトのマッピングを以下の表に示します。
ルート・エレメント | ドキュメント・クラス |
---|---|
<bookmap> | DitaBookMap |
<concept> | DitaConcept |
<dita> | DitaBase |
<glossentry> | DitaGlossEntry |
<map> | DitaMap |
<reference> | DitaReference |
<task> | DitaTask |
<topic> | DitaTopic |
DITA 固有のドキュメント・プロパティー
ドキュメント・クラスの特定後は、DITA 分類子は XPath を使用して、ドキュメントのエレメントと属性で定義されている主要なメタデータを取得します。メタデータは、それぞれのオブジェクト・タイプ (DitaBase、DitaMap、または DitaBookMap) に対して固有です。分類子をカスタマイズすると、DITA パブリッシング要件に応じてプロパティーのサポートを追加、削除できます。「DITA プロジェクトのセットアップ」を参照してください。
DitaBase
ドキュメントがトピック (DitaBase のサブクラス) の場合、次のプロパティーが取得されます。
プロパティー | データ型 | XPath |
---|---|---|
DitaId | 文字列 | /*/@id |
DitaTitle | 文字列 | /*/title/text() |
DitaNavTitle | 文字列 | /*/titlealts/navtitle/text() |
DitaSearchTitle | 文字列 | /*/titlealts/searchtitle/text() |
DitaKeywords | 複数値文字列 | //keyword/text() |
DitaAuthors | 複数値文字列 | //author/text() |
DitaAudiences | 複数値文字列 | //audience/@type |
DitaCategories | 複数値文字列 | //category/text() |
DitaBrands | 複数値文字列 | //brand/text() |
DitaProdNames | 複数値文字列 | //prodname/text() |
DitaPlatforms | 複数値文字列 | //platform/text() |
DitaMap
ドキュメントが汎用 DITA マップ (DitaMap) の場合、次のプロパティーが取得されます。
プロパティー | データ型 | XPath |
---|---|---|
DitaId | 文字列 | /map/@id |
DitaTitle | 文字列 | /map/@title |
DitaBookMap
ドキュメントがブック・マップ特殊化 (DitaBookMap) の場合、次のプロパティーが取得されます。
プロパティー | データ型 | XPath |
---|---|---|
DitaId | 文字列 | /bookmap/@id |
DitaTitle | 文字列 | //mainbooktitle/text() |
DitaSearchTitle | 文字列 | //booktitlealt |
DitaKeywords | 複数値文字列 | //bookmeta/keywords/keyword/text() |
DitaAuthors | 複数値文字列 | //bookmeta/author/text() |
DitaPublishers | 複数値文字列 | //publisherinformation |
DitaAudiences | 複数値文字列 | //bookmeta/audience/@type |
DitaCategories | 複数値文字列 | //bookmeta/category/text() |
DitaProdNames | 複数値文字列 | //bookmeta/prodinfo/prodname//text() |
DitaBrands | 複数値文字列 | //bookmeta/prodinfo/brand/text() |
DitaPlatforms | 複数値文字列 | //bookmeta/prodinfoplatform/text() |
コンポーネント関係の分類
DITA 分類子の 3 番目の機能は、子オブジェクトへの参照を表す ComponentRelationship オブジェクトを作成することです。DITA 分類子は、次の表に示す XPath 値に基づいて関係を識別します。
タイプ | クラス | XPath | 注 |
---|---|---|---|
コンテンツ・フラグメント | DitaConref | //@conref | 現在の情報セット内の別のファイルにリンクする各 conref 属性に対して、DitaConref オブジェクトが作成されます。コンテンツ参照とコンテンツ・フラグメントが同じファイル内にあるか、コンテンツ・フラグメントが現在の情報セット外にある場合、関係は作成されません。 |
イメージ | DitaImageref | //image/@href | イメージが現在の情報セット外にある場合、関係は作成されません。 |
リンク | DitaLinkref | //link/@href | リンク先が現在のファイル内または現在の情報セット外のファイル内にある場合、関係は作成されません。 |
マップ参照 | DitaMapref | //topicref[@format="ditamap"]/@href | フォーマット属性が「ditamap」に設定されている各 topicref エレメントに対して、DitaMapref オブジェクトが作成されます。 |
トピック参照 | DitaTopicref | //topicref[@format!="ditamap"]/@href | リソースが現在の情報セット外にある場合、関係は作成されません。 |
相互参照 | DitaXref | //xref/@href | 相互参照先が現在のファイル内または現在の情報セット外のファイル内にある場合、関係は作成されません。 |
デフォルトでは、分類子は次の ComponentRelationship プロパティー値を割り当てます。これらのプロパティーをカスタマイズすると、他の動作をサポートできます。これらの ComponentRelationship プロパティーについて詳しくは、複合ドキュメントを参照してください。
プロパティー | DITA 分類子のデフォルト値 |
---|---|
ComponentCascadeDelete | NO_CASCADE_DELETE |
ComponentPreventDelete | ALLOW_BOTH_DELETE |
ComponentRelationshipType | DYNAMIC_CR |
CopyToReservation | FALSE |
VersionBindType | LATEST_MAJOR_VERSION |
- 現時点で、この分類子は、DITA のエレメントと属性から抽出するすべての文字列について、64 文字を超える部分を切り捨てます。このサイズは、IBM FileNet P8 で文字列プロパティーに割り当てられるデフォルト値です。この値を変更する手順については、「DITA プロジェクトのセットアップ」を参照してください。
- 各ドキュメント・バージョンについて新しい関係が作成されます。このため、例えば、新しいバージョンのトピックにチェックインすると、分類子によって新しいバージョンのドキュメント・クラス、プロパティー、および関係が割り当てられます (古いバージョンのドキュメント・クラス、プロパティー、および関係はそのまま残ります)。
DITA 照会
DITA ドキュメントと DITA 関係 (DITA Relationships) で説明したクラスとプロパティーを使用すると、コンテンツの取得と再利用をサポートする高度な照会を作成できます。いくつかの照会の例を以下のセクションにリストします。Content Engine API を使用して照会を実行する方法を示すコード例については、「DITA メタデータの検索」を参照してください。
コンテンツ・フラグメントが参照されているかどうかを判別する。
この照会は、指定されたコンテンツ・フラグメントのエレメント ID と子ドキュメントを参照する、単一のコンテンツ参照 (conref) の ComponentRelationship 行 (DitaConref の特殊化を含む) を取得します。
SELECT TOP 1 Id FROM DitaConref
WHERE ChildComponent =OBJECT('{GUID}')
AND DitaElementId = 'x'
トピックがマップによって参照されているかどうかを判別する。
この照会は、指定された子ドキュメントとトピック ID を参照する、単一のトピック参照 (topicref) の ComponentRelationship 行 (DitaTopicref の特殊化を含む) を取得します。
SELECT TOP 1 id FROM DitaTopicref
WHERE ChildComponent =OBJECT('{GUID}')
AND DitaId = 'some-id'
同じユーザーが作成したすべてのトピックを返す。
この照会は、ユーザーが作成者として指定されている最新バージョンの DITA トピック (タスクや概念など) を取得します。
SELECT id FROM DitaBase
WHERE user IN DitaAuthors
AND IsCurrentVersion = true
DITA パブリッシング
DITA パブリッシングでは、お客様がインストール済みの DITA Open Toolkit のインスタンスを Rendition Engineとして使用することができます。DITA Open Toolkit の詳細については、DITA Open Toolkit Project Home を参照してください。
DITA パブリッシングは、次のように IBM FileNet P8 パブリッシング・フレームワークに統合されます。
- DITARenditionEngineConnection は、RenditionEngineConnection を拡張し、次を含みます。
- DITA パブリッシング要求のデータベース・トランザクション・タイムアウト。「DITADatabaseTimeout プロパティー」を参照してください。
- DITA Open Toolkit がインストールされているディレクトリー。「DITAHome プロパティー」を参照してください。
- DITA Open Toolkit の開始に使用されるオプションの Java™ 仮想マシン (JVM) 引数。「DITAJVMArguments プロパティー」を参照してください。
- Content Engine 内の DITA コンポーネント・ドキュメントがコピーされる作業ディレクトリー。「DITAWorkingDirectory プロパティー」を参照してください。
- DITA 固有のパブリッシュ・スタイル・テンプレート変換オプションは、(IBM FileNet P8 システム外のファイルを処理できるように) 出力フォーマット、DITAVAL ファイルとタイトル (オプション)、および「copy-only」操作を実行するかどうかを指定します。
- DITA パブリッシュ要求ハンドラーは、次のタスクを実行します。注: copy-only 操作の場合、ハンドラーは最初の 2 つの項目のみ実行します。
- IBM FileNet P8 DITA プロジェクト・ファイル (プロジェクトのトップレベルの DITA マップに指定されているファイル) を作業ディレクトリーの固有のフォルダーにコピーします。
- パブリッシュ操作に関連する情報をログに記録します。
- DITA Open Toolkit の開始に使用される CLASSPATH、ANT_HOME、および PATH の各環境変数を設定します。変数は、次のいずれかの方法を使用して設定されます。
- 動的: 環境変数は、DITA Open Toolkit フォルダーの内容に基づいて実行時に設定されます。
- 静的: p8dita.env という名前のファイルがトップレベルの DITAHome フォルダーに存在する場合、そのファイルの内容が環境変数の設定に使用されます。詳細については、p8dita.env ファイルの作成を参照してください。
- JVM 引数、出力ディレクトリー、変換タイプ、作業ディレクトリー、および DITARenditionEngineConnection オブジェクトと PublishStyleTemplate オブジェクトで指定される DITAVAL ファイルを使用して、DITA Open Toolkit を指定された DITA マップ上で開始します。DITA パブリッシュ要求ハンドラーは、一時ディレクトリーも指定します。このディレクトリーは、作業ディレクトリーの下にあり、DITA Open Toolkit がファイルを処理するために使用されます。
- DITA Open Toolkit のパブリッシュ操作が成功すると、ハンドラーは PublishTemplate オブジェクトで指定されたオプションとパブリッシュ・オプションの XML を使用して、レンダリングされた PDF をチェックインします。