マッパーでのXSLTコードの編集
マッパー内でマッピングのXSLTコードを直接編集できます。 このアクションは、グラフィカル・マッパーでマッピングが不可能なユースケースで役立ちます。 これにより、XSLTコードをOracle Integrationからエクスポートし、テキスト・エディタまたはEclipseやOracle JDeveloperなどの別のグラフィカル・ツールでコードを手動で編集し、Oracle Integrationのマッパーにコードを再インポートする必要がなくなります。
次のような高度なユースケースのXSLTコードの編集がサポートされています:
-
<xsl:variable>を使用した内部変数の作成 <xsl:for-each-group>を使用してキー・フィールド別にグループ化された複数のソースの関連付け<xsl:element>、<xsl:attribute>を使用して、ランタイム・データに基づいてターゲットの名前/値ペアを動的に作成<xsl:template>、<xsl:call-template>および<xsl:apply-templates>を使用したプッシュ・スタイルのXSLTの実装<xsl:function>を使用したXSLTでの独自の関数の記述<xsl:copy>および<xsl:copy-of>を使用したノード・セットのコピー
- 「コード」をクリックします。
マッピングの現在のXSLTコードが表示されます。
「
図mapper_code.pngの説明」
XSLTコード編集のガイドラインについては、次の項を参照してください:
編集の制限事項
XSLTコードの次のセクションは読取り専用のままであり、編集できません。
- 属性バージョン番号:
<xsl:stylesheet version="2.0" - ソースおよびターゲットが指定されるマッパー・スキーマ・セクション:
<oracle-xsl-mapper:schema xml:id="id_2"> <!--SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY.--> <oracle-xsl-mapper:mapSources xml:id="id_3"> <oracle-xsl-mapper:source type="WSDL" xml:id="id_4"> <oracle-xsl-mapper:schema location="../../application_8/outbound_9/resourcegroup_10/echoRequest_REQUEST.wsdl" xml:id="id_5"/> <oracle-xsl-mapper:rootElement name="execute" namespace="http://xmlns.oracle.com/cloud/adapter/REST/echoRequest_REQUEST/types" xml:id="id_6"/> </oracle-xsl-mapper:source> <oracle-xsl-mapper:source type="WSDL" xml:id="id_20"> <oracle-xsl-mapper:schema location="../../processor_83/resourcegroup_84/sList_REQUEST.wsdl" xml:id="id_21"/> <oracle-xsl-mapper:rootElement name="ListFilesResponse" namespace="http://xmlns.oracle.com/cloud/adapter/stagefile/sList_REQUEST/types" xml:id="id_22"/> <oracle-xsl-mapper:param name="sList" xml:id="id_23"/> </oracle-xsl-mapper:source> <oracle-xsl-mapper:source type="XSD" xml:id="id_24"> <oracle-xsl-mapper:schema location="../../processor_27/resourcegroup_28/ICSIntegrationMetadata.xsd" xml:id="id_25"/> <oracle-xsl-mapper:rootElement name="metadata" namespace="http://www.oracle.com/2014/03/ic/integration/metadata" xml:id="id_26"/> <oracle-xsl-mapper:param name="self" xml:id="id_27"/> </oracle-xsl-mapper:source> </oracle-xsl-mapper:mapSources> <oracle-xsl-mapper:mapTargets xml:id="id_7"> <oracle-xsl-mapper:target type="WSDL" xml:id="id_8"> <oracle-xsl-mapper:schema location="../../application_8/outbound_9/resourcegroup_10/echoRequest_REQUEST.wsdl" xml:id="id_9"/> <oracle-xsl-mapper:rootElement name="executeResponse" namespace="http://xmlns.oracle.com/cloud/adapter/REST/echoRequest_REQUEST/types" xml:id="id_10"/> </oracle-xsl-mapper:target> </oracle-xsl-mapper:mapTargets> <!--GENERATED BY ORACLE XSL MAPPER 12.1.2.0.0--> </oracle-xsl-mapper:schema> - グローバル・パラメータ宣言セクション:
<xsl:param name="sList" xml:id="id_28"/> <xsl:param name="self" xml:id="id_29"/> <xsl:param name="tracking_var_1" xml:id="id_30"/> <xsl:param name="tracking_var_2" xml:id="id_31"/> <xsl:param name="tracking_var_3" xml:id="id_32"/> <xsl:param name="var_assignment_1" xml:id="id_33"/>
ツールバー・オプション
XSLTコードの上のツールバーには、XSLTコードをナビゲートおよび編集するための一連のショートカットが用意されています。
| オプション | 説明 |
|---|---|
| XSLTコードに対する最後の編集変更を元に戻します。 | |
| XSLTコードに対する最後の編集変更をやり直します。 | |
| XSLTコード内の特定のエントリを検索します。 次( |
|
XSLTコード内の特定のエントリを検索して置換します。
|
|
| アクセスするXSLTコードの行番号を入力します。 |
XSLTコードの編集
XSLTコードの次のセクションでは、グラフィカル・デザイナで行った変更が反映されます。 このセクションでXSLTコードを編集して、変更内容をデザイナに反映することもできます。
<xsl:template match="/" xml:id="id_11">
<nstrgmpr:executeResponse xml:id="id_12">
<nstrgdfl:response-wrapper xml:id="id_16">
<nstrgdfl:Message xml:id="id_17">
<xsl:value-of select="/nstrgmpr:execute/nstrgmpr:TemplateParameters/nsmpr0:message" xml:id="id_18"/>
</nstrgdfl:Message>
<nstrgdfl:Welcome xml:id="id_19">"Welcome to OIC!!! Echo was successful."</nstrgdfl:Welcome>
</nstrgdfl:response-wrapper>
</nstrgmpr:executeResponse>
</xsl:template>
たとえば、次のXSLTコードを置換するとします:
<nstrgdfl:Welcome
<nstrgdfl:Welcome xml:id="id_19">"Welcome to OIC!!! Echo was successful."
</nstrgdfl:Welcome>このコードは現在マッパーにリテラル・テキストとして表示されます:
"Welcome to OIC!!! Echo was successful."のリテラル値を変数$tracking_var_3に置き換えます:<nstrgdfl:Welcome xml:id="id_19"> <xsl:value-of select="$tracking_var_3" xml:id="id_18"/> </nstrgdfl:Welcome>- 「デザイナ」をクリックします。
デザイナが更新され、変更内容が反映されます:

ノート:
マッパーで認識されない変更を加えて「デザイナ」をクリックしようとすると、タブが無効になり、変更がサポートされていないことを示すメッセージが表示されます。 デザイナに戻る前に、これらの問題を解決する必要があります。 - 「検証」または「閉じる」 (検証も実行)をクリックしてマッパーを終了し、プロンプトが表示されたら「適用」をクリックして変更を保存します。
コード検証
XSLTコードを更新すると、変更内容が検証されます。 検証保護により、エラーが発生した場合にデザイナに戻ることができなくなります。 たとえば:
- 入力ミス:
xsl:value oの最後にfを忘れたなどの誤字をするとします。
- 「デザイナ」をクリックします。 バナーにエラー・メッセージが表示され、エラーを修正するまでデザイナに戻れません。
Unknown: xsl:value-o - エラーを修正し、「デザイナ」をクリックしてデザイナに戻ります。
- XML構文エラー:
- 次のコードで、
Welcomeの後に閉じカッコ(>)を入力し忘れたなどのXML構文エラーが発生したとします。 後続のコードは、エラーを示す赤色で強調表示されます。

- 「デザイナ」をクリックします。 バナーにエラー・メッセージが表示され、エラーを修正するまでデザイナに戻ったり、「テスト」などの他のタブにアクセスすることはできません。
There are syntax errors in the edited code. Please fix them before navigating away from the tab - エラーを修正し、「デザイナ」をクリックしてデザイナに戻ります。
- 次のコードで、
- マッパーでサポートされていないコンストラクト(サポートされていない関数を含むXSLTコードをマッパーにインポートする場合など):
- 編集アイコンをクリックしてマッパーを開きます。

「コード」タブがデフォルトで開き、次のメッセージが表示されます。

- 詳細は、エラーの左側の数字を展開してください。 たとえば:

これらは、デザイナでサポートされていないコーディング・パターンおよびコンストラクタです。 デザイナは、それらをレンダリングまたは管理する方法を認識していません。 XSTLコードにサポートされていないパターンまたはコンストラクタが含まれている場合は、デザイナにナビゲートできません。
- 編集アイコンをクリックしてマッパーを開きます。