我正在尝试连接到C#/ NET(* .svc)Web服务。我必须使用java,因此wsdl2java
是我的选择。
问题:以某种方式,定位网络服务定义了许多公共元素。这可能是由于C#的性质或其他原因造成的。
有100多个元素如下:
<xs:complexType name="Ticket">
<xs:sequence>
<xs:element minOccurs="0" name="ASegment"
nillable="true" type="tns:AnArray" />
</xs:sequence>
</xs:complexType>
<xs:element name="Ticket" nillable="true" type="tns:Ticket" />
导致:
'Ticket' is already defined (org.apache.cxf:cxf-codegen-plugin:3.0.1:wsdl2java:generate-sources:generate-sources)
我该如何应对?我读到了一个jaxb-binding.xml
文件,我可以在其中“重命名”特定元素。
但如果我将这个应用于100多个元素,那么本周只有5天...
我有什么办法可以自动生成课程吗?
答案 0 :(得分:1)
请看这个答案:
Prefixing JAXB generated classes
jaxb:nameXmlTransform
是你的朋友。
我通常会<jaxb:elementName suffix="Element"/>
。