view schemas/system.xsd @ 315:6cb0fb78b9a6

Re #324: Add saving of Race and System data to files * Convert IWarFoundryFileSaver from a marker interface into an interface with a purpose of its own so that we can support multiple data files in one zip * Repurpose WarFoundryXmlSaver to be just an Army saver - we still need to make it usable as part of a larger whole * Add a WarFoundryLoadedObject class for objects loaded from files and make Race/Army/GameSystem inherit from it
author IBBoard <dev@ibboard.co.uk>
date Mon, 28 Feb 2011 21:09:20 +0000
parents f7c3c1b39726
children 376da2b24de1
line wrap: on
line source

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:core="http://ibboard.co.uk/warfoundry/core" xmlns:cats="http://ibboard.co.uk/warfoundry/cats"
targetNamespace="http://ibboard.co.uk/warfoundry/system" xmlns="http://ibboard.co.uk/warfoundry/system" xmlns:sys="http://ibboard.co.uk/warfoundry/system" elementFormDefault="qualified">
<xs:element name="system">
	<xs:complexType>
		<xs:sequence>
			<xs:element name="categories" type="cats:categoriestype">
				<xs:key name="catsKey">
					<xs:selector xpath="cats:cat"/>
					<xs:field xpath="@id"/>
				</xs:key>
			</xs:element>
			<xs:element name="sysStatsList">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="sysStats" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="sysStat" maxOccurs="unbounded">
										<xs:complexType>
											<xs:sequence>
												<xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
											</xs:sequence>
											<xs:attribute name="name" type="xs:string" use="required"/>
											<xs:anyAttribute processContents="lax"/>
										</xs:complexType>
									</xs:element>
								</xs:sequence>
								<xs:attribute name="id" type="xs:string" />
								<xs:anyAttribute processContents="lax"/>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="defaultStats" type="xs:string" use="required" />
					<xs:anyAttribute processContents="lax"/>
				</xs:complexType>
			</xs:element>
			<xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:string" />
		<xs:attribute name="name" type="xs:string" use="required"/>
		<xs:attribute name="defaultArmySize" type="core:nonNegativeNonInfiniteDouble" default="0"/>
		<xs:attribute name="defaultPtsAbbreviationSingular" type="xs:string" default="pt"/>
		<xs:attribute name="defaultPtsAbbreviationPlural" type="xs:string" default="pts"/>
		<xs:attribute name="defaultPtsNameSingular" type="xs:string" default="point"/>
		<xs:attribute name="defaultPtsNamePlural" type="xs:string" default="points"/>
		<xs:attribute name="warn" type="xs:boolean" default="false"/>
		<xs:attribute name="allowAllies" type="xs:boolean" default="true"/>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<xs:keyref name="defaultStatsRef" refer="statsKey">
		<xs:selector xpath="sys:sysStatsList"/>
		<xs:field xpath="@defaultStats"/>
	</xs:keyref>
	<xs:key name="statsKey">
		<xs:selector xpath="sys:sysStatsList/sys:sysStats"/>
		<xs:field xpath="@id"/>
	</xs:key>
</xs:element>
</xs:schema>