検索
連載

XML Schemaで一意キーとなる要素・属性を定義するXMLテクニック集(11)(1/3 ページ)

Share
Tweet
LINE
Hatena

XML Schemaで一意キーとなる要素・属性を定義する

アイコン

特定の要素・属性を一意に特定したい場合には、<xsd:unique>要素、<xsd:selector>要素、<xsd:field>要素を用いて一意キーを設定します。これで、データベースの「主キー」と同じ効果を得られます。

カテゴリ XML Schema
関連要素 <xsd:unique>、<xsd:selector>、<xsd:field>
関連記事 XML Schemaで文字列パターンを定義する
XML Schemaで複雑型要素を定義する

 別稿「XML Schemaで文字列パターンを定義する」のbooks.xmlを参照してみてください。<book>要素におけるisbn属性のように、書籍情報データを一意に特定するキー(データベースでいうところの「主キー」)を定義したいというケースは決して少なくありません。

 そのようなときに、XML Schemaでは<xsd:unique>要素を用いることで、ドキュメント内で一意なキーを定義できます。具体的な例を見てみましょう。なお、対象となるXML文書は、別稿「XML Schemaで文字列パターンを定義する」で用いたbooks.xmlを使用します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 特定のノードに対して、一意キーの制約条件を定義する一般的な構文は、以下のとおりです。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 <xsd:selector>要素は、一意キーの基点となるノードをカレントノードからの相対的なパスで表します。つまり、上記の例では<books>要素を定義しているわけですから、「xpath="book"」とした場合、<books>要素直下の<book>要素を表します。<xsd:field>要素には、実際の一意キーを表すノードを指定します。つまり、この場合は@isbn(isbn属性)です。この指定によって、books.xml内でisbn属性は一意でなければならないことになります。

実際に、妥当性検証を行いたい場合には、別稿「XML SchemaでXML文書の妥当性を検証する」のサンプルを参考にするとよいでしょう。変更個所は、XMLSchemaCache.addメソッドの第2引数(XML Schemaのファイル名)のみです。スキーマ文書を書いてみるだけでは、スキーマ文書そのものの妥当性を判断できませんが、パーサの処理を介することでスキーマの正否を確認できます。


       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る