Mercurial > repos > IBDev-IBBoard.WarFoundry.API
view schemas/warfoundry-core.xsd @ 266:a3c1bf57fd3f
Re #279: Create composite limit
* Ignore XPath and go for all child nodes, since we want to warn in future if an unsupported limit is ignored
* Make the "any" option in the limit choice group a singular instead of 0+ to ensure we get a choice when we use the group
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 05 Jun 2010 18:57:46 +0000 |
parents | 6fe0cb1bf74f |
children |
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/core" xmlns="http://ibboard.co.uk/warfoundry/core" elementFormDefault="qualified"> <xs:element name="extension"> <xs:complexType> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="limit"> <xs:sequence> <xs:group ref="limitElements" minOccurs="1" maxOccurs="1"/> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:anyAttribute processContents="lax"/> </xs:complexType> <xs:group name="limitElements"> <xs:choice> <xs:element name="percentageLimit"> <xs:complexType> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:attribute name="limit" type="percentage" use="required"/> <xs:attribute name="round" type="updowntype" default="up" /> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="sizeConstrainedLimit"> <xs:complexType> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:attribute name="limit" type="xs:nonNegativeInteger" use="required"/> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="absoluteLimit"> <xs:complexType> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:attribute name="limit" type="xs:nonNegativeInteger" use="required"/> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="unitSizeLimit"> <xs:complexType> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="compositeMaxLimit"> <xs:complexType> <xs:sequence> <xs:group ref="limitElements" minOccurs="1" maxOccurs="unbounded"/> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="compositeMinLimit"> <xs:complexType> <xs:sequence> <xs:group ref="limitElements" minOccurs="1" maxOccurs="unbounded"/> <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> </xs:sequence> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> <xs:any processContents="lax"/> </xs:choice> </xs:group> <xs:simpleType name="positiveOrInfiniteInteger"> <xs:union memberTypes="xs:positiveInteger infinity"/> </xs:simpleType> <xs:simpleType name="nonNegativeOrInfiniteInteger"> <xs:union memberTypes="xs:nonNegativeInteger infinity"/> </xs:simpleType> <xs:simpleType name="infinity"> <xs:restriction base="xs:integer"> <xs:minInclusive value="-1"/> <xs:maxInclusive value="-1"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="nonNegativeDouble"> <xs:restriction base="xs:double"> <xs:minInclusive value="0"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="nonNegativeNonInfiniteDouble"> <xs:restriction base="xs:double"> <xs:minInclusive value="0"/> <xs:maxExclusive value="INF"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="percentage"> <xs:restriction base="xs:double"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="nonNegativeOrInfiniteIntegerOrPercentage"> <xs:union memberTypes="xs:nonNegativeInteger infinity percentage"/> </xs:simpleType> <xs:simpleType name="updowntype"> <xs:restriction base="xs:string"> <xs:enumeration value="up"/> <xs:enumeration value="down"/> </xs:restriction> </xs:simpleType> </xs:schema>