Silverlight をインストールするには、ここをクリックします*
Japan変更|すべてのMicrosoft のサイト
MSDN
|MSDN ライブラリ|デベロッパー センター|ダウンロード情報|開発ツール製品|コミュニティ|ご意見・ご要望|サイトマップ
MSDN Home > MSDN アカデミック アライアンス > 第 5 回 : Visual Studio .NET の XML 機能

第 5 回 : Visual Studio .NET の XML 機能

〜 Visual C# による XML チュートリアル 〜

5.1 はじめに

XML は、Microsoft .NET において最も重要な基盤技術です。 Visual Studio .NET では、XML を用いたアプリケーションの開発が容易にできます。また、Visual Studio .NET では、内部的に構成ファイルやソースコードなどの基礎技術にも XML を利用しています。このように、Visual Studio .NET は、XML と密接な関係を持つため、XML に関連した様々な機能が用意されています。本章では、この中でも Visual Studio .NET の XML 機能による XML スキーマと XML 文書の作成方法を解説します。前半では、XML スキーマの概要について説明し、Visual Studio .NET の XML 機能による XML スキーマの作成方法を解説します。後半では、Visual Studio .NET の XML 機能による XML 文書の作成方法を解説します。ユーザは、これらの機能を利用することにより、手早く簡単に XML スキーマと XML 文書を作成できます。

5.2 Visual Studio .NET の XML 機能による XML スキーマと XML 文書の作成

XML スキーマと XML 文書の作成には、XML デザイナを利用します。 XML デザイナとは、XML スキーマや XML 文書を扱うために Visual Studio .NET で提供されているビジュアルツールです。

本節では、Visual Studio .NET の XML 機能による XML スキーマと XML 文書の作成を行います。まず、XML スキーマの概要について解説し、Visual C# よる XML スキーマの作成方法を解説します。ここでは、XML スキーマを独自に一から作成する方法と XML 文書から自動作成する方法を解説します。次に、Visual C# による XML 文書の作成方法を解説します。 XML 文書は、XML スキーマを参照し、その定義に基づいて作成します。

5.2.1 XML スキーマの概要

XML スキーマとは、XML 文書の構造を定義する言語です。 XML スキーマは、W3C により、2001 年 5 月 2 日に勧告されました。 Visual Studio .NET は、W3C より勧告された XML スキーマに対応しています。

XML スキーマの勧告以前には、DTD (Document Type Definition) が利用されていました。しかし、DTD は、データ型が少ないため、細かくデータを定義できないことや独自の構文を持つため理解が難しいこと、仕様が古いため現在のネットワークへの対応が困難なことなどの問題点がありました。そこで、これらの DTD が抱えている問題点を解決するために XML スキーマが提案されました。 XML スキーマは、DTD と異なり、豊富なデータ型 (数値、日付など) と名前空間が利用できます。これにより、XML スキーマは、XML 文書を詳細に定義することができます。また、XML スキーマの構文は、XML であるため、ユーザは、新たに XML スキーマのための構文を学習する必要がありません。 XML スキーマのイメージを図 1 に示します。

図 1 XML スキーマのイメージ

図 1 XML スキーマのイメージ

XML スキーマでは、XML スキーマ要素 (要素、属性、型、およびグループ) を使用し、 XML 文書を定義します。また、XML スキーマは、拡張子「.xsd」のファイルとして保存します。 XML スキーマの例を次に示します。

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="size">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="small" type="xs:string" />
        <xs:element name="middle" type="xs:string" />
        <xs:element name="large" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

5.2.2 XML スキーマの作成方法

本項では、独自に一から XML スキーマを作成する方法を解説します。 Visual Studio .NET には、XML デザイナと呼ばれるツールで視覚的に XML スキーマを作成する機能があります。本項では、商品注文書を XML で記述するための XML スキーマを XML デザイナで作成します。商品注文書のイメージを図 2 に示します。

図 2 商品注文書のイメージ

