第34章 単純型の使用
概要
XML Schema の単純なタイプは xsd:int などの XML Schema プリミティブタイプであるか、または simpleType 要素を使用して定義されます。これらは、子や属性を含まない要素を指定するために使用されます。これらは通常、ネイティブ Java 構造にマップされ、それらを実装するために特別なクラスを生成する必要はありません。列挙された単純なタイプは Java enum タイプにマップされるため、生成されたコードでは発生しません。
34.1. プリミティブ型
概要
XML スキーマプリミティブ型の 1 つを使用してメッセージ部分が定義されると、生成されたパラメーターの型は、対応する Java ネイティブ型にマップされます。複合型のスコープ内で定義されている要素をマッピングする場合も、同じパターンが使用されます。結果のフィールドは、対応する Java ネイティブタイプです。
マッピング
表34.1「XML スキーマのプリミティブ型から Java ネイティブ型へのマッピング」 XML スキーマプリミティブ型と Java ネイティブ型の間のマッピングを一覧表示します。
表34.1 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 ラッパークラスにマップされる方法を示しています。
表34.2 プリミティブスキーマタイプから Java ラッパークラスへのマッピング
| スキーマタイプ | Java タイプ |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|