質問

フォーム生成のためにいくつかの異なるアプリケーションによって読まれるスキーマがあります。そのうちの1つは、JAXB/XJCを使用してクラス構造をコンパイルします。スキーマには、フィールドの友好的な名前のAppINFO情報が含まれています。

<xs:element name="HomeAddress" type="xs:string">
  <xs:annotation>
    <xs:appinfo>Home address</xs:appinfo>
  </xs:annotation>
</xs:element>

XJCにこの情報をコンパイルする方法はありますか?

役に立ちましたか?

解決

使用できます アノテートプラグイン スキーマ由来のクラスに任意のJavaアノテーションを追加します。このプラグインを使用すると、次のような構文を管理できます。

<xs:element name="HomeAddress" type="xs:string">
  <xs:annotation>
    <xs:appinfo>
      <ann:annotate xmlns:ann="http://annox.dev.java.net/com.acme.foo">
        <my:Label value="Home address"/>
      </ann:annotate>
    </xs:appinfo>
  </xs:annotation>
</xs:element>

あなたは次のようなものを得る:

@Label("Home address") // FQCN is com.acme.foo.Label
public String getHomeAddress(...) {}

他のヒント

JAXBリファレンス実装に伴うXJCツールを使用してこれを行う方法を知りません。ただし、XJCでは、必要なカスタムプラグインを作成できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top