この項では、インラインXQueryコードとスタンドアロンXQueryファイルをXQuery 2002から2004にアップグレードする手順について説明します。
ここででは次のトピックについて説明します。
WLI 8.xプロジェクトを10gリリース3(10.1.3)にアップグレードする場合、デフォルトでは、インラインの(JPDファイルに埋め込まれている)XQuery 2002コードはXQuery 2004に変換されません。インラインXQueryコードをXQuery 2004に変換するには、アップグレード・ウィザードの「Source Upgrade」画面で次の手順を実行します。
インラインXQueryコードをアップグレードするには、次の手順を実行します。
「JPD Document Upgrader options」を展開します。
次の図のように、「Upgrade XQ2002 to XQ2004」チェック・ボックスを選択します。
アプリケーションのアップグレード・プロセスを続行します。
アップグレード・プロセスが完了すると、JPDファイルに埋め込まれているXQuery 2002準拠のコード(インラインXQueryコード)がXQuery 2004に変換されます。
XQuery 2002準拠のXQueryファイルは(インラインXQueryコードとは異なり)アプリケーションのアップグレード・プロセス中にXQuery 2004に自動変換されません。
Eclipseの「Navigator」ビューでXQueryファイルを右クリックし、「Upgrade to XQuery 2004」を選択すると、XQuery 2002準拠のXQueryファイルをXQuery 2004にアップグレードできます。ただし、次のXQueryの構文と関数はXQuery 2004に変換されません。
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... |
|
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) |
省略可能な型宣言があるため、この構文を確実に変換するのは困難です。 |
XQuery 2004でセマンティクスが変更された関数
表8-2 XQuery 2004でセマンティクスが変更された関数
XQuery 2002 | XQuery 2004 |
---|---|
|
|
|
|
キャストのルールが変更された構文: eq
、ne
、lt
、gt
、le
、ge
XQuery 2004で戻り値の型が変更された関数
時間/日付関連の関数と演算子の大部分
sortby
を含む問合せ
generic-divide
div
expanded-QName
namespaces
QName
node-name
namespace-uri
subsequence
integer-divide
round
name
XQuery 2004ではサポートされない関数: julianDay-from-date
アップグレード・プロセス中、XQuery 2004でサポートされていないXQuery 2002の構文と関数には、コード内に「: Warning :
」というコメント・エントリが付けられます。また、アップグレード・プロセス中に、サポートされない構文と関数があることを示す警告メッセージが表示されます。
アップグレード・プロセス後に、XQuery 2004にアップグレードされていない構文と関数を特定するには、「: Warning :
」というコメントを探します。その後で、XQuery 2004標準に準拠するように、サポートされない構文と関数を手動で変更する必要があります。