spring ws simplexsdsdschema无法访问wsdl中包含的xsd架构

8iwquhpp  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(235)

我正在使用的wsdl没有单独的xsd文件。xsd模式包含在wsdl文件中,如下所示

<wsdl:definitions name="myProject"
                  targetNamespace="http://www.company.gr/myProject/definitions"
                  xmlns:tns="http://www.company.gr/myProject/definitions"
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:xsd1="http://www.company.gr/myProject/schemas">

    <wsdl:types>
        <schema
                targetNamespace="http://www.company.gr/myProject/schemas"
                xmlns="http://www.w3.org/2001/XMLSchema">

        <simpleType name="aaa">
            ...
        </simpleType>

...
我想添加一个验证拦截器,代码如下:

@Override
public void addInterceptors(List<EndpointInterceptor> interceptors) {
    PayloadValidatingInterceptor validatingInterceptor = new PayloadValidatingInterceptor();
    validatingInterceptor.setValidateRequest(true);
    validatingInterceptor.setValidateResponse(true);
    validatingInterceptor.setXsdSchema(mySchema());
    interceptors.add(validatingInterceptor);
}

@Bean
public XsdSchema mySchema(){
    return new SimpleXsdSchema(new ClassPathResource("**myWSDL.wsdl#types**"));
}

但是在使用mywsdl.wsdl类型时找不到架构。
有没有一种方法可以访问模式而不必重新构造wsdl来外部化xsd模式?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题