<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
  <xs:complexType name="AddressType">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="IsDefault" type="xs:boolean" />
      <xs:element minOccurs="0" maxOccurs="1" name="House">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Street">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="District">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Town">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="County">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Country">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PostCode">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AnimalType">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="PMSAnimalID">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1" />
            <xs:maxLength value="255" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Name">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="8000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Species">
        <xs:simpleType>
          <xs:restriction base="xs:positiveInteger">
            <xs:enumeration value="1" />
            <xs:enumeration value="2" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Breed">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="8000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Gender">
        <xs:simpleType>
          <xs:restriction base="xs:positiveInteger">
            <xs:enumeration value="1" />
            <xs:enumeration value="2" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="NeuterStatus">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="true" />
            <xs:enumeration value="false" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="DateOfBirth" type="xs:date" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OwnerType">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="PMSOwnerID">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1" />
            <xs:maxLength value="255" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Title">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="FirstName">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="30" />
            <xs:minLength value="1" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="LastName">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="30" />
            <xs:minLength value="1" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Phone">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Mobile">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="EmailAddress">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="150" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Addresses">
        <xs:complexType>
          <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:element minOccurs="1" maxOccurs="1" name="Address" type="AddressType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Animals">
        <xs:complexType>
          <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:element minOccurs="0" name="Animal" type="AnimalType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="OwnerAnimals">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="ClinicLocale">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:length value="5" />
              <xs:enumeration value="nl-NL" />
              <xs:enumeration value="fr-FR" />
              <xs:enumeration value="nl-BE" />
              <xs:enumeration value="fr-BE" />
              <xs:enumeration value="fi-FI" />
              <xs:enumeration value="da-DK" />
              <xs:enumeration value="sv-SE" />
              <xs:enumeration value="nn-NO" />
              <xs:enumeration value="en-GB" />
              <xs:enumeration value="de-DE" />
              <xs:enumeration value="de-CH" />
              <xs:enumeration value="fr-CH" />
              <xs:enumeration value="it-CH" />
              <xs:enumeration value="en-IE" />
              <xs:enumeration value="fr-LU" />
              <xs:enumeration value="es-ES" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element minOccurs="1" maxOccurs="1" name="PMSVendorID">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:length value="36" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element minOccurs="1" maxOccurs="1" name="HillsAccountNumber">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="50" />
              <xs:minLength value="1" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="Owner" type="OwnerType" />
      </xs:sequence>
      <xs:attribute name="version" type="xs:string" />
    </xs:complexType>
  </xs:element>
</xs:schema>