[ 
https://issues.apache.org/jira/browse/YOKO-203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matteo Vescovi resolved YOKO-203.
---------------------------------

    Resolution: Fixed

Fixed

> IDL union type mapping
> ----------------------
>
>                 Key: YOKO-203
>                 URL: https://issues.apache.org/jira/browse/YOKO-203
>             Project: Yoko - CORBA Server
>          Issue Type: Bug
>          Components: Idl2Wsdl
>    Affects Versions: v1.0.0
>            Reporter: Matteo Vescovi
>         Assigned To: Matteo Vescovi
>            Priority: Minor
>             Fix For: v1.0.0
>
>
> According to the CORBA Binding for WSDL specification document, the mapping 
> for IDL unions differs from the CORBA to WSDL/SOAP Interworking Specification 
> (formal/03-11-02) in that IDL union maps to a pure xs:choice rather than to a 
> discriminated choice. Just as with the any in the previous point, what 
> matters to the application is the union value. The discriminator is required 
> only in unions in which discriminator values do not correspond to any union 
> case members, such that setting the discriminator to one of those values 
> means that only the discriminator is sent across the wire. Such cases are 
> better handled by nillable XML Schema types.
> However, IDL unions are currently mapped according to the CORBA to WSDL/SOAP 
> Interworking Specification (formal/03-11-02).
> Following is an example of the mapping mandated by the CORBA to WSDL/SOAP 
> Interworking Specification (formal/03-11-02):
> module Example {
>   union myUnion switch (long) {
>     case 0: long l;
>     case 1: string str;
>     case 2:
>     case 3: float f;
>     default: octet o;
>   };
> };
> This union maps onto the following XML schema definition:
> <xsd:complexType name="Example.myUnion">
>  <xsd:sequence>
>   <xsd:element name="discriminator" type="xsd:int" />
>   <xsd:choice>
>     <!-- case 0 -->
>     <xsd:element name="l" type="xsd:int"
>     minOccurs="0" maxOccurs="1" />
>     <!-- case 1 -->
>     <xsd:element name="str" type="xsd:string"
>     nillable="true" minOccurs="0" maxOccurs="1" />
>     <!-- case 2, 3 -->
>     <xsd:element name="f" type="xsd:float"
>     minOccurs="0" maxOccurs="1" />
>     <!-- default case -->
>     <xsd:element name="o" type="xsd:byte"
>     minOccurs="0" maxOccurs="1" />
>   </xsd:choice>
>  </xsd:sequence>
> </xsd:complexType>

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

Reply via email to