WSDL schemaLocation:是否可以使用相对路径将.xsd导入.wsdl?

时间:2011-04-21 16:47:34

标签: xml web-services xsd wsdl

这是我的WSDL:

<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions targetNamespace="http://xxx" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns0="http://xxx/commun/axis" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://xxx" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

     <wsdl:types>
          <xsd:schema targetNamespace="http://xxx/commun/axis" xmlns="http://www.w3.org/2001/XMLSchema">
               <xsd:include schemaLocation="https://host:port/path/WebServices/wsdl/typesServicesApplicatifs.xsd"/>
(...)

typesServicesApplicatifs.xsd文件与WSDL文件位于同一目录中(在战争中),是否可以使用相对路径而不是模式位置的绝对路径?

这将非常有用,因为目前,schemaLocation在每个环境中都是不同的(必须指定主机和端口)。

编辑:此问题与此帖子中的最后一个问题相同(没有回答):http://forum.springsource.org/showthread.php?p=342542

1 个答案:

答案 0 :(得分:0)

以下是实现此目的的方法:

使用Spring-WS,可以从以下位置自动生成WSDL:

<sws:dynamic-wsdl id="holiday" portTypeName="HumanResource" **locationUri="/holidayService/"** targetNamespace="http://mycompany.com/hr/definitions">
  <sws:xsd location="/WEB-INF/hr.xsd"/>
</sws:dynamic-wsdl>

来源:http://static.springsource.org/spring-ws/site/reference/html/tutorial.html#tutorial-publishing-wsdl

这样,不需要在WSDL中指定主机,端口和上下文路径。