我使用 Apache CXF 发布网络服务,“即时”生成 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 {
...
}
希望这对您有所帮助。
关于java - 更改 WSDL xsd :complexType name with Apache CXF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18556816/