﻿<?xml version="1.0" encoding="utf-8"?>

<xs:schema attributeFormDefault="unqualified" 
           elementFormDefault="qualified" 
           targetNamespace="http://www.HopAndVineHull.co.uk/Requests" 
           xmlns:hav="http://www.HopAndVineHull.co.uk/Requests" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  
  <!-- Document Element -->
  <xs:element name="Requests" type="hav:RequestsType"/>
  
  <!-- Complex Type Definitions -->
  <xs:complexType name="RequestsType">
    <xs:sequence>
      <xs:element name="Request" maxOccurs="unbounded" type="hav:RequestType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="RequestType">
    <xs:attribute name="Id" type="xs:integer" use="required" />
    <xs:attribute name="Product" type="hav:ProductType" use="required" />
    <xs:attribute name="Brewery" type="xs:string" use="required" />
    <xs:attribute name="Beer" type="xs:string" use="optional" />
    <xs:attribute name="Nickname" type="xs:string" use="required" />
    <xs:attribute name="RequestDate" type="hav:DateType" use="required" />
    <xs:attribute name="CellarEmail" type="xs:boolean" use="required" />
    <xs:attribute name="OnSaleEmail" type="xs:boolean" use="required" />
    <xs:attribute name="SatisfiedDate" type="hav:DateType" use="optional" />
    <xs:attribute name="Disabled" type="xs:boolean" use="required" />
  </xs:complexType>

  <!-- Simple Type Definitions -->
  <xs:simpleType name="ProductType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Beer"/>
      <xs:enumeration value="Cider"/>
      <xs:enumeration value="Perry"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="DateType">
    <!-- For display not processing -->
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  
</xs:schema>