Mercurial > repos > IBDev-IBBoard.WarFoundry.API
changeset 276:d576034ad1dd
Re #290: Migrate to using key/keyref definitions instead of ID/IDREF type
* Migrate to using keys and keyrefs for default stats sets
Also:
* Make sure that getting the default ID fully loads the file
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 04 Jul 2010 19:10:33 +0000 |
parents | 10fb73206bd2 |
children | c7a95912c1e8 |
files | api/Objects/GameSystem.cs schemas/system.xsd |
diffstat | 2 files changed, 14 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/api/Objects/GameSystem.cs Sun Jul 04 13:52:26 2010 +0000 +++ b/api/Objects/GameSystem.cs Sun Jul 04 19:10:33 2010 +0000 @@ -87,7 +87,8 @@ public string StandardSystemStatsID { get - { + { + EnsureFullyLoaded(); return defaultStats; }
--- a/schemas/system.xsd Sun Jul 04 13:52:26 2010 +0000 +++ b/schemas/system.xsd Sun Jul 04 19:10:33 2010 +0000 @@ -1,6 +1,6 @@ <?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" elementFormDefault="qualified"> +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> @@ -21,22 +21,30 @@ </xs:complexType> </xs:element> </xs:sequence> - <xs:attribute name="id" type="xs:ID" /> + <xs:attribute name="id" type="xs:string" /> <xs:anyAttribute processContents="lax"/> </xs:complexType> </xs:element> </xs:sequence> - <xs:attribute name="defaultStats" type="xs:IDREF" use="required" /> + <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:ID" /> + <xs:attribute name="id" type="xs:string" /> <xs:attribute name="name" type="xs:string" use="required"/> <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> \ No newline at end of file