[
https://issues.apache.org/jira/browse/CXF-6488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Kulp updated CXF-6488:
-----------------------------
Description:
Why Apache-cxf wsdl validator returns error:
"WSDLValidator Error : A document-literal binding in a DESCRIPTION MUST refer,
in each of its soapbind:body element(s),only to wsdl:part element(s) that have
been defined using the element attribute."
validating following document
http://www.ws-i.org/profiles/attachmentsprofile-1.0.html#Referencing_Attachments_from_the_SOAP_Envelope
(here it is correct):
{code:xml}
<?xml version="1.0" encoding="utf-8" ?>
<wsdl:definitions xmlns:types="http://example.com/mimetypes"
xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://example.com/mimewsdl"
xmlns:tns="http://example.com/mimewsdl">
<wsdl:types>
<xsd:schema targetNamespace="http://example.com/mimetypes"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd" />
<xsd:element name="ClaimDetail" type="types:ClaimDetailType"/>
<xsd:complexType name="ClaimDetailType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="ClaimForm" type="ref:swaRef"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ClaimRefNo" type="xsd:string"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="ClaimIn">
<wsdl:part name="body" element="types:ClaimDetail"/>
<wsdl:part name="ClaimPhoto" type="xsd:base64Binary"/>
</wsdl:message>
<wsdl:message name="ClaimOut">
<wsdl:part name="out" element="types:ClaimRefNo"/>
</wsdl:message>
<wsdl:portType name="ClaimPortType">
<wsdl:operation name="SendClaim">
<wsdl:input message="tns:ClaimIn"/>
<wsdl:output message="tns:ClaimOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ClaimBinding" type="tns:ClaimPortType">
<soapbind:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="SendClaim">
<soapbind:operation soapAction="http://example.com/soapaction"/>
<wsdl:input>
<mime:multipartRelated>
<mime:part>
<soapbind:body parts="body" use="literal"/>
</mime:part>
<mime:part>
<mime:content part="ClaimPhoto" type="image/jpeg"/>
</mime:part>
</mime:multipartRelated>
</wsdl:input>
<wsdl:output>
<soapbind:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
</wsdl:definitions>
{code}
was:
Why Apache-cxf wsdl validator returns error:
"WSDLValidator Error : A document-literal binding in a DESCRIPTION MUST refer,
in each of its soapbind:body element(s),only to wsdl:part element(s) that have
been defined using the element attribute."
validating following document
http://www.ws-i.org/profiles/attachmentsprofile-1.0.html#Referencing_Attachments_from_the_SOAP_Envelope
(here it is correct):
<?xml version="1.0" encoding="utf-8" ?>
<wsdl:definitions xmlns:types="http://example.com/mimetypes"
xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://example.com/mimewsdl"
xmlns:tns="http://example.com/mimewsdl">
<wsdl:types>
<xsd:schema targetNamespace="http://example.com/mimetypes"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd" />
<xsd:element name="ClaimDetail" type="types:ClaimDetailType"/>
<xsd:complexType name="ClaimDetailType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="ClaimForm" type="ref:swaRef"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ClaimRefNo" type="xsd:string"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="ClaimIn">
<wsdl:part name="body" element="types:ClaimDetail"/>
<wsdl:part name="ClaimPhoto" type="xsd:base64Binary"/>
</wsdl:message>
<wsdl:message name="ClaimOut">
<wsdl:part name="out" element="types:ClaimRefNo"/>
</wsdl:message>
<wsdl:portType name="ClaimPortType">
<wsdl:operation name="SendClaim">
<wsdl:input message="tns:ClaimIn"/>
<wsdl:output message="tns:ClaimOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ClaimBinding" type="tns:ClaimPortType">
<soapbind:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="SendClaim">
<soapbind:operation soapAction="http://example.com/soapaction"/>
<wsdl:input>
<mime:multipartRelated>
<mime:part>
<soapbind:body parts="body" use="literal"/>
</mime:part>
<mime:part>
<mime:content part="ClaimPhoto" type="image/jpeg"/>
</mime:part>
</mime:multipartRelated>
</wsdl:input>
<wsdl:output>
<soapbind:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
</wsdl:definitions>
> Binding style vs part type R2203 And R2204 problems in wsdl document
> --------------------------------------------------------------------
>
> Key: CXF-6488
> URL: https://issues.apache.org/jira/browse/CXF-6488
> Project: CXF
> Issue Type: Bug
> Components: Tooling, WS-* Components
> Affects Versions: 3.0.1
> Environment: apache-cxf 3.0.1
> Reporter: Yuri Kr
>
> Why Apache-cxf wsdl validator returns error:
> "WSDLValidator Error : A document-literal binding in a DESCRIPTION MUST
> refer, in each of its soapbind:body element(s),only to wsdl:part element(s)
> that have been defined using the element attribute."
> validating following document
> http://www.ws-i.org/profiles/attachmentsprofile-1.0.html#Referencing_Attachments_from_the_SOAP_Envelope
> (here it is correct):
> {code:xml}
> <?xml version="1.0" encoding="utf-8" ?>
> <wsdl:definitions xmlns:types="http://example.com/mimetypes"
> xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
> targetNamespace="http://example.com/mimewsdl"
> xmlns:tns="http://example.com/mimewsdl">
> <wsdl:types>
> <xsd:schema targetNamespace="http://example.com/mimetypes"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd" />
> <xsd:element name="ClaimDetail" type="types:ClaimDetailType"/>
> <xsd:complexType name="ClaimDetailType">
> <xsd:sequence>
> <xsd:element name="Name" type="xsd:string"/>
> <xsd:element name="ClaimForm" type="ref:swaRef"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:element name="ClaimRefNo" type="xsd:string"/>
> </xsd:schema>
> </wsdl:types>
> <wsdl:message name="ClaimIn">
> <wsdl:part name="body" element="types:ClaimDetail"/>
> <wsdl:part name="ClaimPhoto" type="xsd:base64Binary"/>
> </wsdl:message>
> <wsdl:message name="ClaimOut">
> <wsdl:part name="out" element="types:ClaimRefNo"/>
> </wsdl:message>
> <wsdl:portType name="ClaimPortType">
> <wsdl:operation name="SendClaim">
> <wsdl:input message="tns:ClaimIn"/>
> <wsdl:output message="tns:ClaimOut"/>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="ClaimBinding" type="tns:ClaimPortType">
> <soapbind:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <wsdl:operation name="SendClaim">
> <soapbind:operation soapAction="http://example.com/soapaction"/>
> <wsdl:input>
> <mime:multipartRelated>
> <mime:part>
> <soapbind:body parts="body" use="literal"/>
> </mime:part>
> <mime:part>
> <mime:content part="ClaimPhoto" type="image/jpeg"/>
> </mime:part>
> </mime:multipartRelated>
> </wsdl:input>
> <wsdl:output>
> <soapbind:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> </wsdl:definitions>
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)