cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yuri Kr (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CXF-6488) Binding style vs part type R2203 And R2204 problems in wsdl document
Date Mon, 10 Aug 2015 12:47:47 GMT

     [ https://issues.apache.org/jira/browse/CXF-6488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Yuri Kr 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."
Validator takes messages' parts from operations despite of style of usage (mime:content here)
and returns error if soap binding style does not match part type/element. At the same time
this document is marked as correct on http://www.ws-i.org web page. So i do not understand,
is it an apache-cxf bug or ws-i web page does not follow their standards?
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):
{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}



> 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."
> Validator takes messages' parts from operations despite of style of usage (mime:content
here) and returns error if soap binding style does not match part type/element. At the same
time this document is marked as correct on http://www.ws-i.org web page. So i do not understand,
is it an apache-cxf bug or ws-i web page does not follow their standards?
> 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)

Mime
View raw message