XJCコマンドラインツールを使用して自分のXSDスキーマファイルからJavaクラスを生成します。 ObjectFactoryクラスは、不完全なコンテンツを生成します。 JAXBElement<Type> createType
装飾なしで作成メソッドを生成します。JAXB XJCコード生成 - ObjectFactoryクラスが不完全です
これは何故ですか? よろしくお願いします。 Dominik
XJCコマンドラインツールを使用して自分のXSDスキーマファイルからJavaクラスを生成します。 ObjectFactoryクラスは、不完全なコンテンツを生成します。 JAXBElement<Type> createType
装飾なしで作成メソッドを生成します。JAXB XJCコード生成 - ObjectFactoryクラスが不完全です
これは何故ですか? よろしくお願いします。 Dominik
JAXB2 XJC生成バインディング内の一部のタイプのみが、JAXBElement
ラッパーを必要とします。 @XMLRootElement
注釈を持つ型はラッパーを必要としないので、オブジェクトファクトリはラッパーを生成しません。
あなたのスキーマに要素がありますか?これが通常理由です。
JAXBあなたのXSDは、例えば、同じ名前を持つことのcomplexTypeを用いcomplexType定義と別個の要素の定義の両方を含む場合にのみ、オブジェクトインスタンスからJAXBElementのを作成するファクトリメソッドを生成するこので
<complexType name="my-type">
...
</complexType>
<element name="my-type" type="tns:my-type"/>
JAXBは生成されたクラスに@XmlRootElementアノテーションを注釈付けしませんが、オブジェクトインスタンスからJAXBElementを作成するために必要なファクトリメソッドを提供します。こうすることで、非ルート要素型のインスタンスをルート要素として簡単に直列化できます。
トップレベルの要素として使用するcomplexType定義に加えて、同じ名前の "要素"宣言を追加するだけで、ObjectFactoryは期待されるファクトリメソッドを生成します。