<?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.
 
        *****     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"
	attributeFormDefault="unqualified">

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

	<xsd:complexType name="CatalogType">
		<xsd:sequence>
			<xsd:element ref="CatalogHeader" minOccurs="0"/>
			<xsd:element ref="CatalogLine" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="CustomerSegment" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>When no segements exist then all customers qualify for this
						catalog. All of the conditions within a segment must be met by a customer
						for the customer to have access to the catalog based upon that segment. A
						customer must only qualify under one segment to qualify for the
						catalog.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="CatalogHeaderType">
		<xsd:annotation>
			<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">This identifies header
				information about the Catalog. This information applies to all the lines in the
				Catalog. PartyReferences in the Header are defaults that apply to all the Catalog
				lines, if there is no value specified at line level The SupplierParty in the Header
				identifies the provider of the item. Depending on the exchange scenario, the
				provider may be either a Supplier, Manufacturer or a Catalog Party. If no
				SupplierParty is specified at line level, the header value of the SupplierParty is
				assumed to hold true for the line </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="StatusEnabledHeaderType">
				<xsd:sequence>
					<xsd:element ref="Name" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Is the
								name of the Catalog.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="CurrencyCode" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Is the
								default currency of the Catalog. If a Currencey is specified for the
								Catalog, all the prices in the Catalog are assumed to be in the
								corresponding currency.</xsd:documentation>
							<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Is the
								default currency of the Catalog. If a Currencey is specified for the
								Catalog, all the prices in the Catalog are assumed to be in the
								corresponding currency.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="EffectiveTimePeriod" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Is the
								effective period of the Catalog or Catalog revision. The
								EffectiveTimePeriod indicates the effectivity date and the
								expiration date for the validity of the Catalog. Often times the
								effectivity of a Catalog Revision is indicated by the release of a
								new revision of the Catalog. As such the Finish Effectivity date is
								never specified but assumed to be the Starting Effectivity date on
								the next revision</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="UsageRestrictionCode" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation source="http://schema.infor.com/InforOAGIS/2"
								>UsageRestriction is used to indicate additional restrictions on the
								Catalog usage. The implementation of this is to be agreed upon
								between trading partners. An example of usage of this is when a
								supplier has different Catalogs - one for general usage and others
								for usage by specific customers/ group of customers. In this
								scenario, the UsageRestriction can be specified as PUBLIC/
								PRIVATE</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="PublisherParty" minOccurs="0"/>
					<xsd:element ref="SupplierParty" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="Party" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="UserArea" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="CatalogLineType">
		<xsd:annotation>
			<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">The CatalogLine
				represents an item in a Catalog. The SupplierParty in the CatalogItemLine identifies
				the provider of the item. Depending on the exchange scenario, the provider may be
				either a Supplier, Manufacturer or a Catalog Party. If no SupplierParty is specified
				at line level, the header value of the SupplierParty is assumed to hold true for the
				line </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:choice>
				<xsd:element ref="Item" minOccurs="0"/>
				<xsd:element ref="CommodityClassification" minOccurs="0"/>
				<xsd:element ref="CatalogItem" minOccurs="0"/>
			</xsd:choice>
			<xsd:element ref="TimePeriod" minOccurs="0"/>
			<xsd:element ref="UOMCode" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Indicates the
						UnitOfMeasure in which the Item is available to be sold.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="SupplierParty" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="ItemPrice" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:group ref="FreeFormTextGroup" minOccurs="0"/>
			<xsd:group ref="ReferencesGroup" minOccurs="0"/>
			<xsd:element ref="UserArea" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="ItemPriceType">
		<xsd:annotation>
			<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">This identifies a unit
				price for an item</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="UnitPrice" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Indicates the
						amount per quantity.</xsd:documentation>
					<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Indicates the
						amount per quantity.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:group ref="FreeFormTextGroup" minOccurs="0"/>
			<xsd:element ref="CustomerParty" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">The
						PartyReference in ItemPrice is used to indicate prices applicable for a
						specific customer</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="BuyerContractReference" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="SupplierContractReference" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:group ref="ReferencesGroup" minOccurs="0"/>
			<xsd:element ref="PriceBreak" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="UserArea" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="CatalogItemType">
		<xsd:sequence>
			<xsd:element ref="IDs" minOccurs="0"/>
			<xsd:element ref="ItemIDs" minOccurs="0"/>
			<xsd:element ref="Classification" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:group ref="FreeFormTextGroup"/>
			<xsd:element ref="UserArea" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:element name="CatalogItem" type="CatalogItemType"/>

	<xsd:element name="Catalog" type="CatalogType">
		<xsd:annotation>
			<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Catalog is a list of
				items or commodities. The items may be arranged according to a classification
				scheme. The Catalog can identify the classification scheme it uses, and the
				classifications and features that are defined within that scheme. Within the
				Catalog, each item can be classified into one oe more categories , and the
				specifications of each item can be identified. A Catalog has at least one publisher
				and one or many suppliers for the items in the Catalog.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>

	<xsd:element name="CatalogHeader" type="CatalogHeaderType">
		<xsd:annotation>
			<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Describes the Catalog
				as a whole and communicates information that pertains to the entire
				Catalog.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>

	<xsd:element name="ItemPrice" type="ItemPriceType">
		<xsd:annotation>
			<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Identifies the price of
				the item.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>


	<xsd:element name="CatalogLine" type="CatalogLineType">
		<xsd:annotation>
			<xsd:documentation source="http://schema.infor.com/InforOAGIS/2">Describes the items
				that are in the Catalog.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>

	<xsd:complexType name="CustomerSegmentsType">
		<xsd:sequence>
			<xsd:element ref="ID" minOccurs="0"/>
			<xsd:element ref="CustomerSegment" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="CustomerSegments" type="CustomerSegmentsType"/>
	
	<xsd:complexType name="CustomerSegmentType">
		<xsd:sequence>
			<xsd:element ref="Code" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>This code list has an attribute which identifies the XPath to
						the element referenced by this code within the
						CustomerPartyMaster.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="TimePeriod" minOccurs="0"/>
			<xsd:element ref="TestValue" minOccurs="1"/>
			<xsd:element ref="TestOperator" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="orGroup" use="optional" type="NormalizedStringType"/>
	</xsd:complexType>
	<xsd:element name="CustomerSegment" type="CustomerSegmentType"/>

	<xsd:element name="TestValue" type="NormalizedStringType"/>
	<xsd:element name="TestOperator" type="NormalizedStringType"/>
</xsd:schema>
