パブリッシングでの適用性
概要
XML トピックには、エレメントレベルでコンテンツを含めるかどうかを指定する論理式が含まれていることがあります。オプションと一部のコンテンツに適用される選択肢を定義するマークアップを、インライン適用性と呼びます。コンテンツを含めるか除外するかの決定は、この論理式をパブリッシング時に適用性フィルタによって選択された選択肢に対して評価することで (発行規則に設定されている場合は rootApplicabilityExpression パラメータによって) 行われます。
適用性定義式は、コンテンツへのアノテーション付けに使用される、製品のオプションと選択肢のサブセットを表します。定義式によって特定の製品にコンテンツが関連付けられ、この定義式を使用してコンテンツをフィルタできます。論理演算子を使用して単純な定義式を組み合わせることができます。
サービス構造のユーザーインタフェースでは、「構造」タブのツールバーの「フィルタ」操作セットを使用して、ダイナミックドキュメントのサービス構造とインライン適用性の両方に対してフィルタを設定できます。パブリッシングでは、パブリッシング構造およびそのダイナミックドキュメントに「オプションフィルタ」が適用されます。パブリッシング規則パラメータ rootApplicabilityExpression が設定されている場合、「フィルタ」操作セットを使用して定義されたフィルタ定義式が上書きされます。
インライン適用性フィルタは、PDF および XSL 出力タイプ用にのみサポートされます。バンドル出力の場合、フィルタは Servigistics InService ユーザーによって適用されるので、パブリッシング時にフィルタは適用されません。
適用性定義式には、AND、OR、NOT などの論理積演算子や論理和演算子を使用して指定されているオプションと選択肢の定義式を解読可能なパーサーが必要です。
APEX について
Windchill は、ATO 構文を使用して適用性の定義式を表します。バンドルのパブリッシング時、パブリッシング規則に応じて、適用性定義式が、Servigistics InService で使用できる APEX フォーマットでパブリッシングされます。パブリッシング規則の詳細については、「バンドルでの適用性定義式」セクションを参照してください。
APEX は LISP プログラミング言語に基づく構文です。LogicalExpression プロパティの値が、Windchill オブジェクトに適用される APEX 適用性定儀式になります。このプロパティは、DMPmap.xml および hierarchy.xml ファイルにあり、それぞれがパブリッシングされたバンドルのサービス構造とサービス製品階層に対応します。
APEX 定義式の文法を理解するために、以下のテーブルを使用してください。
APEX 文法のシンボル
|
APEX 定義式の文法
|
expression
|
"(" expression-body ")" | constant
|
expression-body
|
polyadic-body | choice-body | function-body
|
polyadic-body
|
polyadic-op s expression expression-list
|
choice-body
|
"IS" s quote string-list
|
function-body
|
name string-list
|
expression-list
|
empty | s expression s expression-list
|
string-list
|
empty | s quote s string-list
|
S
|
" " | " " s
|
polyadic-op
|
"AND" | "OR" | "NOT"
|
constant
|
"TRUE" | "FALSE" | "UNKNOWN"
|
quote
|
' string '
|
例
|
+ で示される AND 演算子は、/ で示される OR 演算子よりも優先度が高いので、割り当てられた定義式を括弧内に定義する必要があります。
|
例 1:
タイヤオプションが 155 または 145 で、カラーオプションが黒または赤になる定義式が、Windchill のオブジェクトに割り当てられています。ATO フォーマットでは以下のようになります。
("155"/"145") + (Black/Red)
対応する APEX フォーマットは以下のとおりです。
(AND (IS 'Tire' '155' '145') (IS 'Colour' 'Black' 'Red')
例 2:
リリースオプションが X-24 または X-26 になる定義式が、Windchill のオブジェクトに割り当てられています。リリース X-24 には、M022 または M023 のメンテナンスオプションがあります。ATO フォーマットでは以下のようになります。
(“X-24” + (“M022”/”M023”) ) / ”X-26”
対応する APEX フォーマットは以下のとおりです。
(OR (AND (IS 'release' 'X-24') (IS 'maintenance' 'M022' 'M023')) (IS 'release' 'X-26'))
例 3:
以下のようなサービスエフェクティビティを持つ定義式が、Windchill のオブジェクトに割り当てられています。
ファミリーオプションに X96 が割り当てられており、コンテキストは K95 または K96 モデルです。サービスエフェクティビティタイプは、12000 ~ 13000 の範囲が設定されたシリアル番号です。上記の定義式とサービスのエフェクティビティに対応する ATO フォーマットは以下のようになります。
(AND (IS 'family' 'X96') (IS 'model' 'K95' 'K96') (IS 'serialNo' '12000' '13000'))
スタイルシートの設定
ルートサービス構造ドキュメント Identfier.xml 内のインライン適用性定義式をメッセージボディに送信する場合、適用性定義式を Identfier.xml から出力 DITA マップ内の適切な場所 (topicref や topic エレメントなど) にコピーするよう pubstructXsl スタイルシートを修正する必要があります。
パブリッシング規則の設定
PDF および XSL 出力用パブリッシング規則を作成する場合、Arbortext PE サーバー でのパブリッシング時にどのパブリッシング規則パラメータを適用するか検討する必要があります。基本的な適用性のパブリッシング規則パラメータを使用して、ダイナミックドキュメントの構造とインラインコンテンツの両方に適用できます。com.ptc.arbortext.pe/ は次のものより優先されます。
• applicabilitySyntax
メッセージボディ内の適用性定義式に使用される適用性構文の名前を指定します。applic::registerSyntax() ACL メソッドを使用して Arbortext PE サーバー で登録される名前を指定します。デフォルトはありません。
Servigistics InService で使用するためにバンドルがパブリッシングされ、構造とそのトピックの両方で ATO および同じソース構文が使用されている場合、applicabilitySyntax はバンドルのパブリッシングに必要な唯一のパラメータです。
• rootApplicabilityExpression
パブリッシング時にサービス構造全体とコンテンツに適用する適用性定義式を指定します。定義式の構文は、サービス構造および XML テキストコンテンツ内の構文と一致する必要があります。
ダイナミックドキュメントのインライン適用性を有効または無効にするには、disableInlineApplicFiltering を使用します。インライン適用性を無効にするには true (デフォルト) を指定し、有効にするには false を指定します。
パブリッシング規則パラメータの詳細については、
サービス Worker パラメータを参照してください。
構文パーサーの実装
適用性構文はオプションセットのラベルを使用した基本形式をとり、ラベルは一意の選択肢名であるものと見なされます。適用性定義式では演算子を使用して選択肢の組み合わせや切り捨てが行われます。登録済みの構文を使用して定義式を評価するにはパーサーが必要です。
新しい構文パーサーを実装するには、Arbortext PE サーバー の lib\classes\applicability.jar にある次の Java パッケージを使用する必要があります。
• com.ptc.arbortext.applicability.expression
オプションと選択肢のデータによってコンテンツをフィルタするための適用性定義式オブジェクトをサポートするインタフェースを含む Java パッケージ。オプションエレメントは名前、説明、および選択肢エレメントのセットを持ちます。オプションエレメントと選択肢エレメントは、ユーザーインタフェースおよび適用性定義式で使用されるラベル属性を持ちます。ラベルは各オプションセット内で一意である必要があります。
• com.ptc.arbortext.applicability.representation
エレメント、属性、コンテンツ、処理命令のための適用性マークアップをサポートするインタフェースを含む Java パッケージ。
メッセージボディで、オプションと選択肢は OptionsDefinition.xml ファイルに含まれています。
適用性構文の登録
適用性構文をパブリッシング中に使用するためには、Arbortext PE サーバー で ACL 関数を使用して適用性構文を登録する必要があります。次の登録関数を使用します。
applic::registerSyntax(NAME, TEST_XPATH, EXPR_XPATH, PARSER_CLASS)
• NAME は適用性構文の名前です。
• TEST_XPATH は、エレメントに適用性定義式が存在するかどうかをチェックする XPath ブール定義式です。
• EXPR_XPATH は特定のエレメントの適用性を取得する XPath 定義式です。
• PARSER_CLASS は適用性構文のパーサーのクラス名です。
ATO パーサーはサーバー上でデフォルトで使用でき、次のように登録されています (改行は無視してください)。
applic::registerSyntax("ATO", "boolean(@*[namespace-uri() =
'http://arbortext.ptc.com/namespace/ATO'
and local-name() = 'applic'])",
"@*[namespace-uri() = 'http://arbortext.ptc.com/namespace/ATO'
and local-name() = 'applic']",
"com.ptc.arbortext.applicability.representation.ATOParser")
バンドルでの適用性定義式
バンドルのパブリッシング時には適用性フィルタは実行されません。代わりに、Servigistics InService で適用可能なフォーマットに適用性定義式が変換されます。
パブリッシング構造の適用性は LogicalExpression メタデータプロパティにあります。トピックからの適用性が {http://arbortext.ptc.com/namespace/ATO}applic 属性にコピーされてから変換されます。
バンドルにパブリッシングされた構造には次のインライン適用性パラメータが適用されます。
• com.ptc.arbortext.pe.service/structureSourceApplicSyntax
サービス構造内の適用性定義式に使用される適用性構文の名前を指定します。Arbortext PE サーバー で applic::registerSyntax によって登録されている名前を指定します。指定しない場合、applicabilitySyntax の値が使用されます。applicabilitySyntax が指定されていない場合、デフォルトは ATO です。
• com.ptc.arbortext.pe.service/structureTargetApplicSyntax
サービスサブシステムが処理を完了した後で適用性定義式に使用される適用性構文の名前を指定します。Arbortext PE サーバー で applic::registerSyntax によって登録されている名前を指定します。指定しない場合、applicabilitySyntax の値が使用されます。applicabilitySyntax が指定されていない場合、デフォルトは ATO です。
• disableStructureApplicabilityConverter
構造内の適用性定義式を検索して変換するかどうかを指定します。有効にするには、false を指定します (バンドルでのデフォルト)。無効にするには、true を指定します。PDF ではデフォルトで無効になっています。
バンドルにパブリッシングされたトピックには次のインライン適用性パラメータが適用されます。
• com.ptc.arbortext.pe.service/topicCcfParam.sourceApplicabilitySyntax
バンドルのトピック内の適用性定義式に使用される適用性構文の名前を指定します。Arbortext PE サーバー で登録されている名前を指定します。指定しない場合、applicabilitySyntax の値が使用されます。applicabilitySyntax が指定されていない場合、デフォルトは ATO です。
• com.ptc.arbortext.pe.service/topicCcfParam.targetApplicabilitySyntax
サービスサブシステムが処理を完了した後でトピック内の適用性定義式に使用される適用性構文の名前を指定します。Arbortext PE サーバー で登録されている名前を指定します。指定しない場合、applicabilitySyntax の値が使用されます。applicabilitySyntax が指定されていない場合、デフォルトは APEX です。
• com.ptc.arbortext.pe.service/topicCcfParam.disableApplicabilityConverter
トピック内の適用性定義式を検索して変換するかどうかを指定します。有効にするには false (デフォルト) を指定します。無効にするには true を指定します。
適用性定義式のプロファイル
情報エレメントは、作成時に適用されたプロファイルを持つことができます。プロファイルのマークアップは、適用性構文を使用して適用性定義式に変換できます。プロファイルの変換は、ブール型のパブリッシングパラメータ com.ptc.arbortext.pe.service/topicCcfParam.disableProfilingConverter によって制御されます。
たとえば、次のマークアップが XML ドキュメントで見つかります。os と userlevel がプロファイルを指定します。
<chapter os="Windows Vista;Unix" userlevel="Novice">
APEX 構文が適用性定義式として指定されているパブリッシングリクエストでは、プロファイル情報が次のマークアップに変換されます。
<book xmlns:prf=http://arbortext.ptc.com/namespace/
applicability/profiling prf:syntax="APEX"
prf:optionSet="axdocbook">
<chapter prf:applic="(AND (IS 'os' 'Windows Vista' 'Unix')
(IS 'userlevel' 'Novice'))">
</chapter>
</book>
最上位レベルでの prf の名前空間 URI は、プロファイル設定を指定します。com.ptc.arbortext.pe.service/topicCcfParam.profilingAttribute パブリッシングパラメータにより、名前空間プロファイル属性が指定されます。
prf:syntax 属性は、定義式の構文を指定します。prf:optionSet 属性は、使用されるプロファイル設定ファイルのドキュメントタイプを指定します。
prf:applic 属性は、プロファイルのマークアップを含むエレメントに配置され、変換定義式が割り当てられます。
com.ptc.arbortext.pe.service/topicCcfParam.removeProfilingMarkup パブリッシングパラメータを使用してバンドルにパブリッシングしている場合、情報エレメントから元のプロファイル属性を除去できます。
パブリッシングのメッセージボディでは、OptionsDefinition.xml ファイルにプロファイル設定オプションセットのリストが含まれています。前の例では、オプションセットは次のようになります。
<OptionSet container="axdocbook.pcf" token="_oset_axdocbook_pcf"
label="Operating System, User Level, Output Type, Security Level Options">
<Option label="os" token="_opt_axdocbook_os"><Name>Operating System</Name>
<Choice label="Windows XP" token="_ch_axdocbook_pcf_os_windows_xp">
<Name>Windows XP</Name></Choice>
<Choice label="Windows Vista" token="_ch_axdocbook_pcf_os_windows_vista">
<Name>Windows Vista</Name></Choice>
<Choice label="Windows 7" token="_ch_axdocbook__pcf_os_windows_7">
<Name>Windows 7</Name></Choice>
<Choice label="Unix" token="_ch_axdocbook_pcf_os_unix">
<Name>Unix</Name></Choice>
</Option>
<Option label="userlevel" token="_opt_axdocbook_pcf_userlevel">
<Name>User Level</Name>
<Choice label="Novice" token="_ch_axdocbook_pcf_userlevel_novice">
<Name>Novice</Name></Choice>
<Choice label="Typical" token="_ch_axdocbook_pcf_userlevel_typical">
<Name>Typical</Name></Choice>
<Choice label="Expert" token="_ch_axdocbook_pcf_userlevel_expert">
<Name>Expert</Name></Choice>
</Option>
</OptionSet>
プロファイルに関するパブリッシングパラメータについては、
サービス Worker パラメータを参照してください。