有没有办法在Spring WS 2中公开静态XSD?

时间:2012-07-25 03:04:00

标签: java spring xsd wsdl spring-ws

如果,例如orders.wsdl导入Orders.xsd,如何使用static-wsdl配置

<sws:static-wsdl id="orders" location="/WEB-INF/wsdl/orders.wsdl"/>

可以在浏览器中查看Orders.xsd,如http://host/context/Orders.xsd

动态wsdl支持它。

<sws:dynamic-wsdl id="orders"
    portTypeName="Orders"
    locationUri="http://localhost:8080/ordersService/">
  <sws:xsd location="/WEB-INF/xsd/Orders.xsd"/>
</sws:dynamic-wsdl>

但是static-wsdl没有sws:xsd属性。

2 个答案:

答案 0 :(得分:0)

没有支持命名空间但你可以这样做 -

<bean id="Orders" class="org.springframework.xml.xsd.SimpleXsdSchema">
    <property name="xsd" value="classpath:/Orders.xsd" />
</bean>

这将解析wsdl文件中的引用xsd -

<wsdl:types>
    <xsd:schema elementFormDefault="qualified">
        <xsd:import namespace="..." schemaLocation="Orders.xsd"></xsd:import>
    </xsd:schema>
</wsdl:types>

答案 1 :(得分:0)

或者你可以使用那个

 <wsdl:types>


   <xs:schema targetNamespace="...."
          elementFormDefault="qualified">

                <xs:include schemaLocation="xsd/Order.xsd"/>

   </xs:schema>