[Home] [By Thread] [By Date] [Recent Entries]


Title: Problems with schema creation, help!!
Assuming this is W3C's schema language, the first requirement to be in any position will be difficult. <xsd:sequence> doesn't allow this, <xsd:all> sorta does but there are restrictions. You can mock it by making everything in it's own optional sequence, such as <xsd:sequence minOccurs='0' maxOccurs='1'>, and that theoretically will work though some validators have struggled with this.
 
The second requirement is a snap, just use minOccurs and maxOccurs. This I think will work for you:
 
<!-- DISCLAIMER: Written on the fly, may have syntax errors -->
<xsd:element name="code">
  <xsd:complexType>
    <!-- put the other elements in a different xsd:sequence node -->
    <!-- this sequence (i.e. the party node) can now occur up to two times, if at all -->
    <xsd:sequence  minOccurs="0" maxOccurs="2">
      <xsd:element name="party">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="account" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
 
HTH,
 
Bryce K. Nielsen
SysOnyx, Inc. (http://www.sysonyx.com)
Makers of xmlArchitect, the Smart XML Schema Editor
http://www.sysonyx.com/products/xmlarchitect
 
 
----- Original Message -----
Sent: Wednesday, February 04, 2004 8:59 AM
Subject: Problems with schema creation, help!!

I have XML of a structure similar to this:

<code>
  ...
  <party>
      <name>blah</name>
      <account>blah blah</account>
  </party>
  ...
  <party>
      <name>deBlah</name>
      <account>deBlah deBlah</account>
  </party>
   ...
</code>

and I need to build a schema that can enforce the following rules on the <party> element:
  - <party> can be in any position under the <code> element
  - <party> can occur either 0, 1 or 2 times

I wanted initially to use the all compositor but this will only allow 0 or 1 instances of <party> under <code>. Does any one have any insights into how this can be achieved?

Thanks!

Chris



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member