Java 如何添加WSDL<;类型>;以编程方式限制?

Java 如何添加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 {

在我工作的地方,我们有一个政策,规定我们应该尝试“自下而上”(代码优先)构建web服务

执行此操作时,如何在XSD
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是我唯一的选择吗?