デフォルトの変換プロセスの更新
Servigistics InService では変換スタイルシートが提供され、デフォルトのカスタマイズスタイルシートがこの変換スタイルシートに含まれています。既存の定義やプロセスを修正する際にはこのカスタマイズスタイルシートを使用することをお勧めします。カスタマイズスタイルシートを更新するには、以下のガイドラインに従います。
各データタイプの変換スタイルシートには、customizations.xsl という名前のスタイルシートフラグメントが含まれています。次に示すスタイルシートの一部は、カスタマイズスタイルシートが変換スタイルシートにどのように埋め込まれているかを表します。
<?xml version="1.0"?>
<!--
Stylesheet to perform OOTB transformation on a source xml
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:stl="http://www.enigma.com/Styling" xmlns:tmpl="http://www.ptc.com/2014/Template-Document"
extension-element-prefixes="stl" version="1.0">
<xsl:output indent="yes" method="xml" />
<!--
Customization specific code will go in the stylesheet included below.
-->
<xsl:include href="customizations.xsl"/>
...
</xsl:stylesheet>
|
|
通常の変換スタイルシートには変更を行わないでください (このファイルは増分更新のたびに上書きされます)。
|
デフォルトでは、customizations.xsl は空のスタイルシートです。カスタマイズブランチは、スタイルシートのカスタマイズバージョンと XSLT の優先順位の概念を使用して、変換をオーバーライドまたは補完します。カスタマイズが完了して出力フォーマットを修正する必要がある場合は、依存ファイルを更新する必要があります。たとえば、部品の変換出力が変更された場合、部品固有のテンプレートも修正して両方を同期させる必要があります。
XSLT には優先順位の概念があるので、既存のテンプレートに一致するものはすべて、より優先順位の高い同等な定義式を入力するだけでオーバーライドできます。たとえば、次のような既存の XSL コードの処理方法をカスタマイズするとします。
<xsl:template match="Metadata">
これをオーバーライドするには、次のようなテンプレートを追加します。
<xsl:template match="Metadata" priority="2">
カスタムスタイルシートで、customizations.xsl をモジュール化し、任意の数の追加の XSLT スタイルシートフラグメントを呼び出せます。この場合、customizations.xsl は複数の xsl:include 文が追加されたものになります。これらを追加することで、XSLT エンジンがファイルを処理した後は、優先順位の値が最も高いテンプレート一致が変換を開始し、同じコンテンツのその他の一致はすべて無視されます。
このようにすると、ドキュメントのルートから既存の処理のすべてを効果的にオーバーライドしたり、プロパティと値のペアのマッピングの修正など、特定の処理を選択して行うことができます。
変換スタイルシートをさらにカスタマイズし、特定の Property/@token 値を XSLT 変数に格納されたコンマ区切りの文字列に追加し、オプトインまたはオプトアウト機能 (適用するソフト属性の選択など) をサポートすることも可能です。