テキストと属性を持つ要素を定義する - 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> を使って定義しています。
[ もどる ]