是否要求每个模式必须在 wsdl 中具有唯一的命名空间?例如,考虑下面的 WSDL 片段,它没有模式的命名空间。
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://example.com/WSDL/service/1.0.0/" schemaLocation="GetFilterValuesRequest.xsd"/>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://example.com/WSDL/service/1.0.0/" schemaLocation="GetFilterValuesReply.xsd"/>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://example.com/WSDL/service/1.0.0/" schemaLocation="IRequest.xsd"/>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://example.com/WSDL/service/1.0.0/" schemaLocation="IReply.xsd"/>
</xsd:schema>
</wsdl:types>
我问的原因是,我正在使用node-soap库来编写 WSDL 服务,并且当架构中存在冲突的命名空间或根本没有命名空间时,该库服务不起作用。
当发送 SOAP 请求时,它会给出一个错误Cannot read property 'input' of undefined
,因为它通过名称空间构建模式映射,然后无法找到给定请求的唯一模式。
我不想详细介绍错误或其修复方法,但是,我想了解 WSDL 是有效的吗?