連載

.NETで簡単XML

第7回 VS.NETでXML Schemaを活用する(作成編)

株式会社ピーデー 川俣 晶
2003/08/19
Page1 Page2 Page3 Page4

Visual Studio .NETでスキーマを作成してみる

 それでは、Visual Studio .NETでXML Schemaによるスキーマを作成してみよう。作成する前に準備することは、XML Schemaを勉強することよりも、どのようなXML文書に対し、どのようなルールを記述するかをしっかり把握することである。どのような要素、属性があり、それがどのような順序に並ぶことが正しいのか。それをしっかり把握することが最も重要である。

 ここでは以下のようなXML文書に対応するスキーマを作成してみよう。

<?xml version="1.0" encoding="Shift_JIS" ?>
<住所録 xmlns="http://www.atmarkIT.co.jp/ns/sample/addressBook">
  <個人 ID="A0001">
    <名前>二平二郎</名前>
    <住所>足立区1-2-3</住所>
  </個人>
  <個人 ID="A0002">
    <名前>三陸三郎</名前>
    <住所>板橋区4-5-6</住所>
  </個人>
  <個人 ID="A0003">
    <名前>四日市四郎</名前>
    <住所>江戸川区7-8-9</住所>
  </個人>
</住所録>
対象とする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」


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間