Enhance adb binding union to default to type xs:any
---------------------------------------------------

                 Key: AXIS2-2900
                 URL: https://issues.apache.org/jira/browse/AXIS2-2900
             Project: Axis 2.0 (Axis2)
          Issue Type: Improvement
          Components: adb
    Affects Versions: 1.2
         Environment: All platforms.
            Reporter: Denis Rachal


adb binding support of union types expects the XML attribute xs:type to be 
specified in the XML document when unmarshalling. If the xs:type attribute is 
missing the unmarshal fails. This enhancement requests that if the xs:type 
attribute is missing, the XML element be treated as an xs:any and unmarshal the 
elemen as a dom element.

Example taken from: "http://schemas.xmlsoap.org/ws/2004/09/enumeration";

Type is 'ExpirationType'. Element set in message response is 'Expires':

        <xs:simpleType name="NonNegativeDurationType">
                <xs:restriction base="xs:duration">
                        <xs:minInclusive value="P0Y0M0DT0H0M0S"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="ExpirationType">
                <xs:union memberTypes="xs:dateTime 
tns:NonNegativeDurationType"/>
        </xs:simpleType>
...

        <!-- Enumerate response -->
        <xs:element name="EnumerateResponse">
                <xs:complexType>
                        <xs:sequence>
                                <xs:element name="Expires" 
type="tns:ExpirationType" minOccurs="0"/>
                                <xs:element name="EnumerationContext" 
type="tns:EnumerationContextType"/>
                                <xs:any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:anyAttribute namespace="##other" 
processContents="lax"/>
                </xs:complexType>
        </xs:element>


XML document example:

If the above case, the adb binding currently expects the following and will 
fail during unmarshal if the attribute 'xs:type' is not specified:

...
  <env:Body>
    <wsen:EnumerateResponse xmlns:ns11="http://test.foo"; 
xmlns:ns12="http://examples.hp.com/ws/wsman/user";>
      <wsen:Expires 
xs:type="xs:dateTime">2147483647-12-31T23:59:59.999-14:00</wsen:Expires>
      
<wsen:EnumerationContext>70d7063f-1639-4cda-a7db-b4fb2638b738</wsen:EnumerationContext>
    </wsen:EnumerateResponse>
  </env:Body
...

If the following is sent, the adb binding should treat the value as 'xs:any' 
and not throw a fault for an "Unexpected element" during unmarshal:

...
  <env:Body>
    <wsen:EnumerateResponse xmlns:ns11="http://test.foo"; 
xmlns:ns12="http://examples.hp.com/ws/wsman/user";>
      <wsen:Expires>2147483647-12-31T23:59:59.999-14:00</wsen:Expires>
      
<wsen:EnumerationContext>70d7063f-1639-4cda-a7db-b4fb2638b738</wsen:EnumerationContext>
    </wsen:EnumerateResponse>
  </env:Body
...


-- 
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