Mercurial > repos > IBDev-IBBoard.WarFoundry.API
view schemas/army.xsd @ 267:3f14a792fd41
Re #274: Crash when missing unit member ID
* Add key and keyref for member type
Re #290: Migrate to using key/keyref definitions instead of ID/IDREF type
* Move keyref and key for equipment slot to correct place to be valid
* Add aliased xmlns for schema to allow for use in XPath, which doesn't use default namespace
* Disable warning reporting until Mono Bug 613684 is fixed (https://bugzilla.novell.com/show_bug.cgi?id=613684)
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 12 Jun 2010 19:49:32 +0000 |
parents | 35dc06030355 |
children | c7a95912c1e8 |
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:sequence> <xs:element name="units"> <xs:complexType> <xs:sequence> <xs:element name="unit" minOccurs="0" maxOccurs="unbounded" type="unit"/> </xs:sequence> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="customEquipment" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="customEquip" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="customEquipPart" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:attribute name="partIDRef" type="xs:string" /> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:attribute name="id" type="xs:ID" /> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> </xs:sequence> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <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:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <!-- Re-usable complex types --> <xs:complexType name="unit"> <xs:sequence> <xs:element name="equipment" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="equipItem" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required" /> <xs:attribute name="amount" type="core:nonNegativeOrInfiniteIntegerOrPercentage" use="required"/> <xs:attribute name="amountType" type="equipmentAmountType" default="ratio"/> <xs:attribute name="isCustomEquipment" type="xs:boolean" default="false"/> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> </xs:sequence> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="contains" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="containedUnit"> <xs:complexType> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:attribute name="containedID" type="xs:IDREF" use="required"/> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <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:attribute name="category" type="xs:string" default=""/> <xs:anyAttribute processContents="lax"/> </xs:complexType> <xs:simpleType name="equipmentAmountType"> <xs:restriction base="xs:string"> <xs:enumeration value="ratio"/> <xs:enumeration value="fixed"/> </xs:restriction> </xs:simpleType> </xs:schema>