2.5.3. 拡張による型の定義
ほとんどの主要なコーディング言語と同様に、XML スキーマを使用すると、他のデータ型から要素の一部を継承するデータ型を作成できます。これは、拡張による型の定義と呼ばれます。たとえば、planet
という新しい要素を追加して、例2.4「複合型」 で定義される personalInfo
構造を拡張する、alienInfo
という新しい型を作成できます。
拡張によって定義されるタイプには、次の 4 つの部分があります。
-
型の名前は、
complexType
要素のname
属性によって定義されます。 complexContent
要素は、新しい型に複数の要素があることを指定します。注記複合型に新しい属性を追加する場合にのみ、
simpleContent
要素を使用できます。-
新しい型が派生される ベース 型と呼ばれる型は、
extension
要素のbase
属性で指定されます。 -
新しい型の要素と属性は、通常の複合型と同様に
extension
要素で定義されます。
たとえば、alienInfo
は、例2.13「拡張子で定義されたタイプ」 のように定義されます。
例2.13 拡張子で定義されたタイプ
<complexType name="alienInfo"> <complexContent> <extension base="xsd1:personalInfo"> <sequence> <element name="planet" type="xsd:string"/> </sequence> </extension> </complexContent> </complexType>