【发布时间】:2015-07-10 13:44:03
【问题描述】:
我正在使用 JAX-WS 生成自上而下的 Web 服务。在 wsdl 中,我正在导入一个包含所有必要元素的 xsd。我需要在soap请求中以大写显示所有xml节点,因此我将xsd中的元素名称保留为大写。但是在从 wsdl 生成类时,我可以看到 getter 和 setter 方法也以大写命名,但不是变量。例如,如果我在 xsd 中使用“SOURCE”作为元素,我将获得相应的 getter 方法作为“getSOURCE”而不是常规约定“getSource”。我尝试通过从模式生成 jaxb 类来玩游戏,同时保持 xsd 单独存在,但我无法获得预期的命名约定。
以下是使用的架构的一部分
<xs:complexType name="Data">
<xs:sequence>
<xs:element name="SEQ" type="xs:int"/>
<xs:element name="INDEX" type="xs:string"/>
<xs:element name="VALUE" type="xs:string"/>
</xs:sequence>
这会在 jaxb 绑定后生成以下代码 -
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Data", propOrder = {
"seq",
"index",
"value"
})
public class Data {
@XmlElement(name = "SEQ")
protected int seq;
@XmlElement(name = "INDEX", required = true)
protected String index;
@XmlElement(name = "VALUE", required = true)
protected String value;
public int getSEQ() {
return seq;
}
public void setSEQ(int value) {
this.seq = value;
}
public String getINDEX() {
return index;
}
public void setINDEX(String value) {
this.index = value;
}
public String getVALUE() {
return value;
}
public void setVALUE(String value) {
this.value = value;
}
}
这里的 setter 方法被生成为 setSEQ,我需要它像 'setSeq' 这样的骆驼案例。
【问题讨论】:
标签: java xml web-services xsd jaxb