XML のインポートとエクスポート
はじめに
インポートとエクスポートはどちらも、データセットのコンテキストで実行されます。
インポートとエクスポートはプログラムで行うこともできます。
インポート
注意:
インポートされた XML ドキュメントは UTF-8 でエンコードされている必要があり、その構造はターゲットデータセットの基になるデータモデルに準拠している必要があります。
インポートモード
XML ファイルをインポートするときは、次のインポートモードのいずれかを指定する必要があります。これにより、インポート手順でソースレコードがどのように処理されるかが決まります。
|
挿入モード
|
レコードの作成のみが許可されます。ソースレコードと同じ主キーを持つレコードがターゲットテーブルに存在する場合、エラーが返され、インポート操作全体がキャンセルされます。
|
|
更新モード
|
既存のレコードの変更のみが許可されます。ソースレコードと同じ主キーを持つレコードがターゲットテーブルに存在しない場合、エラーが返され、インポート操作全体がキャンセルされます。
|
|
更新または挿入モード
|
ソースレコードと同じ主キーを持つレコードがターゲットテーブルにすでに存在する場合、そのレコードは更新されます。それ以外の場合は、新しいレコードが作成されます。
|
|
置換 (同期) モード
|
ソースレコードと同じ主キーを持つレコードがターゲットテーブルにすでに存在する場合、そのレコードは更新されます。それ以外の場合は、新しいレコードが作成されます。レコードがターゲットテーブルに存在するが、ソース XML ファイルには存在しない場合、そのレコードはテーブルから削除されます。
|
Insert および Update 操作
「byデルタ」モードを使用すると、ソース XML ドキュメントから欠落しているデータモデルエレメントを無視できます。このモードは、データサービスまたは Java API を介して有効にできます。次の表は、ソースドキュメントにエレメントが存在しない場合の Insert 操作と Update 操作の動作をまとめたものです。
|
ソース XML ドキュメントの状態
|
動作
|
|---|---|
|
ソースドキュメントにエレメントが存在しない
|
「byデルタ」モードが無効になっている場合 (デフォルト)
ターゲットフィールドの値は、次のいずれかに設定されます。
|
|
エレメントは存在するが、空 (たとえば、 <fieldA/>)
|
以下も参照してください。:
|
|
エレメントが存在し、かつ null (たとえば、<fieldA xsi:nil="true"/>)
|
サポートされていないリストを除いて、ターゲットフィールドは常に
null に設定されます。
xsi:nil="true" 属性を使用するには、名前空間宣言 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance” をインポートする必要があります。
|
欠損している値を null として設定
楽観ロック
技術属性
ebxd:lastTime がソース XML ファイルに存在する場合、インポートメカニズムは検証を実行して、最後の読み取り以降に変更された可能性のあるレコードの Update 操作を防止します。ebxd:lastTime 属性を使用するには、名前空間宣言 xmlns:ebxd="urn:ebx-schemas:deployment_1.0 をインポートする必要があります。現在のレコードはこのタイムスタンプと比較されます。それらが異なる場合、更新は拒否されます。
エクスポート
注意:
エクスポートされた XML ドキュメントは常に UTF-8 でエンコードされます。
XML にエクスポートするときに、テーブルにフィルターが適用されている場合、フィルターに対応するレコードのみがエクスポートされたファイルに含まれます。
XML エクスポートオプションは次のとおりです。
|
ダウンロードファイル名
|
エクスポートする XML ファイルの名前を指定します。このフィールドには、レコードのエクスポート元のテーブルの名前が事前に入力されています。
|
|
ユーザーフレンドリーモード
|
エクスポートされた値をユーザーフレンドリーな方法で表示するか、標準の XML 生形式で表示するかを指定します。たとえば、ユーザーフレンドリーモードでは、日付と数値はユーザーのロケールに従ってフォーマットされ、外部キーと列挙値は関連するラベルを表示します。
注意:このオプションを選択すると、エクスポートされたファイルを再インポートできなくなります。
|
|
テクニカルデータを含める
|
内部技術データをエクスポートに含めるかどうかを指定します。
注意:このオプションを選択すると、エクスポートされたファイルを再インポートできなくなります。
|
|
インデントされています
|
人間が読みやすくするためにファイルをインデントするかどうかを指定します。
|
|
XML コメントを省略
|
データの場所とエクスポートの日付を説明する生成された XML コメントをファイルから省略するかどうかを指定します。
|
フィールド値の処理
日付、時刻、日時の形式
次の日付と時刻の形式がサポートされています。
| タイプ | 形式 | 例 |
|---|---|---|
| xs:date | yyyy-MM-dd | 2007-12-31 |
| xs:time | HH:mm:ss または HH:mm:ss.SSS | 11:55:00 |
| xs:dateTime | yyyy-MM-ddTHH:mm:ss または yyyy-MM-ddTHH:mm:ss.SSS | 2007-12-31T11:55:00 |
既知の制限事項
関連付けフィールド
XML インポートおよびエクスポートサービスは、関連付け値をサポートしていません。
このようなフィールドをエクスポートしてもエラーは発生しませんが、値はエクスポートされません。
このようなフィールドをインポートするとエラーが発生し、インポート手順は中止されます。
選択ノード
XML インポートおよびエクスポートサービスは、選択値をサポートしていません。
このようなフィールドをエクスポートしてもエラーは発生しませんが、値はエクスポートされません。
このようなフィールドをインポートするとエラーが発生し、インポート手順は中止されます。