<!--
		SIF Implementation Specification (Australia) 3.4.3


		(April 5, 2018)
		
		Infrastructure Version: v3
	-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sifassociation.org/datamodel/au/3.4" targetNamespace="http://www.sifassociation.org/datamodel/au/3.4" elementFormDefault="qualified" version="3.4.3">
  <xs:complexType name="InvoiceType">
    <xs:sequence>
      <xs:element name="InvoicedEntity" minOccurs="0">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="IdRefTypeOrEmpty">
              <xs:attribute name="SIF_RefObject" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Debtor" />
                    <xs:enumeration value="PurchaseOrder" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="FormNumber" minOccurs="0" nillable="true" type="LocalIdType" />
      <xs:element name="BillingDate" minOccurs="0" type="xs:date" />
      <xs:element name="TransactionDescription" minOccurs="0" type="xs:normalizedString" />
      <xs:element name="BilledAmount" minOccurs="0" type="DebitOrCreditAmountType" />
      <xs:element name="Ledger" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Creditor" />
            <xs:enumeration value="Family" />
            <xs:enumeration value="Sundry" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ChargedLocationInfoRefId" minOccurs="0" nillable="true" type="IdRefType" />
      <xs:element name="NetAmount" minOccurs="0" nillable="true" type="MonetaryAmountType" />
      <xs:element name="TaxRate" minOccurs="0" nillable="true" type="xs:decimal" />
      <xs:element name="TaxType" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="TaxAmount" minOccurs="0" nillable="true" type="MonetaryAmountType" />
      <xs:element name="CreatedBy" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="ApprovedBy" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="ItemDetail" minOccurs="0" nillable="true" type="xs:normalizedString" />
      <xs:element name="DueDate" minOccurs="0" nillable="true" type="xs:date" />
      <xs:element name="FinancialAccountRefIdList" minOccurs="0" nillable="true" type="FinancialAccountRefIdListType" />
      <xs:element name="AccountingPeriod" minOccurs="0" nillable="true" type="LocalIdType" />
      <xs:element name="RelatedPurchaseOrderRefId" minOccurs="0" nillable="true" type="IdRefType" />
      <xs:element name="PurchasingItems" minOccurs="0" nillable="true" type="PurchasingItemsType" />
      <xs:element name="Voluntary" minOccurs="0" nillable="true" type="AUCodeSetsYesOrNoCategoryType" />
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="RefIdType" />
  </xs:complexType>

  <xs:element name="Invoice" type="InvoiceType">
    <xs:unique name="InvoiceKey1">
      <xs:selector xpath="./Invoice" />
      <xs:field xpath="@RefId" />
    </xs:unique>
  </xs:element>

  <xs:complexType name="InvoiceCollectionType">
    <xs:sequence>
      <xs:element name="Invoice" type="InvoiceType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Invoices" type="InvoiceCollectionType" />

</xs:schema>