XML文書の構造定義について(4)
IT・情報処理室のMです。
前回はXML Schema記述例の2行目までしか説明できませんでしたが、今回は残りの行を見ていきたいと思います。
●前回のXML Schema記述例
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="data" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="age" type="xsd:nonNegativeInteger" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name=" firstName " type="xsd:string" />
<xsd:element name=" lastName " type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
それでは、残りの行を見ていきましょう。
3行目ではXMLの構造について表現します。今回作成するXML文書のルート要素名は「root」ですので、name属性の値は「root」となります。
4~9行目までは要素の型定義を表現しています。
6行目では『xsd:element ref="data"』と宣言していますが、name属性を使用せずにref属性を使用しています。
ref属性を記述した場合、要素の構造については別の場所で宣言します。そして、ref属性の値に記されている要素、つまり11行目の『xsd:element name="data"』を参照していることになります。
また、『minOccurs="0" maxOccurs="unbounded"』と記述されていますが、同じ要素が繰り返し出現する場合は、minOccurs属性およびmaxOccurs属性を使用します。minOccurs属性は、「要素を最低何回記述しなければならないか」を指定する属性で、maxOccurs属性は、「要素を何個まで書くことができるか」を指定します。今回のようにminOccurs属性の値に「0」、maxOccurs属性の値に「unbounded」を指定した場合は、「data要素を0個以上何個でも記述することができる」ことを表しています。
8行目では属性を定義していますが、属性を定義する際は『xsd:attribute』要素を使用して宣言します。属性の名前は、要素と同じようにname属性の値に指定します。ここでは「age」という名前の属性を宣言するので、name属性の値には「age」と記述します。
また、『type="xsd:nonNegativeInteger" use="required"』と記述されていますが、type属性は属性のデータ型(属性値としてどのような値が記述できるか)を記述し、use属性は属性の必須/任意や固定値指定などを記述します。今回のようにtype属性の値に「xsd:nonNegativeInteger」、use属性の値に「required」を指定した場合は、「0以上の整数を必ず記述しなければならない」ことを表しています。
11~18行目までは要素である「data」を定義しており、19行目は終了タグとなります。
今回もそうですがXML Schemaについて駆け足での説明になってしまいましたが、少しでもXMLに興味を持っていただけたら嬉しいです (*⌒▽⌒*)。
参考サイト:SEのためのXML Schema入門(1)~(3)- @IT