W3C home > Mailing lists > Public > www-ws@w3.org > May 2002

XDR discriminated unions and WSDL

From: Anderson, Todd A <todd.a.anderson@intel.com>
Date: Tue, 14 May 2002 10:17:03 -0700
Message-ID: <B9ECACBD6885D5119ADC00508B68C1EA088F3D34@orsmsx107.jf.intel.com>
To: "'www-ws@w3.org'" <www-ws@w3.org>
Is there a way to do the equivalent of an XDR discriminated union in WSDL?
I'm looking
for a way to do this that is strongly typed.  

Here is a snippet from rfc1832 describing discriminated unions.

thanks,

Todd

----------------------------------------------------------------------------
---------------------------------

3.15 Discriminated Union

   A discriminated union is a type composed of a discriminant followed
   by a type selected from a set of prearranged types according to the
   value of the discriminant.  The type of discriminant is either "int",
   "unsigned int", or an enumerated type, such as "bool".  The component
   types are called "arms" of the union, and are preceded by the value
   of the discriminant which implies their encoding.  Discriminated
   unions are declared as follows:

         union switch (discriminant-declaration) {
         case discriminant-value-A:
            arm-declaration-A;
         case discriminant-value-B:
            arm-declaration-B;
         ...
         default: default-declaration;
         } identifier;

   Each "case" keyword is followed by a legal value of the discriminant.
   The default arm is optional.  If it is not specified, then a valid
   encoding of the union cannot take on unspecified discriminant values.
   The size of the implied arm is always a multiple of four bytes.

   The discriminated union is encoded as its discriminant followed by
   the encoding of the implied arm.

           0   1   2   3
         +---+---+---+---+---+---+---+---+
         |  discriminant |  implied arm  |          DISCRIMINATED UNION
         +---+---+---+---+---+---+---+---+
         |<---4 bytes--->|
Received on Tuesday, 14 May 2002 13:17:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:40 GMT