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