java – 使用Apache CXF更改WSDL xsd:complexType名称

我使用Apache CXF发布Web服务,“即时”生成WSDL.这很好用,但我想更改生成类型的命名约定.当服务客户端(C#)基于WSDL生成代码时,默认的xsd:complexType命名会导致以小写字母开头的类型名称.

以下是生成的WSDL的摘录:

<xs:complexType name="protocolItem">
<xs:sequence>
  <xs:element minOccurs="0" name="data" type="tns:protocolItemData"/>
  <xs:element maxOccurs="unbounded" minOccurs="0" name="elements" nillable="true" type="tns:protocolElement"/>
  <xs:element minOccurs="0" name="meta" type="tns:protocolItemMeta"/>
</xs:sequence>
</xs:complexType>

这是导致上述WSDL片段的Java代码:

@RooJavaBean
public class ProtocolItem {

    private ProtocolItemData data;
    private ProtocolItemMeta meta;
    private List<ProtocolElement> elements;

}

如何更改生成的WSDL以使用类似< xs:complexType name =“ProtocolItem”>?的内容

希望我没有错过明显的注释……谢谢!

编辑:谢谢你的第一个答案!所以有一种方法可以“按类”执行此操作 – 我可以配置CXF命名约定吗?如果我不需要注释所有类,那将会很好.

解决方法:

试试这个:

@XmlType(name="ProtocolItem")
public class ProtocolItem {
   ...
}

希望这可以帮助.

上一篇:Tcl与Design Compiler (十三)——Design Compliler中常用到的命令(示例)总结


下一篇:Java – Apache CXF将支持基于JAX-RPC的Web服务(SOAP)