如何解析WSDL中已定义的元素?

时间:2014-09-22 16:18:48

标签: java c# web-services jaxb wsdl

我正在尝试连接到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天...

我有什么办法可以自动生成课程吗?

1 个答案:

答案 0 :(得分:1)

请看这个答案:

Prefixing JAXB generated classes

jaxb:nameXmlTransform是你的朋友。

我通常会<jaxb:elementName suffix="Element"/>