35.3. 単純型から複雑型を導出する
概要 リンクのコピーリンクがクリップボードにコピーされました!
Apache CXF は、単純型からの複合型の派生をサポートしています。単純型には、定義上、サブ要素も属性もありません。したがって、単純型から複合型を導出する主な理由の 1 つは、単純型に属性を追加することです。
単純型から複合型を導出する方法は 2 つあります。
拡張による派生 リンクのコピーリンクがクリップボードにコピーされました!
例35.12「拡張による単純型からの複雑型の導出」に、currency 属性を追加するために、エクステンションにより xsd:decimal
プリミティブ型から派生した複合型 internationalPrice
の例を示します。
例35.12 拡張による単純型からの複雑型の導出
simpleContent
要素は、新規タイプにサブ要素が含まれていないことを示します。extension
要素は、新しい型が xsd:decimal
を拡張することを指定します。
制限による導出 リンクのコピーリンクがクリップボードにコピーされました!
例35.13「制限による単純型からの複雑型の導出」 は、xsd:string
からの制限によって派生する複合型の idType
の例を示しています。定義される型は、xsd:string
の値を長さ 10 文字の値に制限します。また、タイプに属性を追加します。
例35.13 制限による単純型からの複雑型の導出
例35.12「拡張による単純型からの複雑型の導出」 の場合のように、simpleContent
要素は新しい型に子が含まれていないことを示します。この例では、restriction
要素を使用して、新しいタイプで使用される可能な値を制限します。attribute
要素は、新しい型に要素を追加します。
Java へのマッピング リンクのコピーリンクがクリップボードにコピーされました!
単純型から派生する複合型は、@XmlType
アノテーションが付けられた Java クラスにマッピングされます。生成されるクラスには、複合型が派生する単純型のメンバー変数 value
が含まれます。メンバー変数には @XmlValue
アノテーションが付けられます。また、このクラスには getValue()
メソッドと setValue()
メソッドがあります。さらに、生成されたクラスには、単純型を拡張する属性ごとに、メンバー変数、および関連するゲッターメソッドとセッターメソッドがあります。
例35.14「idType Java Class」に、例35.13「制限による単純型からの複雑型の導出」で定義される idType
型に生成される Java クラスを示します。
例35.14 idType Java Class