図 2 商品注文書のイメージ

また、本項で作成する商品注文書の XML スキーマの構造を図 3 に示します。

図 3 作成する XML スキーマの構造

図 3 作成する XML スキーマの構造

(1) 新しいプロジェクトの作成

最初に、新しいプロジェクトを作成します。新しいプロジェクトの作成には、メニューから 【ファイル】 → 【新規作成】 → 【プロジェクト】 を選択します。次に、【Visual C# プロジェクト】 → 【Windows アプリケーション】 を選択します。最後に、プロジェクト名と保存場所を指定し、【OK】 ボタンを押します。ここでは、説明の都合上、プロジェクト名を「SampleSchema1」に指定します。

(2) 空の XML スキーマの追加

次に、プロジェクトへ空の XML スキーマを追加します。空の XML スキーマの追加には、メニューから 【プロジェクト】 → 【新しい項目の追加】 を選択します。次に、【テンプレート】 → 【XML スキーマ】 を選択します。最後に、ファイル名を指定し、【開く】 ボタンを押します。ここでは、説明の都合上、ファイル名を「OrderSheetSchema.xsd」に指定します。 XML デザイナには、「OrderSheetSchema.xsd」のスキーマ ビューが表示されます。空の XML スキーマの追加を図 4 に示します。

図 4 空の XML スキーマの追加

図 4 空の XML スキーマの追加

(3) XML スキーマの定義

次に、XML スキーマを「OrderSheetSchema.xsd」へ定義します。まず、【ツールボックス】 → 【complexType】 を選択し、complexType要素をスキーマ ビューへ追加します。complexType要素は、子要素又は属性を持つ要素を示します。次に、追加したcomplexType要素の要素名を「OrderTable」に変更します。最後に、* (アスタリスク) の右セルをクリックし、一覧から要素型「sequence」を選択します。要素型「sequence」は、「sequence」型を指定した要素がグループにまとめられた要素を使用することを示します。OrderTable要素を図 5 に示します。

図 5 OrderTable要素

図 5 OrderTable要素

次に、OrderTable 要素の下に作成された group1 要素を定義します。まず、group1 要素の* (アスタリスク) の右セルをクリックし、一覧から「element」を選択します。次に、追加したelement1 要素の要素名を「GoodsID」、要素のデータ型を「nonNegativeInteger」に変更します。要素のデータ型「nonNegativeInteger」とは、0 以上の整数を表します。最後に、同様の手順で要素型「element」、要素名「GoodsName」、要素のデータ型「string」の要素と要素型「element」、要素名「Quantity」、要素のデータ型「nonNegativeInteger」の要素を追加します。group1 要素を図 6 に示します。

図 6 group1 要素

図 6 group1 要素

次に、再び complexType 要素をスキーマ ビューへ追加します。まず、【ツールボックス】 → 【complexType】 を選択し、スキーマ ビューへ追加します。次に、追加した complexType 要素の要素名を「OrderSheetData」に変更します。最後に、OrderSheetData 要素へ要素型「element」、要素名「UserID」、要素のデータ型「nonNegativeInteger」の要素、要素型「element」、要素名「UserName」、要素のデータ型「string」の要素、要素型「element」、要素名「Order」、要素のデータ型「OrderTable」の要素を追加します。OrderSheetData 要素を図 7 に示します。

図 7 OrderSheetData要素

図 7 OrderSheetData要素

次に、element 要素をスキーマ ビューへ追加します。まず、【ツールボックス】 → 【element】 を選択し、スキーマ ビューへ追加します。次に、追加したelement 要素の要素名を「OrderSheet」、要素のデータ型を「OrderSheetData」に変更します。OrderSheet 要素を図 8 に示します。

図 8 OrderSheet 要素

図 8 OrderSheet 要素

以上で XML スキーマの作成は完了です。

(4) 作成した XML スキーマの表示

