﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema version="1.0" id="MarketingLead" elementFormDefault="qualified"
           targetNamespace="http://www.vetxml.org/schemas/MarketingLead"
           xmlns="http://www.vetxml.org/schemas/MarketingLead"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="MarketingLead">
    <xs:complexType>
      <xs:all>
        <xs:element name="OwnerDetails" minOccurs="1" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="Salutation" minOccurs="0" maxOccurs="1">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="50"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Forenames" minOccurs="1" maxOccurs="1">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="50"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Surname" minOccurs="1" maxOccurs="1">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="50"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Address" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Line1" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="250"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Line2" minOccurs="0" maxOccurs="1">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="50"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="City" minOccurs="1" maxOccurs="1">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="1"/>
                          <xs:maxLength value="50"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="State" minOccurs="0" maxOccurs="1">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Zip" minOccurs="0" maxOccurs="1">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="5"/>
                          <xs:maxLength value="10"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Phone" minOccurs="0" maxOccurs="1">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="5"/>
                    <xs:maxLength value="20"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="EmailAddress" minOccurs="1" maxOccurs="1">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="6" />
                    <xs:maxLength value="100"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element name="Pets" minOccurs="1" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Pet" type="PetDetailsType" minOccurs="1" maxOccurs="unbounded" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:all>
      <xs:attribute name="version" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:complexType name="PetDetailsType">
    <xs:all>
      <xs:element name="Name" minOccurs="1" maxOccurs="1">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="80"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Species" minOccurs="1" maxOccurs="1">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="50"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Breed" minOccurs="1" maxOccurs="1">
        <xs:complexType>
          <xs:choice>
            <xs:element name="FreeText">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:minLength value="1"/>
                  <xs:maxLength value="255"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="Code" type="Breed_Code" />
          </xs:choice>
        </xs:complexType>
      </xs:element>
      <xs:element name="DateOfBirth" type="xs:date" minOccurs="1" maxOccurs="1" />
      <xs:element name="Gender" minOccurs="1" maxOccurs="1">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="M"/>
            <xs:enumeration value="F"/>
            <xs:enumeration value="U"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Colour" minOccurs="0" maxOccurs="1">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="255"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Markings" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="Neutered" minOccurs="0" maxOccurs="1">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="true"/>
            <xs:enumeration value="false"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Weight" type="xs:decimal" minOccurs="0" maxOccurs="1" />
      <xs:element name="Microchip" minOccurs="0" maxOccurs="1">
        <xs:complexType>
          <xs:all>
            <xs:element name="Vendor" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="Number" minOccurs="0" maxOccurs="1">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:minLength value="1"/>
                  <xs:maxLength value="16"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:all>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:simpleType name="Breed_Code">
    <xs:restriction base="xs:string">
      <xs:minLength value="5"/>
      <xs:maxLength value="50"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>