連載 .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」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|