[ https://issues.apache.org/jira/browse/AXIS2C-1373?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aaron Oneal updated AXIS2C-1373: -------------------------------- Attachment: EWS-WSDL.7z Attaching WSDL > Name matching fails with choice element > --------------------------------------- > > Key: AXIS2C-1373 > URL: https://issues.apache.org/jira/browse/AXIS2C-1373 > Project: Axis2-C > Issue Type: Bug > Components: code generation > Affects Versions: 1.6.0 > Reporter: Aaron Oneal > Priority: Blocker > Attachments: EWS-WSDL.7z, EWS.7z > > > In testing against an Exchange server using EWS (Exchange Web Services), I > have discovered a blocking generated code issue. > Given this schema: > <xs:complexType name="ArrayOfResponseMessagesType"> > <xs:choice maxOccurs="unbounded"> > <xs:element name="CreateItemResponseMessage" > type="m:ItemInfoResponseMessageType"/> > <xs:element name="DeleteItemResponseMessage" > type="m:ResponseMessageType"/> > <xs:element name="GetItemResponseMessage" > type="m:ItemInfoResponseMessageType"/> > <xs:element name="UpdateItemResponseMessage" > type="m:UpdateItemResponseMessageType"/> > <xs:element name="SendItemResponseMessage" > type="m:ResponseMessageType"/> > <xs:element name="DeleteFolderResponseMessage" > type="m:ResponseMessageType"/> > <xs:element name="CreateFolderResponseMessage" > type="m:FolderInfoResponseMessageType"/> > <xs:element name="GetFolderResponseMessage" > type="m:FolderInfoResponseMessageType"/> > <xs:element name="FindFolderResponseMessage" > type="m:FindFolderResponseMessageType"/> > <xs:element name="UpdateFolderResponseMessage" > type="m:FolderInfoResponseMessageType"/> > <xs:element name="MoveFolderResponseMessage" > type="m:FolderInfoResponseMessageType"/> > <xs:element name="CopyFolderResponseMessage" > type="m:FolderInfoResponseMessageType"/> > <xs:element name="CreateAttachmentResponseMessage" > type="m:AttachmentInfoResponseMessageType"/> > <xs:element name="DeleteAttachmentResponseMessage" > type="m:DeleteAttachmentResponseMessageType"/> > <xs:element name="GetAttachmentResponseMessage" > type="m:AttachmentInfoResponseMessageType"/> > <!-- Generic reponse to enumerating the items below a folder --> > <xs:element name="FindItemResponseMessage" > type="m:FindItemResponseMessageType"/> > <xs:element name="MoveItemResponseMessage" > type="m:ItemInfoResponseMessageType"/> > <xs:element name="CopyItemResponseMessage" > type="m:ItemInfoResponseMessageType"/> > <!-- ANR responses --> > <xs:element name="ResolveNamesResponseMessage" > type="m:ResolveNamesResponseMessageType"/> > <xs:element name="ExpandDLResponseMessage" > type="m:ExpandDLResponseMessageType"/> > <!-- Notification responses --> > <xs:element name="GetEventsResponseMessage" > type="m:GetEventsResponseMessageType"/> > <xs:element name="SubscribeResponseMessage" > type="m:SubscribeResponseMessageType"/> > <xs:element name="UnsubscribeResponseMessage" > type="m:ResponseMessageType"/> > <!-- Send Notification response --> > <xs:element name="SendNotificationResponseMessage" > type="m:SendNotificationResponseMessageType" /> > <!-- Sync responses --> > <xs:element name="SyncFolderHierarchyResponseMessage" > type="m:SyncFolderHierarchyResponseMessageType"/> > <xs:element name="SyncFolderItemsResponseMessage" > type="m:SyncFolderItemsResponseMessageType"/> > <!-- Managed Folder responses --> > <xs:element name="CreateManagedFolderResponseMessage" > type="m:FolderInfoResponseMessageType"/> > <!-- ConvertId response--> > <xs:element name="ConvertIdResponseMessage" > type="m:ConvertIdResponseMessageType"/> > </xs:choice> > </xs:complexType> > Axis generates types: > ArrayOfResponseMessagesType > ArrayOfResponseMessagesTypeChoice > FindItemResponseMesage > ... > A valid response message looks like this: > <?xml version="1.0" encoding="utf-8"?> > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <soap:Header> > <t:ServerVersionInfo MajorVersion="8" MinorVersion="1" > MajorBuildNumber="375" MinorBuildNumber="1" > xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" /> > </soap:Header> > <soap:Body> > <m:FindItemResponse > xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" > xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"> > <m:ResponseMessages> > <m:FindItemResponseMessage ResponseClass="Success"> > <m:ResponseCode>NoError</m:ResponseCode> > <m:RootFolder TotalItemsInView="1" IncludesLastItemInRange="true"> > <t:Items> > <t:Task> > <t:ItemId > Id="AAAQAGFvbmVhbEBhdmFsb24udXMARgAAAAAADubRCBB2Y068xYCH6WH0DgcAZ3A8uDQfUEKlwidoYrrErQAAAixOMgAArrJ7HqgcjEykQ1CwlhhwBQAAAiwIAQAA" > ChangeKey="EwAAABYAAABncDy4NB9QQqXCJ2hiusStAABdzMRd" /> > </t:Task> > </t:Items> > </m:RootFolder> > </m:FindItemResponseMessage> > </m:ResponseMessages> > </m:FindItemResponse> > </soap:Body> > </soap:Envelope> > During deserialization of the ArrayOfResponseMessagesType, the first thing it > does is look for a qname of ArrayOfResponseMessagesTypeChoice, but what it > finds is a qname of FindItemResponseMessage (one of the choice types). The > qnames fail to match and so deserialization terminates. > I don't understand why it's looking for a "XXXChoice" qname when that's an > artificial type generated by Axis. The real type as specified in the WSDL is > what is returned in the response, so it's no surprise it doesn't match. Any > idea what's going on? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.