Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-4023

adb binding of xsd:extension produces xsi:type="ns1:Extension_type0" not in schema

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.4.1
    • 1.6.3, 1.7.0
    • adb
    • None
    • Tomcat 1.6, axis2 1.4.1, Windows XP, Eclipse 3.4

    Description

      wsdl please see below

      The response of operation contains:

      <xsd:simpleContent>
      <xsd:extension base="tns:ReproStringType">
      <xsd:attribute name="lang" type="xsd:language">
      </xsd:attribute>
      </xsd:extension>
      </xsd:simpleContent>

      the extension of a restricted type:
      <xsd:simpleType name="ReproStringType">
      <xsd:restriction base="xsd:string">
      <xsd:maxLength value="1024"></xsd:maxLength>
      </xsd:restriction>
      </xsd:simpleType>
      this leads to a response of:

      <Extension xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns1:Extension_type0" lang="de">response</Extension>
      since ns1:Extension_type0 is not in the schema, .Net does not accept this package.

      Request Package:
      <?xml version="1.0" ?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.example.org/repro/"><soapenv:Body><ns1:ReproOperation><in><SimpleString>simplestring</SimpleString></in></ns1:ReproOperation></soapenv:Body></soapenv:Envelope>

      Response Package:
      <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns1:ReproOperationResponse xmlns:ns1="http://www.example.org/repro/"><Extension xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns1:Extension_type0" lang="de">response</Extension></ns1:ReproOperationResponse>

      Skeleton:
      public org.example.www.repro.ReproOperationResponse ReproOperation(
      org.example.www.repro.ReproOperation reproOperation)

      { ReproOperationResponse opResponse = new ReproOperationResponse(); Extension_type0 resExt = new Extension_type0(); ReproStringType stype = new ReproStringType(); stype.setReproStringType("response"); resExt.setReproStringType("response"); Language l = new Language(); l.setValue("de"); resExt.setLang(l); opResponse.setExtension(resExt); return opResponse; }

      WSDL:

      <?xml version="1.0" encoding="UTF-8"?>
      <wsdl:definitions name="repro" targetNamespace="http://www.example.org/repro/"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.example.org/repro/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
      <wsdl:types>
      <xsd:schema targetNamespace="http://www.example.org/repro/">
      <xsd:simpleType name="ReproStringType">
      <xsd:restriction base="xsd:string">
      <xsd:maxLength value="1024"></xsd:maxLength>
      </xsd:restriction>
      </xsd:simpleType>
      <xsd:element name="ReproOperation">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="in">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="SimpleString" type="xsd:string">
      </xsd:element>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      <xsd:element name="ReproOperationResponse">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="Extension">
      <xsd:complexType>
      <xsd:simpleContent>
      <xsd:extension base="tns:ReproStringType">
      <xsd:attribute name="lang" type="xsd:language">
      </xsd:attribute>
      </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
      </xsd:element>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      </xsd:schema>
      </wsdl:types>
      <wsdl:message name="ReproOperationRequest">
      <wsdl:part name="parameters" element="tns:ReproOperation"></wsdl:part>
      </wsdl:message>
      <wsdl:message name="ReproOperationResponse">
      <wsdl:part name="parameters" element="tns:ReproOperationResponse"></wsdl:part>
      </wsdl:message>
      <wsdl:portType name="ReproPortType">
      <wsdl:operation name="ReproOperation">
      <wsdl:input message="tns:ReproOperationRequest"></wsdl:input>
      <wsdl:output message="tns:ReproOperationResponse"></wsdl:output>
      </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="ReproBinding" type="tns:ReproPortType">
      <soap:binding style="document"
      transport="http://schemas.xmlsoap.org/soap/http" />
      <wsdl:operation name="ReproOperation">
      <soap:operation soapAction="http://www.example.org/repro/ReproOperation" />
      <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="ReproService">
      <wsdl:port name="ReproPort" binding="tns:ReproBinding">
      <soap:address location="http://www.example.org/" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>

      Attachments

        Activity

          People

            Unassigned Unassigned
            aschoerk Andreas Schörk
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: