このサンプルでは、 XML ファイルからデータを読み取り、 SQLite データベースにデータを書き込む MapForce マッピングの作成に必要なステップについて説明されています。このサンプルにはサンプルマッピングデザイン (.mfd) ファイルが付属しています。このサンプルを開始する前に、サンプルファイルを確認するには、次のパスを使用してファイルを開いてください: <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\Tutorial\XMLtoSQLite.mfd。
XML ファイルからデータを SQLite データベースに挿入することがこのサンプルの目的です。サンプルのゴールを達成するために、データを書き込むことの出来る SQLite データベースが必要になります。このサンプルの目的を達成するために、データを書き込むことの出来る空のデータベースが必要になります。上で説明されているとおり、 Altova DatabaseSpy または、公式な SQLite Web サイトからダウンロード数rことの出来るコマンドラインシェルを使用して SQLite データベースを作成探索します。
SQLite データベースの作成:
(Altova MissionKit の一部、またはスタンドアロンとして) DatabaseSpyis が使用中のコンピューターにインストールされている場合、 新規 SQLite データベースを次のように作成することができます:
1.DatabaseSpy を起動します。
2.「ファイル」 メニューから、「データベースの接続の作成」をクリックします。
3.「接続ウィザード」をクリックし、「SQLite」をクリックします。
4.「新規 SQLite データベースの作成」をクリックし、c:\sqlite\articles.sqlite をパスとして入力し、「接続」をクリックします。
5.データソース名を設定するようにプロンプトされると、デフォルトの名前のままにします。
6.新規 SQL エディターを開き (Ctrl+N) データベースに対して次のクエリを実行します:
create table articles (number smallint, name varchar(10), singleprice real); |
それ以外の場合、下のステップに従いデータベースを作成してください:
1.SQLite ダウンロードページから Windows のための、 SQLite コマンドラインシェルをダウンロードしてください。 (http://www.sqlite.org/download.html)、そして、使用中のローカルマシンのディレクトリで .zip アーカイブを解凍してください (このサンプルのためには、c:\sqlite を使用してください)。
2.c:\sqlite\sqlite3.exe を実行して、次のステートメントを入力します:
create table articles (number smallint, name varchar(10), singleprice real); |
これによりテーブル articles がインメモリデータベース内に作成されます。テーブル articles は3つの列により構成されています: number、 name、および singleprice。この列の目的は XML ソーススキーマ内で定義された同じ名前を持つ要素からのデータを補完するためです。各列は、その列内に保管されるデータにふさわしいデータ方と共に宣言されています。
3.コマンドを実行します:
.save articles.sqlite |
これによりインメモリのデータベースが現在の作業パスに保存されます: c:\sqlite\articles.sqlite。 このパスを後のステップで参照する必要があることに注意してください。
このサンプルで必要とされる SQLite データベースが作成されました。
SQLite マッピングデザインに XML を作成する方法:
1.MapForce を起動し、( メニューコマンド「出力 | ビルトイン実行エンジン」を使用して)変換言語が BUILT-IN であることを確認してください。
2.<Documents>\Altova\MapForce2020\MapForceExamples\Tutorial フォルダー内にあるファイル Articles.xml を ( 「挿入 | XML スキーマ/ファイルの挿入」を使用して)マッピングエリアに追加します。
3.前のステップ (メニューコマンド 「挿入 | データベースの挿入」)で作成されたデータベース articles.sqlite をマッピングエリアに追加し、 SQLite を選択します。
4.「接続」 をクリックします。データベースオブジェクトを選択するようにプロンプトされると、 articles テーブルを選択します。
5.下に示されるように接続を描きます:
6.データベースコンポーネント上の A:In ボタンをクリックし、「全てのレコードを削除する」 オプションを選択します。これにより、マッピング実行される都度、重複を回避するために全ての既存の行が最初に削除されます。
7.メインマッピングウィンドウの 「出力」タブをクリックします。MapForce は、内蔵の実行エンジンを使用してマッピングを実行し、出力ウィンドウ内に SQL クエリを表示します。
8.(メニューコマンド 「出力 | SQL-スクリプトの実行」) SQL スクリプトを実行し、データベースを作成します。MapForce がランタイムエラーに遭遇しない場合、レコードは SQLite データベースに挿入されます。
SQLite データベースにデータが正確に挿入されているかチェックする方法:
1.MapForce の 「DB クエリ」 タブをクリックします。
2.「DB クエリ」 ペインの上にあるドロップダウンリストから articles エントリを選択します。
3.SQL エディター内に次のクエリを入力します:
select * from articles; |
または、次のステップをおこなってください:
1.ファイル c:\sqlite\sqlite3.exe を実行し、コマンドを使用してデータベースを開きます:
.open articles.sqlite |
2.次の Select ステートメントを実行します:
select * from articles; |
テーブルデータの選択のアプローチに関わらず、 (MapForce または SQLite シェル)、クエリは4つの行を返します。これは、このサンプルの目的であるソース XML ファイル内のレコードの数に対応しています。