Re: Selection of enumerated simpleType should offer sub-attributes based on selection

Swayam Vemuri -X (swvemuri - WIPRO at Cisco) wrote:
> Hi,
> 
> I have a requirement wherein, I have a enumerated 
> simpleType/complexType, like as shown below
> 
> <xs:simpleType name="HibernateCollectionElements">
>             <xs:restriction base="xs:string">
>                   <xs:enumeration value="Set"/>
>                   <xs:enumeration value="Bag"/>
>                   <xs:enumeration value="List"/>
>             </xs:restriction>
> </xs:simpleType>
> 
> Now based on the user selection(that is Set or Bag or List) ,
> 
> I need to present a set of attributes. This set of attributes is 
> different for different values given in enumerated value set.
> 
> That is if user selects Set, then he will be given attributes s1, s2 and s3.
> If user selects Bag, then he will be given attributes h1, h2  and so on.
> 
> Can any one please let me know how to have above logic in a xsd, with an 
> example.

Do you mean something like

  <xs:complexType name="tBase">
  </xs:complexType>

  <xs:complexType name=tBaseWithSetAttributes>
   <xs:complexContent>
    <xs:extension base="tBase">
     <xs:attribute name="type"
      type="tns:HibernateCollectionElements" fixed="Set"/>
     <xs:attribute name="s1" type="xs:string"/>
     <xs:attribute name="s2" type="xs:string"/>
     <xs:attribute name="s3" type="xs:string"/>
    </xs:extension>
   </xs:complexContent>
  </xs:complexType>

  <xs:complexType name=tBaseWithBagAttributes>
   <xs:complexContent>
    <xs:extension base="tBase">
     <xs:attribute name="type"
      type="tns:HibernateCollectionElements" fixed="Bag"/>
     <xs:attribute name="h1" type="xs:string"/>
     <xs:attribute name="h2" type="xs:string"/>
    </xs:extension>
   </xs:complexContent>
  </xs:complexType>

  ...

-- 
Regards,
Alex

Received on Monday, 12 March 2007 04:02:51 UTC