最後に、スキーマ ビューの左下部に表示されている 【XML】 をクリックします。作成した XML スキーマが XML で表示されます。作成した XML スキーマを図 9 に示します。

図 9 作成した XML スキーマ

図 9 作成した XML スキーマ

5.2.3 XML 文書からの XML スキーマ自動作成方法

XML 文章の構造を XML スキーマで定義するには、XML 文書の構造が複雑であればあるほど手間がかかるのが一般的です。そのため、Visual Studio .NET には、XML 文書から XML スキーマを自動で作成する便利な用意されています。ユーザは、この機能を用いることにより、XML スキーマを簡単に作成できます。そこで、本項では、XML 文書を参照し、XML スキーマを自動で作成する方法を解説します。

(1) XML 文書の準備

最初に、XML スキーマの作成に使用する XML 文書を準備します。 XML 文書は、テキストエディタで次の文書を記述し作成します。ここでは、説明の都合上、XML 文書をファイル名「sample.xml」で保存します。 XML スキーマの作成に使用する XML 文書を次に示します。

<?xml version="1。0" encoding="Shift_JIS"?>
<season>
 <spring>春</spring>
 <summer>夏</summer>
 <fall>秋</fall>
 <winter>冬</winter>
</season>

(2) 新しいプロジェクトの作成

次に、新しいプロジェクトを作成します。新しいプロジェクトの作成には、メニューから 【ファイル】 → 【新規作成】 → 【プロジェクト】 を選択します。次に、【Visual C# プロジェクト】 → 【Windows アプリケーション】 を選択します。最後に、プロジェクト名と保存場所を指定し、【OK】 ボタンを押します。

(3) XML スキーマの作成

次に、XML スキーマを作成します。まず、メニューから 【ファイル】 → 【開く】 → 【ファイル】 を選択し、作成した「sample.xml」を指定します。 XML ビューに「sample.xml」が表示されます。「sample.xml」を図 10 に示します。

図 10 「sample.xml」

図 10 「sample.xml」

次に、メニューから 【XML】 → 【スキーマの作成】 を選択します。スキーマ ビューに「sample.xml」を参照した XML スキーマが表示されます。「sample.xml」の XML スキーマを図 11 に示します。

図 11 「sample.xml」の XML スキーマ

図 11 「sample.xml」の XML スキーマ

(4) 作成したスキーマの表示

最後に、スキーマ ビューの左下部に表示されている 【XML】 をクリックします。作成した XML スキーマが XML で表示されます。作成した XML スキーマを図 12に示します。

図 12 作成した XML スキーマ

図 12 作成した XML スキーマ

5.2.4 XML スキーマに基づいた XML 文書の作成方法

XML スキーマで定義された XML 文書を作成するには、作成する XML 文書の XML スキーマを十分に理解する必要があるため、多大な時間がかかります。 Visual Studio .NET には、XML スキーマを参照し、XML 文書を作成する機能があります。ユーザは、この機能を用いることにより、XML スキーマに基づいた XML 文書を簡単に作成できます。そこで、本節では、XML スキーマを参照し、その定義に基づいた XML 文書の作成方法を解説します。 XML スキーマには、第 5.2.2 項で作成した XML スキーマを利用します。

(1) 既存のプロジェクトを開く

最初に、第 5.2.2 項で作成した「SampleSchema1」プロジェクトを開きます。作成したプロジェクトを開くには、メニューから 【ファイル】 → 【開く】 → 【プロジェクト】 を選択し、「SampleSchema1」プロジェクトファイルを開きます。

(2) XML ファイルの追加

次に、プロジェクトへ XML ファイルを追加します。 XML ファイルの追加には、メニューから 【プロジェクト】 → 【新しい項目の追加】 を選択します。次に、【テンプレート】 → 【XML ファイル】 を選択します。最後に、ファイル名を指定し、【開く】 ボタンを押します。ここでは、説明の都合上、ファイル名を「sample2.xml」に指定します。 XML デザイナには、「sample2.xml」の XML ビューが表示されます。

