<?xml version="1.0" encoding="utf-8"?>
<xs:schema version="1.03" id="DirectoryOfService" elementFormDefault="qualified" targetNamespace="http://www.vetxml.org/schemas/DirectoryOfService" xmlns="http://www.vetxml.org/schemas/DirectoryOfService" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="DirectoryOfService">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Section" minOccurs="1" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Test" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                  <!-- rename field ID to replicate -->
                    <xs:element name="replicate" type="xs:string" minOccurs="1" maxOccurs="1" />
                    <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1" />
                    <xs:element name="Code" type="xs:string" minOccurs="1" maxOccurs="1" />
                    <xs:element name="Includes" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="Comment" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <!-- do we need 50 components or unbounded-->
                    <xs:element name="TurnAround" minOccurs="1" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:all>
                          <!-- Added Time String, -->
                          <xs:element name="Time" type="xs:string"/>
                          <xs:element name="From" type="xs:decimal" minOccurs="1" maxOccurs="1" />
                          <xs:element name="To" type="xs:decimal" minOccurs="1" maxOccurs="1" />
                       </xs:all>
                        <xs:attribute name="component" type="xs:string"/>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Sample" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <!-- if the price-tag (ExcVAT) is missing this means that there is no price available e.g. depending on the weight ... -->
                    <xs:element name="ExcVAT" type="xs:decimal" minOccurs="0" maxOccurs="1" />
                    <xs:element name="PricingInfo" type="xs:string" minOccurs="0" maxOccurs="1" />
                    <xs:element name="Hidden" type="xs:boolean" minOccurs="0" maxOccurs="1" />
                    <!--Renamed field SpeciesList to Species-->
                    <xs:element name="Species" type="xs:string" minOccurs="1" maxOccurs="1" />
                    <!-- Field removed
                    <xs:element name="PetOwnerPrice" type="xs:decimal" minOccurs="0" maxOccurs="1" />
                    -->
                    <xs:element name="Currency" type="xs:decimal" minOccurs="1" maxOccurs="1" />
                    <!-- Added field NonDiscountable for tests that are discountable -->
                    <xs:element name="NonDiscountable" type="xs:boolean" minOccurs="1" maxOccurs="1" />
                    
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="name" type="xs:string"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="documentRef" type="xs:string"/>
      <xs:attribute name="version" type="xs:string"/>
      <xs:attribute name="documentTitle" type="xs:string"/>
      <xs:attribute name="validFrom" type="xs:date"/>
      <xs:attribute name="validUntil" type="xs:date"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

