XML Schemaで属性ノードを定義するには<xsd:attribute>要素を使用します。ここで重要なのはuse属性で、属性の必須/任意や固定値指定など、属性の特性を表すための情報を記述します。
カテゴリ | XML Schema | |
関連要素 | <xsd:attribute> | |
関連記事 | XML Schemaで単純型要素を定義する、XML Schemaで複雑型要素を定義する | |
XML Schemaにおいて、属性ノードを定義するには<xsd:attribute>要素を用います。
要素ノードの定義方法については、別稿「XML Schemaで複雑型要素を定義する」を参照いただくとして、ここでは下記book.xmlの<books>要素のname属性、<book>要素のisbn属性に注目してみることにします。
[book.xml] |
※<books>要素の名前空間プレフィックス(<atit:〜>)は、XML SchemaとXML文書とをひも付けるためのキーとなります。
[book.xsd] |
以下の部分に注目してみてください。
<xsd:attribute name="name" type="xsd:string" use="optional" /> |
構文的には<xsd:element>要素について理解していれば、直感的に分かるはずです。name属性に属性名、type属性に属性値のデータ型を指定します。type属性で指定可能なデータ型については、別稿「XML Schemaで単純型要素を定義する」を参照してください。
ここで重要なのは、その後の部分――use属性の個所です。use属性は属性の必須/任意や固定値指定など、属性の特性を表すための情報になります。use属性で指定可能な値は、以下のとおりです。
設定値 | 概要/記述例 |
---|---|
required | 必須(無指定の場合はエラー) <xsd:attribute name="isbn" type="xsd:string" use="required" /> |
optional | 任意(無指定可能) <xsd:attribute name="name" type="xsd:string" use="optional" /> |
default | デフォルト値指定(属性値無指定の場合、value属性の値を採用) <xsd:attribute name="category" type="xsd:string" use="default" value="other" /> |
fixed | 固定値指定(かならずvalue属性の値でなければなりません) <xsd:attribute name="selected" type="xsd:string" use="fixed" value="selected" /> |
use属性で指定可能な値 |
use属性がdefault、またはfixedの場合には、value属性は必須となります。
Copyright © ITmedia, Inc. All Rights Reserved.