Hitachi

HiRDB XML拡張機能 HiRDB XML Extension Version 10


4.1.3 XQuery変換式を使用したXMLデータの部分更新

XQuery変換式をSQL文中に記述することで,XML型列に登録したXMLデータを部分的に更新できます。SQLおよびXQuery変換式の記述形式については,マニュアル「HiRDB SQLリファレンス」を参照してください。

〈この項の構成〉

(1) テキストの正規化

XQuery変換式を使用して追加,変更されたテキストノードのテキストと,処理命令ノードの処理命令値は正規化されます。改行コードは次に示すように扱われます。

テキストノード
  • 先頭および末尾の空白文字と改行コードは除去されます。

  • テキストノード内の改行コードは,すべてLF(0x0a)に置き換えられます。

  • 空白文字と改行コードが連続する文字列は,それぞれ出現順に一つにまとめられます。

  • 一つのXQuery変換式内で,xml:space="preserve"属性を追加,更新した場合は,その属性を追加した要素の下位に追加したテキストノードは正規化しません。XML作成時や別のXQuery変換式で追加したxml:space="preserve"属性は無視されます。

  • 一つのXQuery変換式内で,xml:space="preserve"属性を指定した要素よりも下位の要素にxml:space="default"属性を追加,更新した場合,xml:space="default"属性を追加した要素の,下位に追加したテキストノードを正規化します。

処理命令ノード
  • 先頭および末尾の空白文字と改行コードは除去されます。

(2) エラーチェック

XQuery変換式を使用したXMLデータの部分更新では,新しく追加,更新するXMLノードおよびノードの削除・名前変更で発生するXMLデータのエラーをチェックします。XQuery変換式を使用したXMLデータの部分更新では,複数の更新をSQLに記述して一度に更新できます。複数指定した場合は,一つのESIS-B形式データに対して順番に更新します。しかし,エラーチェックは一つの更新ごとに行われるため,エラーが発生した時点でXQuery変換式はエラー終了します。エラーが発生した場合は,メッセージを出力します。