choice minOccurs="0" maxOccurs="unbounded" : choice « XML Schema « XML






choice minOccurs="0" maxOccurs="unbounded"


File: Data.xml

<?xml version="1.0"?>
<employees xmlns="http://www.java2s.com/employees"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.java2s.com/employees Schema.xsd">
  <employee>
    <name>
      <first>first</first>
      <middle>middle</middle>
      <last>last</last>
    </name>
    <location>
      <address>USA</address>
      <latitude>123</latitude>
      <longitude>123</longitude>
    </location>
    <phone>001</phone>
    <knows />
    <description>
      test
      <em>em</em>
      test
      <br />
      test
      <strong>strong</strong>
      test
    </description>
  </employee>
</employees>

File: Schema.xsd

<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
  xmlns:employees="http://www.java2s.com/employees"
  targetNamespace="http://www.java2s.com/employees"
  elementFormDefault="qualified">

  <element name="employees">
    <complexType>
      <sequence>
        <element name="employee" minOccurs="0"
          maxOccurs="unbounded">
          <complexType>
            <sequence>
              <element name="name"
                type="employees:NameType" />
              <element name="location"
                type="employees:LocationType" />
              <element name="phone" type="string" />
              <element name="knows"
                type="employees:KnowsType" />
              <element name="description"
                type="employees:DescriptionType" />
            </sequence>
          </complexType>
        </element>
      </sequence>
    </complexType>
  </element>

  <complexType name="NameType">
    <group ref="employees:NameGroup" />
  </complexType>

  <group name="NameGroup">
    <sequence>
      <element name="first" type="string" minOccurs="1"
        maxOccurs="unbounded" />
      <element name="middle" type="string" minOccurs="0"
        maxOccurs="1" />
      <element name="last" type="string" />
    </sequence>
  </group>

  <complexType name="LocationType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element name="address" type="string" />
      <sequence>
        <element name="latitude" type="string" />
        <element name="longitude" type="string" />
      </sequence>
    </choice>
  </complexType>

  <complexType name="KnowsType"></complexType>

  <complexType name="DescriptionType" mixed="true">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element name="em" type="string" />
      <element name="strong" type="string" />
      <element name="br" type="string" />
    </choice>
  </complexType>
</schema>

 








Related examples in the same category

1.Choice with three elements
2.Use choice to define elements with random number and occurence
3.complexType mixed="true" and choice