<?xml version="1.0" encoding="utf-8"?>
<!--
        
        ** OAGIS® Revision: 9.1  **
        ** Date: 11 May 2007 **
        ** Copyright 1997-2007, All Rights Reserved **
        
        This is an OAGIS® BOD XML Schema (XSD) Definition.
        
       License information for this file is provided in the file **OAGi License Agreement.txt** that is provided with this download package.
        
        For support, more information, or to report implementation bugs, please contact the Open Applications Group at xml@openapplications.org.
        
        XML Schema 
        
-->
 
<!--
© Copyright 2007 Infor Global Solutions Technology GmbH and/or its affiliates and subsidiaries. All rights reserved. The 
word and design marks set forth herein are trademarks and/or registered trademarks of Infor Global Solutions 
Technology GmbH and/or its affiliates and subsidiaries. All rights reserved. All other trademarks listed herein 
are the property of their respective owners.
 
-->
 
<!--    *****     Update Log     *****
 
Date           By      Note
10 Apr 2008    JB      Added correct Copyright and update comments to schema.
03 Oct 2008    JB      Added BaseCurrencyAmount element to Header, Lines, Sublines, and Schedule.
08 Oct 2010	   NO      Added InspectionRequiredIndicator and AutoAdjustIndicator elements (BOD-1377). 
17 Jun 2011	   NO      Added ScheduleLineType element (BOD-1578). 

        *****     Update End     *****
 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns="http://schema.infor.com/InforOAGIS/2"
        targetNamespace="http://schema.infor.com/InforOAGIS/2" elementFormDefault="qualified">

        <xsd:include schemaLocation="../Components/Operational/OrderManagementComponents.xsd"/>

        <xsd:element name="PurchaseOrder" type="PurchaseOrderType">
                <xsd:annotation>
                        <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">The purpose
                                of the PurchaseOrder Business Object Document is to communicate an
                                order to purchase goods from a buyer to a supplier. The
                                PurchaseOrder carries information to and from the buyer and
                                supplier. The PurchaseOrder is a legally binding document once both
                                Parties agree to the contents and the specified terms and conditions
                                of the order. </xsd:documentation>
                        <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">The Process
                                PurchaseOrder sends the electronic form of a purchase order document
                                from a customer to a supplier in order to purchase n-number of Lines
                                each of which containes an Ordered Item. </xsd:documentation>
                </xsd:annotation>
        </xsd:element>

        <xsd:element name="PurchaseOrderHeader" type="PurchaseOrderHeaderType">
                <xsd:annotation>
                        <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">The
                                Purchase Order Header contains information that applies to the
                                entire purchase order. This Component is required.</xsd:documentation>
                </xsd:annotation>
        </xsd:element>

        <xsd:element name="PurchaseOrderLine" type="PurchaseOrderLineType">
                <xsd:annotation>
                        <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">The
                                Purchase Order Line indicates the ordered item or product ordered
                                along with the quantity, price and other descriptive information. It
                                is also possible to provide additional Parties, PaymentTerms,
                                Charge, and Attachment information as needed at the line level. At
                                least one occurrence of this Component is required for each
                                occurrence of the Purchase Order.</xsd:documentation>
                </xsd:annotation>
        </xsd:element>

        <xsd:element name="PurchaseOrderSubLine" type="PurchaseOrderSubLineType">
                <xsd:annotation>
                        <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">The
                                Component Subline represents any additional information concerning
                                the product on the Line. The Subline can be used to describe a
                                specific configuration of the ordered item.</xsd:documentation>
                </xsd:annotation>
        </xsd:element>

        <xsd:element name="PurchaseOrderSchedule" type="PurchaseOrderScheduleType">
                <xsd:annotation>
                        <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">The
                               Component Schedule represents the requested ship or delivery dates
                                for goods ordered. The Schedule is an optional Component. The
                                Schedule can not be associated with a Subline. It is only associated
                                with a Line.</xsd:documentation>
                </xsd:annotation>
        </xsd:element>

        <xsd:complexType name="PurchaseOrderType">
                <xsd:annotation>
                        <xsd:documentation source="http://schema.infor.com/InforOAGIS/2">The schema
                                type for PurchaseOrder. MAKE ALL CHANGES TO ORDER, NOT PO!
                                PurchaseOrder's base abstract type, Order, is shared between
                                PurchaseOrder and SalesOrder. SalesOrder is essentially an extension
                                of PurchaseOrder, but in order to use the local-global design
                                pattern, each of PO and SO needs to instantiate its own Header and
                                Line elements.To do this, we factored out the PO content models,
                                instantiated both PO and SO from Order.</xsd:documentation>
                </xsd:annotation>
                <xsd:sequence>
                        <xsd:element ref="PurchaseOrderHeader" minOccurs="0"/>
                        <xsd:element ref="PurchaseOrderLine" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
        </xsd:complexType>

        <xsd:complexType name="PurchaseOrderHeaderType">
                <xsd:complexContent>
                        <xsd:extension base="OrderHeaderType">
                                <xsd:sequence>
                                        <xsd:element ref="OrderDateTime" minOccurs="0"/>
                                        <xsd:element ref="BuyerParty" minOccurs="0"/>
                                        <xsd:element ref="AcceptByDateTime" minOccurs="0"/>
                                        <xsd:element ref="ReleaseNumber" minOccurs="0"/>
                                        <xsd:element ref="RequisitionReference" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="QuoteReference" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="SalesOrderReference" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="UserArea" minOccurs="0"/>
                                        <xsd:element ref="PriceOverrideIndicator" minOccurs="0"/>
                                        <xsd:element ref="ContractApplicableIndicator" minOccurs="0"/>
                                        <xsd:element ref="RFQReference" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="ProductionOrderReference" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="Classification" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="DocumentUsageCode" minOccurs="0"/>
                                        <xsd:element ref="BaseCurrencyAmount" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="PlannerReference" minOccurs="0"/>
                                        <xsd:element ref="BuyerReference" minOccurs="0"/>
                                        <xsd:element ref="Charge" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="RemitToParty" minOccurs="0"/>
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>

        <xsd:complexType name="PurchaseOrderLineType">
                <xsd:complexContent>
                        <xsd:extension base="OrderLineType">
                                <xsd:sequence>
                                        <xsd:element ref="BackOrderedQuantity" minOccurs="0"/>
                                        <xsd:element ref="BackOrderedBaseUOMQuantity" minOccurs="0"/>
                                        <xsd:element ref="ReceivedQuantity" minOccurs="0"/>
                                        <xsd:element ref="ReceivedQuantityDistribution" minOccurs="0" maxOccurs="unbounded"/>
                                        <xsd:element ref="ReceivedBaseUOMQuantity" minOccurs="0"/>
                                        <xsd:element ref="OpenQuantity" minOccurs="0"/>
                                        <xsd:element ref="OpenBaseUOMQuantity" minOccurs="0"/>
                                        <xsd:element ref="QuoteReference" minOccurs="0"/>
                                        <xsd:element ref="SalesOrderReference" minOccurs="0"/>
                                        <xsd:element ref="BuyerParty" minOccurs="0"/>
                                        <xsd:element ref="PurchaseOrderSubLine" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="PurchaseOrderSchedule" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="UserArea" minOccurs="0"/>
                                        <xsd:element ref="PriceOverrideIndicator" minOccurs="0"/>
                                        <xsd:element ref="ContractApplicableIndicator" minOccurs="0"/>
                                        <xsd:element ref="ContractReference" minOccurs="0"/>
                                        <xsd:element ref="FixedPriceItemIndicator" minOccurs="0"/>
                                        <xsd:element ref="ExpensableItemIndicator" minOccurs="0"/>
                                        <xsd:element ref="AllocatedQuantity" minOccurs="0"/>
                                        <xsd:element ref="AllocatedBaseUOMQuantity" minOccurs="0"/>
                                        <xsd:element ref="UnitQuantityConversionFactor"
                                                minOccurs="0"/>
                                        <xsd:element ref="SupplierParty" minOccurs="0"/>
                                        <xsd:element ref="ShipFromParty" minOccurs="0"/>
                                        <xsd:element ref="RemitToParty" minOccurs="0"/>
                                        <xsd:element ref="PurchaseOrderReference" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="RFQReference" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="ProductionOrderReference" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="Allowance" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="Charge" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="Classification" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="BaseCurrencyAmount" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="InspectionRequiredIndicator" minOccurs="0"/>
                                        <xsd:element ref="AutoAdjustIndicator" minOccurs="0"/>
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>

        <xsd:complexType name="PurchaseOrderSubLineType">
                <xsd:complexContent>
                        <xsd:extension base="RequestSubLineType">
                                <xsd:sequence>
                                        <xsd:element ref="BaseCurrencyAmount" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="UserArea" minOccurs="0"/>
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>

        <xsd:complexType name="PurchaseOrderScheduleType">
                <xsd:complexContent>
                        <xsd:extension base="ProcurementScheduleType">
                                <xsd:sequence>
                                        <xsd:element ref="UserArea" minOccurs="0"/>
                                        <xsd:element ref="Status" minOccurs="0"/>
                                        <xsd:element ref="PriceOverrideIndicator" minOccurs="0"/>
                                        <xsd:element ref="ContractApplicableIndicator" minOccurs="0"/>
                                        <xsd:element ref="ShipToParty" minOccurs="0"/>
                                        <xsd:element ref="BackOrderedQuantity" minOccurs="0"/>
                                        <xsd:element ref="BackOrderedBaseUOMQuantity" minOccurs="0"/>
                                        <xsd:element ref="ReceivedQuantity" minOccurs="0"/>
                                        <xsd:element ref="ReceivedQuantityDistribution" minOccurs="0" maxOccurs="unbounded"/>
                                        <xsd:element ref="ReceivedBaseUOMQuantity" minOccurs="0"/>
                                        <xsd:element ref="UnitPrice" minOccurs="0">
                                                <xsd:annotation>
                                                  <xsd:documentation>This amount is used to override the amount on the line. When omitted the unit price is the same as the unit price for the line.</xsd:documentation>
                                                </xsd:annotation>
                                        </xsd:element>
                                        <xsd:element ref="IncotermsCode" minOccurs="0"/>
                                        <xsd:element ref="CarrierParty" minOccurs="0"/>
                                        <xsd:element ref="TaxJurisdicationCodes" minOccurs="0"/>
                                        <xsd:element ref="FreightTermCode" minOccurs="0"/>
                                        <xsd:element ref="BaseCurrencyAmount" minOccurs="0"
                                                maxOccurs="unbounded"/>
                                        <xsd:element ref="ScheduleLineType" minOccurs="0"/>
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>

</xsd:schema>