(3) XML スキーマの参照

次に、XML ファイルへ XML スキーマの参照を行います。 XML スキーマの参照には、「sample2.xml」の 【プロパティウィンドウ】 → 【targetSchema】 を選択します。次に、targetSchemaプロパティの値に「http://tempuri.org/OrderSheetSchema.xsd」と入力します。targetSchemaプロパティの値の入力を図 13 に示します。

図 13 targetSchemaプロパティの値の入力

図 13 targetSchemaプロパティの値の入力

(4) XML 文書へのデータ入力

次に、XML 文書へデータを入力します。 XML 文書へデータを入力するには、XML ビューの左下部に表示されている 【データ】 をクリックします。これにより、データ ビューが表示されます。ユーザは、データ ビューより実際のデータを入力します。次に、UserID 列をクリックします。ここでは、仮に「1」と入力します。次に、UserName列をクリックします。ここでは、仮に「総情太郎」と入力します。次に、表示されている+ (プラス記号) をクリックし、ハイパーリンクとなっている「OrderSheet Order」をクリックします。別の画面が表示されます。次に、GoodsID 列をクリックします。ここでは、仮に「11111」と入力します。次に、GoodsName 列をクリックします。ここでは、仮に「ノートパソコン」と入力します。次に、Quantity 列をクリックします。ここでは、仮に「1」と入力します。 XML 文書へのデータ入力を図 14 に示します。

図 14 XML 文書へのデータ入力

図 14 XML 文書へのデータ入力

(5) 作成した XML 文書の表示

データ ビューの左下部に表示されている 【XML】 をクリックします。作成した XML 文書が表示されます。作成した XML 文書の表示を図 15 に示します。

図 15 作成した XML 文書の表示

図 15 作成した XML 文書の表示

5.3 まとめ

本章では、Visual Studio .NET における XML 関連の機能として、XML デザイナを利用した XML スキーマと XML 文書の作成方法を解説しました。 XML デザイナは、XML スキーマや XML 文書を視覚的に表現し、その作成や編集を非常に便利にするものです。また、XML デザイナでは、複雑な XML スキーマや XML 文書の構造をほとんど意識することなく、XML スキーマや XML 文書が作成できます。ユーザは、Visual Studio .NET における XML 関連の様々な機能を使いこなすことで、作業量や作業時間を大幅に削減できます。


著者紹介

田中 成典 (たなか しげのり)

1986年関西大学工学部土木工学科卒業
1988年関西大学大学院工学研究科 土木工学専攻博士課程前期課程修了
1996年博士 (工学) 授与,関西大学
1997年関西大学総合情報学部助教授 (現在に至る)
主な著書:やさしいCのはじめかた,オーム社,1993年
 建設技術者のための知識情報処理の実践,関西大学出版部,1999年
 DirectX8,工学社,2001年
 ステップアップXML,工学社,2002年
 Linuxアプリケーション入門,森北出版,2002年    ほか

中山 浩太郎 (なかやま こうたろう)

2001年3月関西大学総合情報学部卒業
2001年4月関西大学大学院総合情報学研究科入学 (現在に至る)
2002年4月同志社女子大学非常勤講師 (現在に至る)
主な著書:Web工房シリーズ Perlの達人,森北出版,1999年
 DirectX8,工学社,2001年
 Linuxアプリケーション入門,森北出版,2002年    ほか

石井 健一 (いしい けんいち)

1999年4月関西大学総合情報学部総合情報学科入学 (現在に至る)
主な著書:ステップアップXML活用法,工学社,2002年

野中 一希 (のなか かずき)

1999年4月関西大学総合情報学部総合情報学科入学 (現在に至る)
2002年1月株式会社関西総合情報研究所入社 (現在に至る)

中村 健二 (なかむら けんじ)

2000年4月関西大学総合情報学部総合情報学科入学 (現在に至る)
2002年4月株式会社関西総合情報研究所入社 (現在に至る)


Microsoft