view schemas/warfoundry-core.xsd @ 278:c1d55ea8a2a1

Re #297: Move Categories over to key/keyref from ID/IDREF * Make category use a string for an ID * Add key to system - key needs to be outside <complexType> so we can't put it in warfoundry-cats.xsd at the moment TODO: Add matching code to Race, or find a way to "alias" and create a categories element that uses the type and the key within warfoundry-cats.xsd
author IBBoard <dev@ibboard.co.uk>
date Wed, 07 Jul 2010 19:01:13 +0000
parents a3c1bf57fd3f
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>