view dtds/army.xsd @ 72:e7a6f460be57

Re #80: Collapse XSD definitions * Collapse System definition * Collapse Army definition Also: * Fix namespace issue for "core" in army.xsd
author IBBoard <dev@ibboard.co.uk>
date Sun, 10 May 2009 18:43:17 +0000
parents 0c3500fca49d
children 76d274df9f28
line wrap: on
line source

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ibboard.co.uk/warfoundry/army" xmlns="http://ibboard.co.uk/warfoundry/army" xmlns:core="http://ibboard.co.uk/warfoundry/core" elementFormDefault="qualified">
<xs:element name="army">
  <xs:complexType>
    <xs:all>
      <xs:element name="units" minOccurs="1">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="unit" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:all>
                  <xs:element name="equipment" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="equipItem" minOccurs="1" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:attribute name="id" type="xs:string" /> <!-- ID reference to either a custom equipment item or a Race equipment item -->
                            <xs:attribute name="amount" type="core:nonNegativeDouble" use="required"/><!-- Double used to allow for percentages to be stored -->
                            <xs:attribute name="isCustomEquipment" type="xs:boolean" default="false"/>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="contains" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="containedUnit">
                          <xs:complexType>
                            <xs:attribute name="containedID" type="xs:IDREF" use="required"/>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:all>
                <xs:attribute name="id" type="xs:ID" />
                <xs:attribute name="unitType" type="xs:string" use="required"/>
                <xs:attribute name="unitName" type="xs:string" use="required"/>
                <xs:attribute name="size" type="xs:positiveInteger" use="required"/>
                <xs:attribute name="race" type="xs:string" default=""/>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="customEquipment" minOccurs="1">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="customEquip" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="customEquipPart" minOccurs="1" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:attribute name="partIDRef" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="id" type="xs:ID" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="id" type="xs:ID" />
    <xs:attribute name="name" type="xs:string" use="required"/>
    <xs:attribute name="system" type="xs:string" use="required"/>
    <xs:attribute name="race" type="xs:string" use="required"/>
    <xs:attribute name="maxPoints" type="xs:positiveInteger" use="required"/>
  </xs:complexType>
</xs:element>
</xs:schema>