JAXB XJCコード生成-ObjectFactoryクラスは不完全です
質問
XJCコマンドラインツールを使用して、XSDスキーマファイルからJavaクラスを生成します。 ObjectFactoryクラスは不完全なコンテンツを生成します。 JAXBElement<Type> createType
装飾なしで作成メソッドを生成します。
この理由は何ですか? よろしく ドミニク
解決
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定義に加えて、同じ名前の<!> quot; element <!> quot; -declarationを追加するだけで、ObjectFactoryは期待されるファクトリーメソッド。
所属していません StackOverflow