xsd ファイルのセットがあり、これらのタイプの Java クラスを生成する必要があります。問題は、複数の xsd ファイルと、これらのファイル内の xml タイプの複数の定義にあります。また、複数の定義がすべて単純明快というわけではありません。定義をオーバーライドするものもあれば、拡張するものもあれば、異なる名前空間で同じものもあれば、すべての意味で同じものもあります。規則的なパターンはありません (実際、これらの XSD は別の会社のものであり、xml のデータが必要です。そのため、JAVA-XML マッピングを気にしないため、XSD について不平を言うことは実際にはオプションではありません :|)。
2 つの異なる JAXB プラグイン (mojo と jvnet) を試しましたが、どちらも同じエラーが発生します -
com.sun.istack.SAXParseException2: 2 つの宣言により、ObjectFactory クラスで衝突が発生します。
私はこれが必ず起こることを理解しており、いくつかのことを試しました. mojo プラグインを使用して、maven にすべてのファイルを個別にコンパイルし、それらを異なるパッケージ (プラグインに複数あり、それぞれ独自の .
そして後で、同じことを別の方法でやろうとしました。jvnet プラグインを使用し、次のように bindings.xml ファイルで xsd と Java パッケージのマッピングを定義しました -
<bindings schemaLocation="../xsd/1.0/abcd.xsd">
<schemaBindings>
<package name="com.xxx.services.yyy.abcd"/>
</schemaBindings>
</bindings>
そして、私はこのエラーに遭遇しました -
com.sun.istack.SAXParseException2: Multiple <schemaBindings> are defined for the target namespace "http://www.fpml.org/FpML-5/recordkeeping"
at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:82)
at com.sun.tools.xjc.reader.xmlschema.ErrorReporter.error(ErrorReporter.java:79)
at com.sun.tools.xjc.reader.xmlschema.BGMBuilder.checkMultipleSchemaBindings(BGMBuilder.java:343)
at com.sun.tools.xjc.reader.xmlschema.BGMBuilder.buildContents(BGMBuilder.java:313)
at com.sun.tools.xjc.reader.xmlschema.BGMBuilder._build(BGMBuilder.java:182)
at com.sun.tools.xjc.reader.xmlschema.BGMBuilder.build(BGMBuilder.java:116)
at com.sun.tools.xjc.ModelLoader.annotateXMLSchema(ModelLoader.java:415)
at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:167)
at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:113)
at org.jvnet.jaxb2.maven2.RawXJC2Mojo.loadModel(RawXJC2Mojo.java:636)
at org.jvnet.jaxb2.maven2.RawXJC2Mojo.doExecute(RawXJC2Mojo.java:259)
at org.jvnet.jaxb2.maven2.RawXJC2Mojo.execute(RawXJC2Mojo.java:135)
これは、別の方法で表示された同じエラーです。
他のオプションに飛び込む前に、このタイプのバインディングに使用すべき最善の戦略を見つけることにしました。どうやら私が知っているものは機能していないようです。何か提案はありますか?そして、この問題の解決策は何ですか?
大変助かります