例:XML データを SQLite フィールドに書き込む

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット > MapForce とデータベース > XML データから /  データベースフィールドへのマッピング >

例:XML データを SQLite フィールドに書き込む

この例は、複数の XML ファイルからデータを読み込み、  SQLite データベースに書き込む MapForce マッピングを作成する必要な手順について説明します。マッピングの目的は、それぞれのソース XML ファイルのために、  SQLite データベース内に新規の データベースを作成することです。 それぞれのレコードは、 TEXT フィールドとして XML ドキュメントを保管します。

 

使用されているサンプルは、以下のパスで見つけることができます: <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ ファイル名は、以下のとおりです:

 

マッピングデザインファイル

XmlToSqliteField.mfd

ソース XML ファイル

bookentry1.xml
bookentry2.xml
bookentry3.xml

検証に使用される XML スキーマ

books.xsd

ターゲット SQLite データベース

library.sqlite

 

マッピングのゴールを達成するには、 以下のステップを踏みます:

 

1.XML コンポーネントを追加し、複数のファイルから読み込むように構成します。
2.SQLite データベース コンポーネントを追加し、 XML スキーマをターゲット TEXT フィールドに割り当てます。
3.マッピング接続の作成とデータベース 「アクションの挿入」を構成します。

 

ステップ 1: XML コンポーネントの追加

1.挿入 メニューから XML スキーマ/ファイル をクリックし、 <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ ディレクトリ内の books.xsd スキーマを参照します。XML ファイルを提供するようにプロンプトされると、 「スキップ」 をクリックします。ルート要素を選択するようにプロンプトされると、 Books を選択します。
2.コンポーネントヘッダーをダブルクリックして、入力 XML ファイル ボックス内に bookentry*.xml を入力します。これにより、 MapForce にソースディレクトリ内の、 "bookentry-" から名前が始まるすべての XML ファイルから読み込むように命令します。この技術に関する詳細については、複数の入力または出力ファイルを動的に処理するを参照してください。

xml_to_sqlite_field_01

 

ステップ 2: SQLite コンポーネントを追加する

挿入 メニューから、 データベースをクリックし、ウィザードに従い、 <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ ディレクトリの Library.sqlite データベース ファイル に接続します ( 既存の SQLite データベースに接続する も参照してください。)。データベースオブジェクトを選択するように問われると、 BOOKS テーブルを選択します。

xml_to_sqlite_field_02

XML コンテンツが書き込まれるデータベースフィールドは、 metadata と呼ばれます。このフィールドに XML スキーマを割り当てるには、 右クリックして、 コンテキストメニューから XML スキーマをフィールドに割り当てる を選択します。

xml_to_sqlite_field_03

このチュートリアルで、 etadata フィールドに割り当てられているスキーマは、ソース XML ファイルを検証するために使用されているものと同じです。 「参照」  をクリックし、 <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ ディレクトリから books.xsd スキーマを選択します:

xml_to_sqlite_field_04

books.xsd スキーマには、次のグローバル宣言を持つ2つの要素があります: bookbooks。 この例では、 book をデータベースに書き込まれる XML のルート要素として設定します。選択をクリックして、 book をルート要素として選択します。

xml_to_sqlite_field_05

 

ステップ 3: マッピング接続の作成とデータベース 「アクションの挿入」の構成

マッピング接続の作成 は、以下の通りです:

xml_to_sqlite_field_07

上に示されるように、ソースとターゲットが同じスキーマと子要素の名前を使用するため、 book から book への接続は、"すべてをコピー" 接続です。このような接続に関する詳細については、 すべてコピー接続を参照してください。

 

一番上の接続 (books から BOOKS) は、ソース内のそれぞれの book 要素を反復し、新規のレコードを BOOKS テーブルに書き込みます。データベースコンポーネントの A:In ボタンをクリックして、データベースが、下で表示されるように設定を更新するように設定してください:

xml_to_sqlite_field_06

すべてのレコードを削除 オプションは、レコードを挿入する前に BOOKS テーブルのすべてのコンテンツを削除するように MapForce に命令します。

 

すべて挿入 アクションは、データベース INSERT クエリが行われるように指定します。フィールド metadata は、マッピングから提供される一方、フィールド id は、データベース自身から生成されます。

 

実行する前にマッピングが保存されていることを確認してください。

 

マッピングを実行し、生成された出力を確認するには、 出力 タブをクリックします。このアクションはデータベースをすぐに更新しないことに注意してください。生成されたデータベーススクリプトを実行する準備が整うと、  メニュー コマンド 出力| SQL スクリプトの実行 を選択します。(または ic-start-sel ツールバーボタンをクリックします)。


(C) 2019 Altova GmbH