如何以编程方式添加WSDL <types>限制?</types>

时间:2009-09-28 14:04:40

标签: java web-services jbossws

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

执行此操作时,如何在XSD <types> WSDL元素中添加限制?例如,在以下内容中:

<types

我的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;
    }
}

我想将... <xs:complexType name="sayHello"> <xs:sequence> <xs:element minOccurs="0" name="arg0" type="xs:string" /> </xs:sequence> </xs:complexType> ... minLength限制添加到“guest”字符串中。这是否可以通过代码而不是直接编辑WSDL?

我知道我可以使用自定义类并使用maxLength@XmlElement注释我的字段以获取一些自定义项(名称,必需等),但没有具体的类似于字符串(长度等);是否可以修改/扩展这些注释以添加对长度或模式等内容的支持?

感谢。

1 个答案:

答案 0 :(得分:0)

我觉得有趣的是,您的策略是尝试自下而上构建Web服务,因为我建议自上而下构建Web服务以便清晰地定义合同。无论如何......

我不知道使用注释的特定解决方案,我发现你在搜索中也找不到一个。如果要自动化该过程以避免在每次重新生成WSDL时覆盖对模式的更改,则可以将XSL转换添加到生成的WSDL以添加这些属性。虽然不是理想的解决方案,但它应该允许您设置属性并继续工作。