連載 SQL ServerでXMLを操作する
第1回:リレーショナルDBからXML文書を取り出す

XML文書がビジネスのデータ交換手段に利用される例が増えてきました。本連載では、さまざまなデータベース製品の中から、マイクロソフトのSQL Server 2000を利用して、XML文書を入出力する方法を解説していきます。第1回は、SQL Server 2000が持つXML機能の概要と、SQL Server 2000に格納されているデータを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
E-Mail 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のどちらを使うべきか


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間