第34章 単純型の使用
概要
XML Schema の単純なタイプは xsd:int
などの XML Schema プリミティブタイプであるか、または simpleType
要素を使用して定義されます。これらは、子や属性を含まない要素を指定するために使用されます。これらは通常、ネイティブ Java 構造にマップされ、それらを実装するために特別なクラスを生成する必要はありません。列挙された単純なタイプは Java enum
タイプにマップされるため、生成されたコードでは発生しません。
34.1. プリミティブ型
概要
XML スキーマプリミティブ型の 1 つを使用してメッセージ部分が定義されると、生成されたパラメーターの型は、対応する Java ネイティブ型にマップされます。複合型のスコープ内で定義されている要素をマッピングする場合も、同じパターンが使用されます。結果のフィールドは、対応する Java ネイティブタイプです。
マッピング
表34.1「XML スキーマのプリミティブ型から Java ネイティブ型へのマッピング」 XML スキーマプリミティブ型と Java ネイティブ型の間のマッピングを一覧表示します。
XML スキーマタイプ | Java タイプ |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[a]
このタイプの要素の場合。
[b]
このタイプの属性の場合。
|
ラッパークラス
XML スキーマプリミティブ型を Java プリミティブ型にマッピングすることは、考えられるすべての XML スキーマ構造に対して機能するわけではありません。いくつかのケースでは、XML スキーマプリミティブ型が Java プリミティブ型の対応するラッパー型にマップされる必要があります。ユースケースには以下が含まれます。
以下に示すように、その
nillable
属性がtrue
に設定されたelement
要素。<element name="finned" type="xsd:boolean" nillable="true" />
minOccurs
属性が0
、maxOccurs
属性が1
に設定されているか、maxOccurs
属性が指定されていないelement
要素は、次のようになります。<element name="plane" type="xsd:string" minOccurs="0" />
図のように,
use
属性がoptional
または not specified に設定され,default
属性もfixed
属性も指定されていないattribute
要素です。<element name="date"> <complexType> <sequence/> <attribute name="calType" type="xsd:string" use="optional" /> </complexType> </element>
表34.2「プリミティブスキーマタイプから Java ラッパークラスへのマッピング」 は、これらの場合に XML スキーマプリミティブ型が Java ラッパークラスにマップされる方法を示しています。
スキーマタイプ | Java タイプ |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|