<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="sopra.kahuna.gruppe3" elementFormDefault="qualified" xmlns="sopra.kahuna.gruppe3" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="kahuna-replay">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="meta" type="meta" minOccurs="1" maxOccurs="1" />
        <xs:element name="action-list" type="action-list" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="action">
    <xs:sequence>
      <xs:choice>
        <xs:element name="place" type="place" />
        <xs:element name="take" type="take" />
        <xs:element name="draw" type="draw" />
        <xs:element name="discard" type="discard" />
        <xs:element name="noaction" type="noaction" />
        <xs:element name="gameover" type="gameover" />
        <xs:element name="initialize" type="initialize" />
        <xs:element name="give" type="give" />
        <xs:element name="endofturn" type="endofturn" />
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="place">
    <xs:sequence>
      <xs:element name="card" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="island" type="xs:string" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="take">
    <xs:sequence>
      <xs:element name="card" type="xs:string" minOccurs="2" maxOccurs="2" />
      <xs:element name="island" type="xs:string" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="draw">
    <xs:sequence>
      <xs:element name="stack" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      <xs:element name="card" type="xs:string" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="discard">
    <xs:sequence>
      <xs:element name="card" type="xs:string" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="noaction">
    <xs:sequence />
  </xs:complexType>
  <xs:complexType name="gameover">
    <xs:sequence>
      <xs:element name="message" type="xs:string" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="initialize">
    <xs:sequence>
      <xs:element name="playerindex" type="xs:int" minOccurs="0" maxOccurs="1" />
      <xs:element name="nameopponent" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="cardonhand" type="xs:string" minOccurs="0" maxOccurs="99" />
      <xs:element name="cardopen" type="xs:string" minOccurs="0" maxOccurs="99" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="give">
    <xs:sequence>
      <xs:element name="card" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="endofturn">
    <xs:sequence />
  </xs:complexType>
  <xs:complexType name="action-list">
    <xs:sequence>
      <xs:element name="action" type="action" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="player" type="xs:string" />
    <xs:attribute name="playerindex" type="xs:int" />
    <xs:attribute name="turncount" type="xs:int" />
  </xs:complexType>
  <xs:complexType name="meta">
    <xs:sequence>
      <xs:element name="mappath" type="xs:string" />
      <xs:element name="playerone" type="xs:string" />
      <xs:element name="playertwo" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>