Re: Help with choice model group!

This is a pretty extreme hack, but I needed a break from something
else -- it's an object lesson in abusing identity constraints.  If
I've understood you correctly, it does what you want -- one or two
address elements, type='mailing' must be present, type='payment' is
also OK, either order if both present.

<xs:element name="addresses">
  <xs:complexType>
   <xs:sequence>
    <xs:element ref="address"/>
    <xs:element ref="address" minOccurs="0"/>
   </xs:sequence>
   <xs:attribute fixed="mailing" type="xs:token" name="mailing"/>
  </xs:complexType>
  <xs:keyref name="reqMailing" refer="keys">
   <xs:selector xpath="."/>
   <xs:field xpath="@mailing"/>
  </xs:keyref>
  <xs:key name="keys">
   <xs:selector xpath="address"/>
   <xs:field xpath="@type"/>
  </xs:key>
 </xs:element>
 
 <xs:element name="address">
  <xs:complexType>
   <xs:attribute name="street"/>
   <xs:attribute name="city"/>   
   <xs:attribute name="state"/>
   <xs:attribute name="zip"/>
   <xs:attribute name="type">
    <xs:simpleType>
     <xs:restriction base="xs:token">
      <xs:enumeration value="payment"/>      
      <xs:enumeration value="mailing"/>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>
  </xs:complexType>
 </xs:element>

Protective clothing should be warn when working with this schema :-)

ht
-- 
 Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
                     Half-time member of W3C Team
    2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
            Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
                   URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]

Received on Tuesday, 15 June 2004 10:15:27 UTC