﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema version="1.02" id="MicrochipRegistration" elementFormDefault="qualified" targetNamespace="http://www.vetxml.org/schemas/MicrochipRegistration" xmlns="http://www.vetxml.org/schemas/MicrochipRegistration" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="MicrochipRegistration">
    <xs:complexType>
      <xs:all>
        <xs:element name="Identification" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="PracticeID" type="xs:string" minOccurs="1" maxOccurs="1" />
              <xs:element name="DistributerID" type="xs:string" minOccurs="0" />
              <xs:element name="DatabaseID" type="xs:string" minOccurs="0" />
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element name="OwnerDetails" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="Salutation" minOccurs="0" maxOccurs="1" >
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="0"/>
                    <xs:maxLength value="10"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Forenames" minOccurs="0" maxOccurs="1" >
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="0"/>
                    <xs:maxLength value="50"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Surname" minOccurs="0" maxOccurs="1" >
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="0"/>
                    <xs:maxLength value="50"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Address" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Line" minOccurs="1" maxOccurs="unbounded" >
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="0"/>
                          <xs:maxLength value="50"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Postcode" minOccurs="1" maxOccurs="1" >
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="5"/>
                          <xs:maxLength value="255"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="DaytimePhone" minOccurs="0" maxOccurs="1" >
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="6"/>
                    <xs:maxLength value="255"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="EveningPhone" minOccurs="0" maxOccurs="1" >
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="6"/>
                    <xs:maxLength value="255"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="MobilePhone" minOccurs="0" maxOccurs="1" >
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="11"/>
                    <xs:maxLength value="255"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="OtherPhone" minOccurs="0" maxOccurs="1" >
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="6"/>
                    <xs:maxLength value="255"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="EmailAddress" minOccurs="0" maxOccurs="1" >
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="7"/>
                    <xs:maxLength value="100"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element name="PetDetails" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="Name" 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="Species" minOccurs="1" maxOccurs="1" >
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="Canine"/>
                    <xs:enumeration value="Feline"/>
                    <xs:enumeration value="Avian"/>
                    <xs:enumeration value="Equine"/>
                    <xs:enumeration value="Reptilian"/>
                    <xs:enumeration value="Other"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Breed" minOccurs="1" 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="DateOfBirth" type="xs:date" minOccurs="0" maxOccurs="1" />
              <xs:element name="Gender" minOccurs="0" 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="NotableConditions" type="xs:string" minOccurs="0" maxOccurs="1" />
              <xs:element name="VaccinationCode" type="xs:string" minOccurs="0" maxOccurs="1" />
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element name="MicrochipDetails" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element name="MicrochipNumber" minOccurs="1" maxOccurs="1">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:maxLength value="16"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="ImplantDate" minOccurs="0" maxOccurs="1" />
              <xs:element name="ImplanterName" minOccurs="1" 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="Batch" type="xs:string" minOccurs="0" maxOccurs="1" />
            </xs:all>
          </xs:complexType>
        </xs:element>
      </xs:all>
      <xs:attribute name="version" type="xs:string" />
      <xs:attribute name="testmode" type="xs:string" />
    </xs:complexType>
  </xs:element>
</xs:schema>