<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
	<xs:include schemaLocation="header.xsd"/>
	
	<xs:simpleType name="position">
	    <xs:restriction base="xs:integer">
	        <xs:minInclusive value="1"/>
	        <xs:maxInclusive value="15"/>
	    </xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="playerstatus">
	    <xs:restriction base="xs:string">
	        <xs:pattern value="[s|n|b|v|u|i|I|o]{0,8}"/>
	    </xs:restriction>
	</xs:simpleType>
	
	<xs:complexType name="moon">
		<xs:attribute name="size" type="integer_with_zero"/>
	</xs:complexType>

	<xs:complexType name="player">
		<xs:attribute name="playername" type="name" use="required"/>
		<xs:attribute name="rank" type="rank" use="required"/>
		<xs:attribute name="playerid" type="xs:positiveInteger" use="required"/>
		<xs:attribute name="status" type="playerstatus"/>
	</xs:complexType>

	<xs:complexType name="alliance">
		<xs:attribute name="allyname" type="name" use="required"/>
		<xs:attribute name="allyid" type="xs:positiveInteger" use="required"/>
		<xs:attribute name="rank" type="rank" use="required"/>
		<xs:attribute name="member" type="xs:positiveInteger" use="required"/>
	</xs:complexType>

	<xs:complexType name="planetposition">
		<xs:sequence>
			<xs:element name="planetname" type="name" minOccurs="0" maxOccurs="1"/>
			<xs:element name="moon" type="moon" minOccurs="0" maxOccurs="1"/>
			<xs:element name="debris" type="debris" minOccurs="0" maxOccurs="1"/>
			<xs:element name="player" type="player" minOccurs="0" maxOccurs="1"/>
			<xs:element name="alliance" type="alliance" minOccurs="0" maxOccurs="1"/>
			<xs:element name="activity" type="activity" minOccurs="0" maxOccurs="2"/> <!-- planet and moon -->
		</xs:sequence>
		<xs:attribute name="pos" type="position" use="required"/>
	</xs:complexType>

	<xs:complexType name="galaxyview">
		<xs:sequence>
			<xs:element name="position" type="planetposition" minOccurs="15" maxOccurs="15"/>
		</xs:sequence>
		<xs:attribute name="galaxy" type="xs:positiveInteger" use="required"/>
		<xs:attribute name="system" type="xs:positiveInteger" use="required"/>
	</xs:complexType>
	
	<xs:complexType name="galaxyviews">
		<xs:sequence>
			<xs:element name="header" type="header_data" minOccurs="1" maxOccurs="1"/>
			<xs:element name="galaxyview" type="galaxyview" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>	
	
	<xs:element name="galaxyviews" type="galaxyviews"/>

</xs:schema>

