テキストと属性を持つ要素を定義する - XML スキーマ - XML プログラミング

PROGRAM


テキストと属性を持つ要素を定義する

まずは参考として、XML スキーマで、テキストだけの要素を定義するのは簡単です。

接頭辞 xsd を名前空間 "http://www.w3.org/2001/XMLSchema" としたときに、テキストだけの要素なら、次のように定義できます。

<xsd:element name="サイト" type="xsd:string" />

これで、内部にテキストだけを持つ <サイト> タグが定義できました。

<サイト>サイトのタイトル</サイト>

 

ただ、次のように属性も持たせたい場合には、途端に複雑になってきます。

<サイト URL="http://....../">サイトのタイトル</サイト>

XML スキーマで、このようなテキストと属性だけを持つ要素は、たとえば次のような定義になります。

<xsd:element name="サイト">

<xsd:complexType>

<xsd:simpleContent>

<xsd:extension base="xsd:string">

<xsd:attribute name="URL" type="xsd:anyURI" use="required" />

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

</xsd:element>

このように <xsd:complexType> でいったん複合型として定義した上で、<xsd:simpleContent> で子要素を含まない単純な要素として定義します。

そしてこのとき、今回は文字列を持つ要素にしようと思うので、<xsd:extension base="xsd:string"> として、単純なテキスト型を意味する xsd:string を拡張すると定義します。

そして、その中で、持たせたい属性を <xsd:attribute> を使って定義しています。


[ もどる ]