Java 如何添加WSDL<;类型>;以编程方式限制?
在我工作的地方,我们有一个政策,规定我们应该尝试“自下而上”(代码优先)构建web服务 执行此操作时,如何在XSDJava 如何添加WSDL<;类型>;以编程方式限制?,java,web-services,jbossws,Java,Web Services,Jbossws,在我工作的地方,我们有一个政策,规定我们应该尝试“自下而上”(代码优先)构建web服务 执行此操作时,如何在XSDWSDL元素中添加限制?例如,在以下情况下: import javax.jws.WebService; import javax.xml.ws.BindingType; @WebService @BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING) public class ProofOfConcept {
WSDL元素中添加限制?例如,在以下情况下:
import javax.jws.WebService;
import javax.xml.ws.BindingType;
@WebService
@BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
public class ProofOfConcept {
public String sayHello(String guest){
return "Hello "+guest;
}
}
我的WSDL中的输出如下所示:
...
<xs:complexType name="sayHello">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="xs:string" />
</xs:sequence>
</xs:complexType>
...
。。。
...
我想在“guest”字符串中添加minLength
和maxLength
限制。这是否可以通过代码而不是直接编辑WSDL来实现
我知道我可以使用自定义类,并使用@xmlement
或@xmldattribute
注释我的字段,以获得一些自定义设置(名称、必填项等),但对于字符串(长度等)之类的内容没有任何特定的设置;是否可以修改/扩展这些注释以添加对长度或模式之类的内容的支持
谢谢。我发现有趣的是,您的策略是尝试自底向上构建Web服务,因为我建议自顶向下构建Web服务,以便清晰地定义契约。无论如何
我不知道使用注释的特定解决方案,我发现您在搜索中也没有找到。如果希望自动化该过程,以避免在每次重新生成WSDL时覆盖对模式的更改,则可以向生成的WSDL添加XSL转换以添加这些属性。虽然不是一个理想的解决方案,但它应该允许您设置属性并继续工作。在web上搜索,这似乎是不可能的(请参阅)。手工编辑WSDL是我唯一的选择吗?