連載 .NETで簡単XML 第7回 VS.NETでXML Schemaを活用する(作成編)株式会社ピーデー 川俣 晶2003/08/19 |
|
|
Visual Studio .NETでスキーマを作成してみる
それでは、Visual Studio .NETでXML Schemaによるスキーマを作成してみよう。作成する前に準備することは、XML Schemaを勉強することよりも、どのようなXML文書に対し、どのようなルールを記述するかをしっかり把握することである。どのような要素、属性があり、それがどのような順序に並ぶことが正しいのか。それをしっかり把握することが最も重要である。
ここでは以下のようなXML文書に対応するスキーマを作成してみよう。
|
|
対象とするXML文書(sample01.xml) |
このリストを提示して、曖昧に「こんな感じでやろう」というだけでは、いろいろと誤解が入り込む余地がある。以下のような意図があることをはっきりと決定しておこう。
- 名前空間URIはhttp://www.atmarkIT.co.jp/ns/sample/addressBookとする
- 住所録要素をルート要素(文書要素)とする
- 個人要素は住所録要素の子要素とする
- 個人要素は任意の個数を記述してよい
- 個人要素は、名前要素と住所要素という2つの子要素を持つ
- 1つの個人要素に、名前要素と住所要素はそれぞれ必ず1つずつ
- 名前要素と住所要素の並び順は逆転してはならない
- 個人要素にはIDという名前の属性が付く
- ID属性はXMLのID型としたい(つまり名前に使用できる文字はID型の制約に従い、1文書中に同じ値があるとエラーになる)
では、実際にこの意図を記述するXML Schemaのスキーマを作成してみよう。
まず、Visual Studio.NET 2003を起動しよう。今回作成するXML Schemaのスキーマは独立した1つの文書として作成するものなので、プロジェクトを作成する必要はない。ファイル・メニューの[新規作成]−[ファイル]を選んで、そこでテンプレートとして「XMLスキーマ」を選ぼう。
XML Schemaを作成する:手順1 |
[テンプレート]からXMLスキーマを選んで新しい文書を開く。 |
すると、以下のような画面になり、XML Schemaのスキーマ作成の準備が整う(表示の設定によってはプロパティやツール・ボックスなどのウィンドウの状態が異なるかもしれない)。
XML Schemaを作成する:手順2 |
新しいXML Schemaの作成画面になった。 |
さて、ここでプロパティ・ウィンドウを見ると、targetNamespaceという名前が見えるだろう。そこには、このスキーマが対象とする名前空間を書き込む。ここでは、
http://www.atmarkIT.co.jp/ns/sample/addressBook
が対象となる名前空間なので、それを書き込んでおこう。
さて、これからが文書の構造を定義する本番である。それでは、ルート要素から順番に定義していこう。ルート要素は要素(element)なので、ツール・ボックスの[XML Schema]タブ中のelementをドラッグして、作業領域にドロップする。すると、スキーマに1つの要素が追加され、以下のように要素に対応する箱が表示される。
XML Schemaを作成する:手順3 |
ツール・ボックスの[XML Schema]タブ中のelementをドラッグして、作業領域にドロップする。これにより、1つの要素を持った箱が表示される。 |
この箱の中には4つの項目が見える。最初は◆や*が見える領域。次はEと書かれた領域、次はelement1と書かれた領域、最後は(element1)と書かれた領域である。この中で、意識的に設定してやる必要があるのは2番目から4番目の領域である。2番目はそれが要素(E)か属性(A)か、それともそのほかの何かかを指定する部分。3番目は、要素や属性の名前を書き込む部分、4番目はデータ型を書き込む部分である。それぞれについて、作成手順の中で詳しく説明していく。ここでは、要素を追加したので、2番目にEという文字が見える。
さて、ルート要素は、「住所録」という名前なので、名前を書き換えてしまおう。
XML Schemaを作成する:手順4 |
ルート要素の名前を「住所録」に変更する。 |
INDEX | ||
.NETで簡単XML | ||
第7回 VS.NETでXML Schemaを活用する(作成編) | ||
1.XML Schemaとは何か | ||
2.Visual Studio .NETでスキーマを作成する(1) | ||
3.Visual Studio .NETでスキーマを作成する(2) | ||
4.Visual Studio .NETでスキーマを作成する(3) | ||
「連載 :.NETで簡単XML」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|