高度なカスタマイズ > サービスおよびインフラストラクチャのカスタマイズ > インポートとエクスポートのフレームワーク > IX アプリケーションの作成方法 > Importer クラス
  
Importer クラス
定義: パブリック Importer クラスは ExpImporter を拡張します。
コンストラクタ:
Importer ( ApplicationImportHandler _applicationImportHandler,
WTContainerRef _targetContainer,
String _dtd,
String _ruleFileName,
String _xslPolicyFileName,
String _containerMappingFileName,
String _actorName,
Boolean _overrideConflicts,
Boolean _validate
) throws WTException
パラメータの説明:
applicationImportHandler: インタフェース ApplicationImportHandler の実装または抽象クラス ApplicationImportHandlerTemplate の拡張のいずれかを行うクラスのインスタンスです。
applicationImportHandler の役割は、XML が保存されている Jar ファイルからの抽出です。このクラスは以下の 2 つのメソッドを実装する必要があります。
getContentAsInputStream (String contentId);
getContentAsApplicationData (String contentId);
後者のメソッドでは、Windchill DB にファイルが存在しないことを示す Null が常に返される場合があります。
* 
アプリケーションインポートハンドラの実装例については、ApplicationExportHandlerForJar を参照してください。
targetContainer: オブジェクトをインポートする必要があるコンテナ
targetDTD: インポート処理で使用する DTD を指定する文字列です。インポートするファイルに指定されていない場合、IX フレームワークはこの DTD 文字列に基づいて、オブジェクトに適したハンドラおよびオブジェクトのドキュメントタイプ定義を見つけます。Windchill リリース 10.X で使用されている DTD 文字列は standardX20.dtd です。
ruleFileName: マッピング規則ファイルとして XML ファイル (前のバージョンと同じ) または XSL ファイルを使用できるので、このパラメータは文字列です。IxbElement _localMappingRules を使用するコンストラクタは、現在サポートされなくなっています。マッピング規則ファイルがないので Null に設定する場合は、コンストラクタを直接 Null 値に設定しないでください。設定すると、あいまいな参照エラーが発生します。代わりに、文字列を使用し、その文字列に Null 値を割り当て、それを ruleFileName として渡します。マッピング規則ファイルは、インポート処理の発生時、特定の属性オブジェクトを変更、オーバーライド、または除外するために使用します。
たとえば、規則ファイルは、Team Template 属性をオーバーライドし、エクスポート時にオブジェクトが属していたチームに関係なく、インポート時に "/System" ドメインの Team Template 属性を "Change" に置き換えます。
<?xml version="1.0" encoding="UTF-8"?>
<userSettings>
<mappingRules>
<COPY_AS>
<tag>teamIdentity</tag>
<value>*</value>
<newValue>Change Team (/System)</newValue>
</COPY_AS>
</mappingRules>
</userSettings>
XSL マッピング規則ファイルの例を以下に示します。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="WTPart">
<xsl:choose>
<xsl:when test="name='part_c'">
<newInfo>
<teamIdentity>Default (/System)</teamIdentity>
<folderPath>/Design</folderPath>
<versionInfo>
<versionId>B</versionId>
<iterationId>2</iterationId>
<versionLevel>1</versionLevel>
</versionInfo>
</newInfo>
</xsl:when>
<xsl:when test="number='PART_B'">
<newInfo>
<teamIdentity>Default (/System)</teamIdentity>
<folderPath>/Design<folderPath>
</newInfo>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
この XSL ファイルでは、インポート処理で part_c という名前の WTPart が見つかった場合、チームアイデンティティテンプレートをデフォルト (「/System」) に、フォルダ部品を「/Design」に、およびバージョンを B.2 にそれぞれ変更し、また、インポート処理で PART_B という番号を持つ WTPart が見つかった場合、チームアイデンティティテンプレートをデフォルト (「/System」) に、フォルダ部品を「/Design」にそれぞれ変更するよう指定します。
オーバーライドしない場合は、引数 localMapppingRules で Null を渡します。
_xslPolicyFileName: ポリシーファイル名
_containerMappingFileName: コンテナマッピングファイル名。コンテナマッピングファイルの例を次に示します。
<?xml version="1.0" encoding="UTF-8"?>
<container-info>
<container>
<source-container>/wt.inf.container.OrgContainer=
Demo Organization/wt.pdmlink.PDMLinkProduct=
DemoSourceProduct</source-container>
<target-container>/wt.inf.container.OrgContainer=
Demo Organization/wt.pdmlink.PDMLinkProduct=
DemoTargetProduct</target-container>
</container>
</container-info>
_actorName: 使用されるアクターの名前
_overrideConflicts: インポート処理で、オーバーライド可能なコンフリクトをオーバーライドするかどうかを指定するブール値です。
_validate: インポート処理で、インポートされるオブジェクトの XML ファイルを DTD に対して検証するかどうかを指定するブール値です。
Importer クラスのインスタンスは、IxbHelper クラスの newImporter() メソッドを通じて作成する必要があります。例:
Importer importer = IxbHelper.newImporter(…);