38.3. 単純型の Java クラスの生成


概要

デフォルトでは、名前付きの単純型は、列挙型でない限り、生成された型にはなりません。単純型を使用して定義された要素は、Java プリミティブ型のプロパティーにマップされます。

型置換を使用する場合など、Java クラスに単純型を生成する必要がある場合があります。

コードジェネレーターに対し、グローバルに定義したすべての単純型のクラスを生成するように指示するには、globalBindings カスタマイズ要素の mapSimpleTypeDeftrue に設定します。

カスタマイズの追加

名前付き単純型の Java クラスを作成するようにコードジェネレーターに指示するには、globalBinding 要素の mapSimpleTypeDef 属性を追加し、その値を true に設定します。

例38.13「SimpleTypes の Java クラスの生成を強制するインラインカスタマイズ」 は、コードジェネレーターに名前付きの単純型の Java クラスを生成させるインラインカスタマイズを示しています。

例38.13 SimpleTypes の Java クラスの生成を強制するインラインカスタマイズ

<schema targetNamespace="http://widget.com/types/widgetTypes"
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
        xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
        jaxb:version="2.0">
  <annotation>
    <appinfo>
      <jaxb:globalBindings mapSimpleTypeDef="true" />
    </appinfo>
  </annotation>
  ...
</schema>

例38.14「定数の生成を強制するためのファイルのバインディング」 は、単純型の生成をカスタマイズする外部バインディングファイルを示しています。

例38.14 定数の生成を強制するためのファイルのバインディング

<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
               jaxb:version="2.0">
  <jaxb:bindings schemaLocation="types.xsd">
    <jaxb:globalBindings mapSimpleTypeDef="true" />
  <jaxb:bindings>
<jaxb:bindings>
重要

このカスタマイズは、グローバル スコープで定義されている 名前付き の単純型にのみ影響します。

生成されたクラス

単純型用に生成されるクラスには、value という 1 つのプロパティーがあります。value プロパティーは、「プリミティブ型」 のマッピングによって定義された Java 型です。生成されたクラスには value プロパティー getter と setter があります。

例38.16「シンプルタイプのカスタマイズされたマッピング」に、例38.15「カスタマイズされたマッピングのための単純なタイプ」 で定義される簡易型に生成される Java クラスを示します。

例38.15 カスタマイズされたマッピングのための単純なタイプ

<simpleType name="simpleton">
  <restriction base="xsd:string">
    <maxLength value="10"/>
  </restriction>
</simpleType>

例38.16 シンプルタイプのカスタマイズされたマッピング

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "simpleton", propOrder = {"value"})
public class Simpleton {

    @XmlValue
    protected String value;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.