高度なカスタマイズ > ビジネスロジックのカスタマイズ > Windchill で標準を使用したデータ交換 > EXPRESS を使用した STEP データ交換 > STEP の基本 > メタデータマッピングの設定 > マッピング定義の設定
  
マッピング定義の設定
どの IXB DTD タグが条件に貢献し、何が値のマッピングに貢献するかを識別することによってマッピングを設定する必要があります。これらのコンフィギュレーションはすべて <WindchillE>\codebase\registry\ixb\mapping\IXMappingConfiguration.xml に含められる必要があります。
<Mapping preferenceDefinition="R_objectContainerPath"
mappingProcessor="wt.ixb.publicforapps.extendedmapping.processor.
SingleTagMappingProcessor">
<!-This configuration relates to preference definition
‘R_objectContainerPath’ and uses a mapping processor for single tag -!>
<Tag value="objectContainerPath" regex="true" replaceFull="true" />
<!-objectContainerPath is the tag in IX DTD that would be used to apply
the mappings defined by the preference definition. And, regular expressions
would be utilized for this mapping with full replacement of the
value by the value in the preference instance -!>
</Mapping>
ライフサイクル属性マッピングを処理する設定の例を次に示します。
<Mapping preferenceDefinition="R_lifecycle" separator=";"
mappingProcessor="wt.ixb.publicforapps.extendedmapping.
processor.MultiTagMappingProcessor">
<!-R_lifecycle is the preference definition that provides
the mapping value and the mapping processor suggests the use
of multiple tags for the mapping values-!>

<Tag value="externalTypeId" condition="true" regex="true"/>
<!-externalTypeId is the tag that sets the condition, unless the
condition is fulfilled the mapping would not be applicable.
RegEx match is applicable here -!>

<!-You can have multiple elements mapped simultaneously-!>
<Tag value="lifecycleInfo/lifecycleTemplateName"/>
<!-this is the element that is mapped -!>
<Tag value="lifecycleInfo/lifecycleState"/>
<!-This is another element that is mapped -!>
</Mapping>
* 
サンプルファイルは、システム内の次の場所にあります。..\IX_LOAD\prog_examples\Mappings\src\IXMappingConfiguration.xml
マッピングコンバータユーティリティを使用するには、このファイルのすべてのマッピング要素を IXMappingConfiguration.xml に入力する必要があります。
マッピング構造が示すように、複数のマッピングを定義できます。各マッピング要素は 1 つの preferenceDefinition と 1 つの mappingProcessor に関連付けられます。オプションの applicableXApplications 属性を指定することで、マッピングコンフィギュレーションをこれらの IX アプリケーションのみに限定できます。
applicableXApplications は、適用可能なアプリケーションのコンマ区切りリストです。これを指定しない場合、すべてのアプリケーションにマッピングが適用されます。
各マッピング要素には、1 つ以上のタグを定義できます。使用できるタグのタイプには、条件タイプ (condition=”true” 属性によって定義) とマッピング可能タイプ (非条件) があります。マッピング可能タグは、暗黙的に "condition=false" と設定されます。条件タイプのタグは、属性 "multi=true" を指定して、値属性によって参照されている特定の要素が複数のインスタンスを持つことができ、各インスタンスが取得されて条件を評価することを定義します。
マッピング可能タグのみが、マッピングされている値を返すために考慮されます。1 つのマッピング可能タイプのタグには、1 つの mappingProcessor しか適用できず、1 つの preferenceDefinition しか関連付けることができません。1 つのタグに複数のマッピング定義がある場合は、このコンフィギュレーションファイルの最初の適用可能な定義がマッピング可能タグに対して取得されます。マッピングの複数の条件タイプのタグは AND 条件になります。
複数のタグがあるということは、マッピングデータに、ソースマッピングデータとターゲットデータで (属性区切り文字を介して) 解析できるマッピングがあることを意味します。マッピングデータのソース値は、このマッピング要素に対して定義されているものと同じシーケンスに従って、区切り文字で区切られている必要があります。同様に、ターゲット値も、マッピングに対して定義されているものと同じマッピング可能タグのシーケンスに従っている必要があります。regex をサポートするために、属性 regex="true” を使用してタグを定義することもできます。デフォルトは非 regex タグ ("false") です。regex は、正規表現に基づく置換をサポートしています。マッピング可能タグの regex が true である場合、属性 replaceFull="true" を追加で指定して (デフォルトは false)、一致が検出された場合に、マッピングされている値が完全な値を置換することを示すことができます。このような定義済みの表現は自然な順序で並べ替えられ、このような定義済みのマッピングをすべて調べることによって最初の一致が試みられます。パフォーマンスの低下を回避するため、これを不必要に使用しないように注意してください。条件タイプと呼ばれているタグの値はマッピングデータで指定されていたり指定されていなかったりしますが、空白の条件値とともに適切な区切り文字を使用してシーケンスが維持されている必要があります。
既成で用意されているマッピングプロセッサ実装の数は 2 つのみです。
wt.ixb.publicforapps.extendedmapping.processor.SingleTagMappingProcessor は、regex のサポートを含む単一のタグマッピングを処理します。
wt.ixb.publicforapps.extendedmapping.processor.MultiTagMappingProcessor は、タグ (条件タグを含む) が複数あるマッピングを処理します。また、このプロセッサは、条件タグとマッピング可能タグの両方で regex をサポートします。
前述の 2 つの既成のマッピングプロセッサは、単純な文字列操作の概念において機能します。マッピングデータの考慮対象のこれらの文字列値にビジネスロジックを添付する必要がある場合は、ガイドラインに基づいて (マッピング動作のカスタマイズ で説明されているように)、これら 2 つのプロセッサを拡張するようにカスタマイズされたマッピングプロセッサ/マッパーを作成する必要があります。