我有一个完全验证的现有XML模式(不是由我制作)(例如使用Oxygen XML Developer)。它使用XML Schema 1.1功能,因此定义了vc:minVersion="1.1" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
。
但是,只要我将这个(复制到 not include / reference)嵌入到WSDL文件中,它就会在Oxygen XML Developer中失效。一旦我在WSDL文件中将vc:minVersion="1.1"
更改为vc:minVersion="1.0"
,它就会验证,因为我也纠正了现在无效的1.1功能。
准确地说,这个超级简单的WSDL将验证:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://some.location.tld" xmlns:tns="http://some.location.tld" xmlns:objects="http://www.domain.tld" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xs:schema targetNamespace="http://www.domain.tld" vc:minVersion="1.0" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="foobar" type="xs:string"/>
</xs:schema>
</wsdl:types>
<wsdl:message name="someRequest">
<wsdl:part name="parameter" element="objects:foobar"/>
</wsdl:message>
<wsdl:message name="someResponse">
<wsdl:part name="parameter" element="objects:foobar"/>
</wsdl:message>
<wsdl:portType name="somePortType">
<wsdl:operation name="get">
<wsdl:input message="tns:someRequest"/>
<wsdl:output message="tns:someResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="someSoapHttpBinding" type="tns:somePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="get">
<soap:operation soapAction=""/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="some">
<wsdl:port name="somePort" binding="tns:someSoapHttpBinding">
<soap:address location="https://some.location.tld"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
只有将vc:minVersion="1.0"
更改为vc:minVersion="1.1"
后,它才会变为无效。
所以问题是,如何正确定义包含嵌入式XSD 1.1架构的WSDL?这是Oxygen XML Developer(版本17)中的错误吗?哪些工具应该支持它?也许Altova XMLSpy?
我是否可能必须使用WSDL 2.0来使用嵌入式XSD 1.1模式?至少gsoap
在他们的主页上提到完全支持XSD 1.1 - 这必须意味着可以存在具有XSD 1.1的WSDL。
* 帮助*
[edit]澄清一下:简单地使用XML Schema 1.0并解决1.1功能是不选项。