繁体   English   中英

SOAP服务中的不可见或隐藏XML元素

[英]Invisible or hidden XML element in SOAP service

我正在使用Java构建嵌入式JAX-WS SOAP服务。 我正在使用javax.xml.bind定义数据类型。

我想隐藏其中一种数据类型中的一个字段,以便在发布WSDL时将其支持但不可见。

我的动机是我们将弃用一个属性,但是我仍然会支持该属性(内容将被忽略和未使用)。 在下面的示例中,如果用户通过http://myservice?wsdl访问WSDL,则他们不会将属性email视为user的一部分

我可以使用任何可以提供此功能的注释吗? 另外

@XmlType
public class User
{
 @XmlElement
 public String name;

 @XmlElement
 @Hidden (?)
 public String email;

}

我不知道有什么标准方法可以告诉CXF忽略生成的WSDL中的元素。 一种选择是维护静态WSDL文件,然后从架构中手动删除“ hidden”元素。 您可以将该字段保留在JAXB带注释的类中。 如果使用Spring配置服务,则可以添加具有wsdlLocation属性的WSDL:

<jaxws:endpoint 
    wsdlLocation="classpath:/Service.wsdl">
</jaxws:endpoint>

请注意,包含“隐藏”字段的XML将不再验证,因此,如果对输入消息使用架构验证,则需要忽略这些错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM