W3C home > Mailing lists > Public > xmlschema-dev@w3.org > June 2004

Re: Help with choice model group!

From: Bob Schloss <rschloss@us.ibm.com>
Date: Tue, 15 Jun 2004 10:02:49 -0400
To: Alexander Sherwood <asherwood@phs-net.com>
Cc: xmlschema-dev@w3.org
Message-ID: <OF85A82F2F.F7DEC220-ON85256EB4.004BE9A5-85256EB4.004D29B9@us.ibm.com>





Hi Alexander,

      I'm not sure that the choice model group is the best construct for
what you want to do.  I think there are 2 other approaches.

      If you had
<addresses>
  <paymentAddress street=".." city=".." zip=".."/> !-- 0 or 1 --!
  <mailingAddress street=".." city=".."  zip=".."/>   !-- 0 or 1 --!
</addresses>

      Then you could write
<xs:sequence>
 <xs:element name="paymentAddress" type="AddressType" minOccurs="0"
maxOccurs="1"/>
 <xs:element name="mailingAddress" type="AddressType" minOccurs="0"
maxOccurs="1'/>
</xs:sequence>

and you'd define AddressType as type that has attributes street, city and
zip and no element content.

      Warning: This would still validate cases where <addresses> was an
empty element.  It would also require stylesheets (or other programs that
handle your XML documents) to handle 2 element names, rather than the one
element name you originally specified.

      An alternative approach would be to use your original element names,
say
<xs:element name="addresses">
<xs:sequence>
 <xs:element name="address" minOccurs="1" maxOccurs="2">
  <xs:complexType>
  ...
  </xs:complexType>
 </xs:element>
</xs:sequence>
 !-- specify a UNIQUE identify-definition-constraint specification using
field xpath="address/@type" --!
</xs:element>

      which would make it so that you could not have 2 type="payment" or 2
type="mailing" address elements within a single addresses element
information item.

            Thanks,
            Bob

Scalable XML Infrastructure
IBM Thomas J. Watson Research Center
Yorktown Heights, New York, USA
http://www.research.ibm.com/XML








                                                                           
             Alexander                                                     
             Sherwood                                                      
             <asherwood@phs-ne                                          To 
             t.com>                    xmlschema-dev@w3.org                
             Sent by:                                                   cc 
             xmlschema-dev-req                                             
             uest@w3.org                                           Subject 
                                       Help with choice model group!       
                                                                           
             06/15/2004 09:26                                              
             AM                                                            
                                                                           
                                                                           
                                                                           





Greetings all,

Given the following snippet:

<addresses>
             <address street="" city="" state="" zip="" type="payment |
mailing"/>
</addresses>

I'd like to require at least one _address_ element with a type attribute
equal to "mailing", and _one_ optional address element with a type
attribute equal to "payment", for a total maxOccurs of 2.

Any ideas? Thanks!



----------------------------------
Alex Sherwood
PHS Collection Agency
THE COLLECTORS
P:   813-283-4579
F:   301.664.6834
W: www.phs-net.com
Received on Tuesday, 15 June 2004 10:15:49 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:44 GMT