私はこの次のディレクトリ構造を持っています
Root
CommonSchema
1.xsd
2.xsd
Service1
XSD
3.xsd ( importing 1 and 2 xsd )
WSDL
A.wsdl ( importing 3.xsd )
Service2
XSD
4.xsd ( importing 1 and 2 xsd )
WSDL
B.wsdl ( importing 4.xsd )
XMLBeans + CXFを使用して、ソースを生成し、それらを1つのjarにコンパイルしようとしています。CommonSchemaフォルダーには、Service1と2で共有されるスキーマがあります。
ソースソースを生成しようとすると、1と2のxsdのソースに名前の競合があるようです。これを以下に示します。
最初のWSDL生成
2番目のWSDL生成
この一般的なスキーマをどのようにコンパイルする必要があるかについてのアイデアはありますか?
これが私のAntスクリプトです:
<target name="cxfWSDLToJava">
<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
<arg value="-databinding"/>
<arg value="xmlbeans"/>
<arg value="-client"/>
<arg value="-d"/>
<arg value="cxfsrc"/>
<arg value="D:\Generation\Services\CBS-CustAccountInfo-I\WSDL\CBS-CustAccountInfo-I-Concrete.wsdl"/>
<classpath>
<path refid="cxf.classpath"/>
</classpath>
</java>
</target>
<target name="cxfWSDLTXNToJava">
<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
<arg value="-databinding"/>
<arg value="xmlbeans"/>
<arg value="-client"/>
<arg value="-d"/>
<arg value="cxfsrc"/>
<arg value="D:\Generation\Services\CBS-DirectDebCredTransfer-C\WSDL\CBS-DirectDebCredTransfer-C-Concrete.wsdl"/>
<classpath>
<path refid="cxf.classpath"/>
</classpath>
</java>
</target>
私のプロジェクトは次の場所にあります:ここCXF-Generationの下。
スキーマ全体とWSDLは、CXF-Generation/Generationの下にあります。