web-dev-qa-db-ja.com

JAXB、XJC->複数のクラスファイルを作成する

初めてJAXBとXJCを使用しています。

Java XMLファイルからクラスを生成するため、 このオンラインヘルパー を使用してXMLファイルからスキーマを生成します。

その後、このコマンドラインを使用してJavaクラスを生成します:

xjc myschema.xsd

それは機能しますが、Javaファイルとその内部の多くの静的クラスのみを受け取ります。これは、ファイルごとに1つのクラスのみを含む多くのJavaファイルを生成することは可能ですか? ?

ありがとうございました

24
Olivier J.

デフォルトでは JAXB(JSR-222) は、ネストされた複合型の静的内部クラスを作成して、クラス名の競合を防止します。外部バインディングファイルを使用して、この動作を無効にすることができます。

binding.xml

バインディングファイルを使用すると、XMLスキーマからJavaクラスを生成する方法をカスタマイズできます。

<jaxb:bindings
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:jaxb="http://Java.Sun.com/xml/ns/jaxb"
    version="2.1">
    <jaxb:globalBindings localScoping="toplevel"/>
</jaxb:bindings>

XJCコール

-bオプションは、バインディングファイルを指定するためにXJCコマンドで使用されます。

xjc -b binding.xml myschema.xsd

詳細情報

46
bdoughan