ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Service Bus開発者ガイド
11g リリース1(11.1.1.4.0)
B61435-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

8 XQueryコードのアップグレード

この項では、インラインXQueryコードとスタンドアロンXQueryファイルをXQuery 2002から2004にアップグレードする手順について説明します。

ここででは次のトピックについて説明します。

8.1 インラインXQueryコードのアップグレード

Oracle WebLogic Integration 8.xプロジェクトを10gリリース3(10.1.3)以上にアップグレードする場合、デフォルトでは、インラインの(JPDファイルに埋め込まれている)XQuery 2002コードはXQuery 2004に変換されません。インラインXQueryコードをXQuery 2004に変換するには、アップグレード・ウィザードの「Source Upgrade」画面で次の手順を実行します。

図8-1 アップグレード・ウィザードの「Source Upgrade」画面

図8-1の説明が続きます
「図8-1 アップグレード・ウィザードの「Source Upgrade」画面」の説明

インラインXQueryコードをアップグレードするには、次の手順を実行します。

  1. 「JPD Document Upgrader options」を展開します。

  2. 次の図のように、「Upgrade XQ2002 to XQ2004」チェック・ボックスを選択します。

    図8-2 XQ2002からXQ2004へのアップグレード

    図8-2の説明が続きます
    「図8-2 XQ2002からXQ2004へのアップグレード」の説明

  3. アプリケーションのアップグレード・プロセスを続行します。

    アップグレード・プロセスが完了すると、JPDファイルに埋め込まれているXQuery 2002準拠のコード(インラインXQueryコード)がXQuery 2004に変換されます。

8.2 XQueryファイルのアップグレード

XQuery 2002準拠のXQueryファイルは(インラインXQueryコードとは異なり)アプリケーションのアップグレード・プロセス中にXQuery 2004に自動変換されません。

Eclipseの「Navigator」ビューでXQueryファイルを右クリックし、「Upgrade to XQuery 2004」を選択すると、XQuery 2002準拠のXQueryファイルをXQuery 2004にアップグレードできます。ただし、次のXQueryの構文と関数はXQuery 2004に変換されません。

表8-1 XQuery 2004で変更された構文

XQuery 2002 XQuery 2004 備考
precedes
follows
<<
>>

場合によっては、単に構文が変わっただけでも正しい結果にならない可能性があります。

add-timezone-to-dateTime
remove-timezone-from-dateTime
fn:adjust-dateTime-to-timezone
fn:adjust-dateTime-to-timezone

構文とパラメータの型が変更されました。XQuery 2002の構文では、パラメータの符号に関係なく、この処理は追加操作になりました。XQuery 2004では、パラメータの符号によって処理が異なります。

document()
fn:doc()

パラメータの型と戻り値の型が異なる可能性があります。

foreach
for $i in...

foreachに直接かわるものがありません。forループを使用して構文を記述し直す必要があります。

some $x in (1, 2, 3), xs:integer $y in (2, 3, 4)
every $x in (1, 2, 3), xs:integer $y in (2, 3, 4)
some $x in (1,2,3),$y in (2,3,4)
every $x in (1,2,3), $y in (2,3,4)

省略可能な型宣言があるため、この構文を確実に変換するのは困難です。


表8-2 XQuery 2004でセマンティクスが変更された関数

XQuery 2002 XQuery 2004

xf:resolve-uri(anyURI $base, anyURI $relative)

fn:resolve-uri($relative as xs:string?, $base as xs:string)

xf:distinct-values(item* $srcval) => item*

fn:distinct-values ($arg as xdt:anyAtomicType*) as xdt:anyAtomicType*


アップグレード・プロセス中、XQuery 2004でサポートされていないXQuery 2002の構文と関数には、コード内に「: Warning :」というコメント・エントリが付けられます。また、アップグレード・プロセス中に、サポートされない構文と関数があることを示す警告メッセージが表示されます。

アップグレード・プロセス後に、XQuery 2004にアップグレードされていない構文と関数を特定するには、「: Warning :」というコメントを探します。その後で、XQuery 2004標準に準拠するように、サポートされない構文と関数を手動で変更する必要があります。