連載 SQL
ServerでXMLを操作する
第1回:リレーショナルDBからXML文書を取り出す
富士ソフトABC株式会社
技術センター
2002/3/29
1. SQL Server 2000でXML機能を使えるようにする |
XML文書がビジネスのデータ交換手段に利用される例が増えてきました。さまざまなビジネスデータがXML文書の形式で交換されようとしている現在、それを格納するデータベース製品も、XML文書によるデータの入出力を可能にするべく対応が始まっています。マイクロソフトのデータベースサーバであるSQL Server 2000にもXML機能が備わっており、XML文書の入出力ができるようになっています。
本連載では、リレーショナルデータベースによるXML文書の入出力の例として、SQL Server 2000のXML機能について解説していくことにします。想定している環境は、Windows 2000 Server上に、SQL Server 2000と、Internet Information Servicesをインストールしたものです。記事中のサンプルプログラムなどを実行する場合には、これらのソフトウェアを用意してください。
■SQL Server 2000のXML機能とは?
では最初に、SQL Server 2000が備えているXML機能を説明します。SQL Server 2000には、下記のXML機能が備わっています。
- 結果をXML形式で取得できる、SELECTステートメントのオプション「FOR XML」句
- ビューとしてXML文書を取得できる、注釈付きXDRスキーマを使ったXMLビュー
- XPath形式で検索できる、XPathクエリ
- XML文書をデータベースに書き込む、OPENXML
ここに挙げたように、SQL Server 2000ではXML文書としてデータを取り出す方法には複数ありますが、XML文書形式のデータを書き込む方法としては、OPENXMLのみとなっています。それぞれの機能については、別の記事「.NET Enterprise Server群のXML機能を探る」でも紹介していますので、参照してみてください。
■この記事で使用するデータ
今回の記事では「個人情報」テーブルをサンプルデータとして使用します。このテーブルには、項目としては、「氏名」「年齢」「郵便番号」「都道府県」「市町村」「番地」「建物」「電話番号」「E-Mail」の9項目を用意しました。以下に実際にSQL Server 2000にデータベースとテーブルを作成し、データを登録していきます。SQL Server 2000のインストールはここでは説明しませんが、すでにインストールされているものとして説明します。
では、サンプルデータベースを用意して、SQL Server 2000のXML機能を有効にする手順を紹介していきましょう。
(1)データベースを作成する
SQL Server Enterprise Managerを起動して、データベースを新規作成します。画面1のように、名前に“Person”と入力して[OK]ボタンを押します。ほかの設定は、特に変更する必要はありません。
画面1 データベースの新規作成 |
(2)テーブルを作成する
(1)で作成したデータベースに、テーブルを追加します。新規テーブルを作成して、下記の表に合わせて列を作成します。
列名 | データ型 | 長さ | Nullを許容 |
氏名 | varchar | 50 | × |
年齢 | int | 4 | × |
郵便番号 | varchar | 8 | × |
都道府県 | varchar | 10 | × |
市町村 | varchar | 50 | × |
番地 | varchar | 20 | × |
建物 | varchar | 50 | ○ |
電話番号 | varchar | 20 | ○ |
varchar | 50 | ○ |
このように列の定義を行うと、画面2のようになります。列の定義が完了したら、“Person”と名前を付けて保存してください。
画面2 テーブルの作成 |
(3)データを入力する
最後に、データベースにデータを入力します。(2)で作成したテーブルを開いてデータを入力してください。内容は自由です。画面3のように、データを入力してウィンドウを閉じます。参考として入力したデータについては、データファイルを用意しました。
画面3 データの入力結果 |
これでサンプルデータベースの作成は終了です。次にSQL Server 2000で、XML機能を有効にするための設定を行います。
■SQL Server 2000の設定
これから設定するのは、後述する「URLクエリ」を有効にするためのものです。今回はデータベースからXML文書を取り出す方法として、URLクエリを使います。URLクエリによって取り出したXML文書は、Webブラウザに直接表示されるため、取り出したデータを簡単に確認することができて便利です。
(1) | スタートメニューの[Microsoft SQL Server]のメニューから[IISでのSQL XMLサポートの設定]を起動します。続いて、既存のWebサイトに仮想ディレクトリを新規作成します。 |
(2) | [全般]タブでは、仮想ディレクトリ名に“Person”と入力し、ローカルパスには実際の物理ディレクトリを指定します(画面4)。今回は“\Inetpub\wwwroot\Person”を指定します。あらかじめPersonフォルダを作成しておきます。Personフォルダの下に“tp”と“sch”の2つのフォルダも作成してください。 |
画面4 仮想ディレクトリ―[全般]タブの設定 |
(3) | [セキュリティ]タブでは、認証方式として[Windows統合認証を使用]を選択します(画面5)。 |
画面5 仮想ディレクトリ―[セキュリティ]タブの設定 |
(4) | [データソース]タブでは、SQL Serverは「(local)」を指定し、データベースは[Person]を選択します(画面6)。 |
画面6 仮想ディレクトリ―[データソース]タブの設定 |
(5) | 設定タブでは、すべてのオプションのチェックボタンをチェックします(画面7)。 |
画面7 仮想ディレクトリ―[設定]タブの設定 |
(6) | [仮想名]タブでは、次の3つの仮想名を新規作成します(画面8)。パスは(2)で説明したパスを指定します。dbobject型にはパスの指定はありません。 |
仮想名 | 種類 | パス |
dbobj | dbobject型 | − |
tp | template型 | tp |
sch | schema型 | sch |
画面8 想ディレクトリ―[仮想名]タブの設定 |
(7) | 詳細設定タブは、変更する項目がないので“OK”を押して仮想ディレクトリの作成を終了します。 |
以上がSQL Server 2000で行う設定です。データが入力されていて、以上の設定が終わればデータを取り出す準備は終了となります。
1/7 |
Index | |
SQL ServerでXMLを操作する | |
SQL Server 2000でXML機能を使えるようにする ・SQL Server 2000のXML対応機能とは? ・この記事で使用するデータ ・SQL Server 2000の設定 |
|
リレーショナルデータをXML文書として取り出す ・リレーショナルデータとXML文書のマッピング ・SQL ServerのデータをXML文書として取り出す ・FOR XML句でデータを取り出す ・ELEMENTSオプションの指定 ・RAWモードの指定 ・EXPLICITモードの指定 |
|
クライアントサイド・スクリプトでSQL Serverを操作する ・サーバサイド・スクリプトとクライアントサイド・スクリプト ・スクリプトでデータを取り出す ・取り出したデータのXML文書化 |
|
XSLTでXML文書をHTMLに変換 ・XSLTスタイルシートの作成 ・クライアントサイド・スクリプトからXSLTを呼び出す ・スクリプトをサーバサイド・スクリプトに作り替える |
|
XPathを使って、SQL
Serverでクエリを実行する ・データベースをXML文書に見せかける ・ダイレクトにXPathを指定する方法 ・テンプレートを使用する方法 ・スキーマを使用する方法 |
|
XML文書形式のデータをSQL
Serverに格納する方法 ・XML文書とテーブル構造の関係 ・SQL文の構築(Insert文を構築する) ・サンプルプログラム |
|
ストアドプロシージャを利用したデータの追加 ・OPENXMLの仕組み ・ストアドプロシージャの作成と呼び出し ・挿入されたデータを確認する ・Insert文とOPENXMLのどちらを使うべきか |
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|