I seem to be hitting a problem with Enumerations again. The original issue I raised at
http://jira.codehaus.org/browse/XFIRE-520
was resolved by explicitly coding <serviceFactory/> in services.xml.
The problem has returned, but for an enumeration that is at the 'top' level of the schema. I have created a stripped down version of the offending WSDL and created a simple test project and client.
The client will talk to the service OK, if both are XFire, but if the client is Axis, I get a de-serialisation Exception. Examination of the payload reveals an incorrect serialisation of the enumeration value:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<getEnumerationCommandStatusResponse xmlns="http://test.bt.com/2006/07/Testing/Enumeration/Service">
<enumerationCommandStatus xmlns="http://test.bt.com/2006/07/Testing/Enumeration">IN_PROGRESS</enumerationCommandStatus>
</getEnumerationCommandStatusResponse>
</soap:Body>
</soap:Envelope>
schema values for the enumeration are:
<xs:simpleType name="EnumerationCommandStatus">
<xs:restriction base="xs:string">
<xs:enumeration value="Initial"/>
<xs:enumeration value="InProgress"/>
<xs:enumeration value="Succeeded"/>
<xs:enumeration value="Failed"/>
</xs:restriction>
</xs:simpleType>