Problem with restricted numeric elements
----------------------------------------
Key: AXIS2-4053
URL: https://issues.apache.org/jira/browse/AXIS2-4053
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: wsdl
Affects Versions: 1.4
Environment: Windows XP
Reporter: Tom Trader
The code generated by wsdl2java for the adb data binding fails when it involved
a XML schema that includes the deserialization of a restricted group that
restricts out a numeric type.
In the sample wsdl below the element A (short) is restricted out of the
response. When the response is deserialized the factory for parsing the
RestrictedGroup is attempting to set the element A if present (which it isn't
as it was restricted out) and the else clause (if element not present) for
numeric types has the property set it to a minimum value which causes the
throwing of a runtime error.
The code at fault is:
if (reader.isStartElement() && new
javax.xml.namespace.QName("","A").equals(reader.getName())){
java.lang.String content =
reader.getElementText();
object.setA(
org.apache.axis2.databinding.utils.ConverterUtil.convertToShort(content));
reader.next();
} // End of if for expected property start
element
else {
object.setA(java.lang.Short.MIN_VALUE); // Code at fault as A property has been
restricted out !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
WSDL
=====
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="ns://Sample/SampleService"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:ns="http://schemas.xmlsoap.org/soap/encoding/" name="SampleService"
targetNamespace="ns://Sample/SampleService">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/>
<types>
<xsd:schema targetNamespace="ns://Sample/SampleService"
xmlns:tns="ns://Sample/SampleService" elementFormDefault="unqualified"
attributeFormDefault="unqualified">
<xsd:element name="FullGroup" type="tns:FullGroupType"/>
<xsd:complexType name="FullGroupType">
<xsd:sequence>
<xsd:element name="A" type="xsd:short"
minOccurs="0"/>
<xsd:element name="B"
type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="RestrictedGroup"
type="tns:RestrictedGroupType"/>
<xsd:complexType name="RestrictedGroupType">
<xsd:complexContent>
<xsd:restriction
base="tns:FullGroupType">
<xsd:sequence>
<xsd:element name="B"
type="xsd:string"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
</types>
<message name="someOperationIn">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/>
<part name="SomeOperationRequestMsg" element="tns:FullGroup"/>
</message>
<message name="someOperationOut">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/>
<part name="SomeOperationResponseMsg"
element="tns:RestrictedGroup"/>
</message>
<portType name="SomeHTTPInterface">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/>
<operation name="SomeOperation">
<documentation
xmlns="http://schemas.xmlsoap.org/wsdl/"/>
<input message="tns:someOperationIn"/>
<output message="tns:someOperationOut"/>
</operation>
</portType>
<binding name="SomeHTTPBinding" type="tns:SomeHTTPInterface">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="SomeOperation">
<soap:operation
soapAction="ns://Sample/SampleService/SomeHTTPInterface/SomeOperationRequest"
soapActionRequired="true" style="document"/>
<input>
<soap:body parts="SomeOperationRequestMsg"
use="literal"/>
</input>
<output>
<soap:body parts="SomeOperationResponseMsg"
use="literal"/>
</output>
</operation>
</binding>
<service name="SampleService">
<port name="SampleServiceSomeHTTPSOAP"
binding="tns:SomeHTTPBinding">
<soap:address
location="https://localhost/SampleService"/>
</port>
</service>
</definitions>
--
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]