[ 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)