10.4.11 UnionDef

次に示すUnionDefは、OMG IDLのユニオン定義を表します。これにはユニオンのメンバーが包含されます。

module CORBA {
       struct UnionMember {
              Identifier    name;
              any           label;
              TypeCode      type;
              IDLType       type_def;
      };
      typedef sequence <UnionMember> UnionMemberSeq;

      interface UnionDef : TypedefDef, Container {
          readonly   attribute TypeCode   discriminator_type;
          readonly   attribute IDLType    discriminator_type_def;
          readonly   attribute UnionMemberSeq   members;
      };
};
discriminator_typeおよびdiscriminator_type_def
ユニオンの区別子型を記述および識別します。
members
各ユニオン・メンバーの記述が包含されます。各UnionMemberDescriptionのラベルは、discriminator_typeのそれぞれ異なる値です。隣接するメンバーは、同じ名前を持つことができます。同名のメンバー同士は、型も同じである必要があります。octet型で値が0のラベルは、デフォルトのユニオン・メンバーであることを示します。

継承されるtype属性は、ユニオンを記述するtk_union TypeCodeです。