|
連載 .NETで簡単XML 第7回 VS.NETでXML Schemaを活用する(作成編)株式会社ピーデー 川俣 晶2003/08/19 |
![]() |
|
|
|
次に、個人要素に属性を付けよう。そのためには、名無しの型に属性の定義を付け加えるだけでよい。要素を追加するのと同じ要領で、elementではなくattributeを選んで書き込む。名前はIDとし、型もIDを指定する。たまたま同じ文字列になってしまったが、名前のIDは属性名、型のIDはXML Schema Part2で定義されるXMLのID型である。
![]() |
| XML Schemaを作成する:手順8 |
| 個人要素の属性を設定する。名前はID、型もIDとする。 |
同じ要領で名前要素と住所要素も追加しよう。
![]() |
| XML Schemaを作成する:手順9 |
| 名前要素、住所要素を追加する。型はstringとしよう。 |
この表示では名前要素、住所要素、ID属性という順番になっているので、ID属性を最後に書かねばならないルールになってしまったかのように見えるが、もちろん属性は開始タグの中に書かれるものなので、子要素よりも先に書くことになる。つまり属性に順番は関係ないということである。
さて、これでほとんど意図したルールは指定し終えたことになる。順番の強制などは特に指定していないが、これでよい。特に指定しなければ順番は強制され、勝手に順番を変えてXML文書を記述するとエラー扱いになる。順番にかかわらずにエラーなく通したければ、その意図を明示的にスキーマ上で示す必要がある(例えば、XML Schemaのall要素などを使う)。
最後に1つだけまだ足りない意図を付けたそう。それは、個人要素は任意の数だけ記述できるというものだ。そのためには、上の箱の「個人」をクリックしてから、プロパティ・ウィンドウのmaxOccursにunboundedと入力する。
![]() |
| XML Schemaを作成する:手順10 |
| 個人要素を任意の数だけ記述できるように、個人要素のmaxOccursプロパティをunboundedに設定する。 |
maxOccursは繰り返し可能な最大数を指定するプロパティである。ここには通常数値を指定するのだが、無制限に何回でも繰り返し可能としたい場合は、unboundedという文字列を入力する。
これで意図したルールを記述したスキーマは完成した。ファイル・メニューの[名前を付けてソリューションの保存]でファイル名をAddressBook.xsdとして保存しておこう。
なお、スキーマの編集ウィンドウの下の方に[スキーマ]と[XML]という選択を行う部分がある。これまでは、[スキーマ]が選択された状態で作業してきたが、[XML]の方をクリックすると、今作成したスキーマがXML文書の形式で表示される。これが、スキーマの真の姿である。これまでの作業は、これを作るためのものであったのである。普通の作業手順で行けば、このようなXML文書を手動で書き込むことになるのだが、それをVisual Studio .NETのビジュアル・スキーマ編集機能で代用したというわけである。
参考までに、以下にXML文書として表示したスキーマの内容を示す。
|
|
| Visual Studio .NETが生成したXML Schema |
次回予告
以上、今回はXML Schemaとは何かを説明し、Visual Studio .NETを利用して実際にスキーマを作成した。次回後編では、こうして作成したスキーマをベースとして、XML文書を検証するプログラムやデータセットを活用したプログラミング・テクニックについて解説していく予定だ。![]()
| 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」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -





