Extensions by restrictions and unwrapping
-----------------------------------------

                 Key: AXIS2-3391
                 URL: https://issues.apache.org/jira/browse/AXIS2-3391
             Project: Axis 2.0 (Axis2)
          Issue Type: Improvement
          Components: codegen
    Affects Versions: 1.3
            Reporter: Mauro Molinari


Suppose you have the following WSDL:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="http://www.example.org/ProvaRestriction/"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="ProvaRestriction" 
targetNamespace="http://www.example.org/ProvaRestriction/";>
  <wsdl:types>
    <xsd:schema targetNamespace="http://www.example.org/ProvaRestriction/";>
      <xsd:element name="operation">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="in">
              <xsd:simpleType>
                <xsd:restriction base="xsd:int">
                  <xsd:minInclusive value="1"></xsd:minInclusive>
                </xsd:restriction>
              </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="operationResponse">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="out" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>


    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="operationRequest">
    <wsdl:part element="tns:operation" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="operationResponse">
    <wsdl:part element="tns:operationResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:portType name="ProvaRestriction">
    <wsdl:operation name="operation">
      <wsdl:input message="tns:operationRequest"/>
      <wsdl:output message="tns:operationResponse"/>
    </wsdl:operation>

  </wsdl:portType>
  <wsdl:binding name="ProvaChoiceSOAP" type="tns:ProvaRestriction">

    <soap:binding style="document"
      transport="http://schemas.xmlsoap.org/soap/http"; />
    <wsdl:operation name="operation">

      <soap:operation
        soapAction="http://www.example.org/ProvaChoice/operation"; />
      <wsdl:input>

        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>

        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>

  </wsdl:binding>
  <wsdl:service name="ProvaRestriction">
    <wsdl:port binding="tns:ProvaChoiceSOAP" name="ProvaRestrictionSOAP">
      <soap:address location="http://www.example.org/"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Try to call WSDL2Java on this WSDL, generating the server side code and using 
unwrapping (-uw) option. The method generated in the skeleton for operation 
named "operation" is the following:

public java.lang.String operation(org.example.www.provarestriction.In_type1 in)

This is quite ugly, I think... I would expect to find:
public java.lang.String operation(int in)
because the type of the "in" element is just a restriction for xsd:int stating 
that the value must be >= 1.

I know that unwrapping goes just 1 level deep to unwrap parameters, but I think 
that in some cases (like this one) it should go further...

Moreover, I can't understand why a class named In_type0 is generated in the 
default (unnamed) package, while it seems not to be used anywhere...

Mauro.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to