﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.vetxml.org/schemas/Notification" xmlns="http://www.vetxml.org/schemas/Notification"
           xmlns:cat="http://www.vetxml.org/schemas/Catalogue" xmlns:ord="http://www.vetxml.org/schemas/Order" version="1.0">
  <xs:import namespace="http://www.vetxml.org/schemas/Catalogue" schemaLocation="CatalogueItem.xsd" />
  <xs:import namespace="http://www.vetxml.org/schemas/Order" schemaLocation="OrderItem.xsd" />
  <xs:element name="Notification">
    <xs:complexType>
      <xs:all>
        <xs:element name="PracticeOrderNumber" type="xs:string" minOccurs="1" maxOccurs="1" />
        <xs:element name="SupplierOrderNumber" type="xs:string" minOccurs="1" maxOccurs="1" />
        <xs:element name="AffectedItem" type="ord:OrderItem" />
        <xs:element name="Details" minOccurs="1" maxOccurs="1">
          <xs:complexType>
            <xs:choice>
              <xs:element name="PartialFulfillment">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="QuantityOutstanding" type="xs:integer" minOccurs="1" maxOccurs="1" />
                    <xs:element name="Reason" type="xs:string" minOccurs="1" maxOccurs="1" />
                    <xs:element name="Actions" minOccurs="1" maxOccurs="1">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="CancelAll" type="xs:string" minOccurs="1" maxOccurs="1" />
                          <xs:element name="CancelOutstanding" type="xs:string" minOccurs="1" maxOccurs="1" />
                          <xs:element name="BackOrder" type="xs:date" minOccurs="0" maxOccurs="1" />
                          <xs:element name="SubstitutionChoices" minOccurs="0" maxOccurs="1">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Item" type="cat:CatalogueItem" minOccurs="1" maxOccurs="10" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="PriceIncrease">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="OrderPrice" type="xs:decimal" minOccurs="1" maxOccurs="1" />
                    <xs:element name="NewPrice" type="xs:decimal" minOccurs="1" maxOccurs="1" />
                    <xs:element name="Reason" type="xs:string" minOccurs="1" maxOccurs="1" />
                    <xs:element name="Actions" minOccurs="1" maxOccurs="1">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="Cancel" type="xs:string" minOccurs="1" maxOccurs="1" />
                          <xs:element name="AcceptNewPrice" type="xs:string" minOccurs="1" maxOccurs="1" />
                          <xs:element name="SubstitutionChoices" minOccurs="0" maxOccurs="1">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Item" type="cat:CatalogueItem" minOccurs="1" maxOccurs="10" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="Substitution">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Quantity" type="xs:integer" minOccurs="1" maxOccurs="1" />
                    <xs:element name="Reason" type="xs:string" minOccurs="1" maxOccurs="1" />
                    <xs:element name="Actions" minOccurs="1" maxOccurs="1">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="Cancel" type="xs:string" minOccurs="1" maxOccurs="1" />
                          <xs:element name="SubstitutionChoices" minOccurs="1" maxOccurs="1">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Item" type="cat:CatalogueItem" minOccurs="1" maxOccurs="10" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="Rejection">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Quantity" type="xs:integer" minOccurs="1" maxOccurs="1" />
                    <xs:element name="Reason" type="xs:string" minOccurs="1" maxOccurs="1" />
                  </xs:all>
                </xs:complexType>
              </xs:element>
            </xs:choice>
          </xs:complexType>
        </xs:element>
      </xs:all>
      <xs:attribute name="version" type="xs:string" />
    </xs:complexType>
  </xs:element>
</xs:schema>