<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Georges Marchand (AccUtil) -->
<!-- 
Ver.   Date          By                      Action                                             
1.6     05-Oct-01 Geoff Mack       Converted to the May 5, 2001 W3C Recommendation using XML Spy v4.0.  Now references
                                                     http://www.w3.org/2001/XMLSchema instead of http://www.w3.org/2000/10/XMLSchema.
1.5     01-Aug-01 Geoff Mack       Made modifications based on input received at the 7/24/2001 FurnXML meeting in Charlotte, NC:
                                                     * Synchronized with PO Ack schema - used the same base objects.
-->
<schema targetNamespace="http://support.furnishnet.com/xml/schemas/FurnPO_v1.6" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:fnBase="http://support.furnishnet.com/xml/schemas/fnBase_v1.4" xmlns:fnItem="http://support.furnishnet.com/xml/schemas/fnItem_v1.4" xmlns:fnParty="http://support.furnishnet.com/xml/schemas/fnParty_v1.4" xmlns:furn_po="http://support.furnishnet.com/xml/schemas/FurnPO_v1.6" version="1.6">
	<import namespace="http://support.furnishnet.com/xml/schemas/fnBase_v1.4" schemaLocation="http://support.furnishnet.com/xml/schemas/fn_base_v1.4.xsd"/>
	<import namespace="http://support.furnishnet.com/xml/schemas/fnItem_v1.4" schemaLocation="http://support.furnishnet.com/xml/schemas/fn_item_v1.4.xsd"/>
	<import namespace="http://support.furnishnet.com/xml/schemas/fnParty_v1.4" schemaLocation="http://support.furnishnet.com/xml/schemas/fn_party_v1.4.xsd"/>
	<complexType name="lineItemType">
		<annotation>
			<documentation>Furniture line item extension used as base for quotes and POs</documentation>
		</annotation>
		<sequence>
			<element name="productID" type="fnItem:itemIdentifierType">
				<annotation>
					<documentation>Identification of product to be purchased.</documentation>
				</annotation>
			</element>
			<element name="requestedQuantity">
				<annotation>
					<documentation>Quantity of above item to be purchased.</documentation>
				</annotation>
				<complexType>
					<complexContent>
						<extension base="fnBase:quantityType">
							<sequence>
								<element name="shipToLocation" minOccurs="0" maxOccurs="unbounded">
									<annotation>
										<documentation>The sum of all quantities specified here should equal the "value" attribute on element requestedQuantity.  The shipToID refers to an entry in the shipTo element on the header.  The date attributes allow request for multiple shipments on a single order.</documentation>
									</annotation>
									<complexType>
										<complexContent>
											<extension base="fnBase:shipToLocationType">
												<sequence>
													<element name="markForLocation" type="fnBase:markForLocationType" minOccurs="0" maxOccurs="unbounded">
														<annotation>
															<documentation>The sum of all quantities specified here should equal the "quantity" attribute of the immediately enclosing shipToLocation element.  The markForID refers to an entry in the markFor element on the header.</documentation>
														</annotation>
													</element>
												</sequence>
											</extension>
										</complexContent>
									</complexType>
								</element>
								<element name="pieceIdentification" type="fnBase:pieceIdentificationNumberType" minOccurs="0">
									<annotation>
										<documentation>A piece identification number uniquely identifes a single piece in a transaction.  When used, there is normally one piece ID number for each and every piece in the transaction.  They may be buyer assigned or seller assigned.  These numbers are NOT associated with a particular destination location.</documentation>
									</annotation>
								</element>
							</sequence>
						</extension>
					</complexContent>
				</complexType>
			</element>
			<element name="unitPrice">
				<annotation>
					<documentation>Discounts, surcharges and price for one unit.</documentation>
				</annotation>
				<complexType>
					<sequence>
						<element name="discount" type="fnBase:discountOrAllowanceType" minOccurs="0" maxOccurs="unbounded">
							<annotation>
								<documentation>Discount used in calculating the total price</documentation>
							</annotation>
						</element>
						<element name="surcharge" type="fnBase:additionalChargeType" minOccurs="0" maxOccurs="unbounded">
							<annotation>
								<documentation>Surcharge included in the price for the item.</documentation>
							</annotation>
						</element>
						<element name="price" type="fnBase:monetaryAmountType">
							<annotation>
								<documentation>Unit price of this item including discounts, surcharges and options.</documentation>
							</annotation>
						</element>
					</sequence>
				</complexType>
			</element>
			<element name="extendedPrice" minOccurs="0">
				<annotation>
					<documentation>Extended discounts, surcharges, and item price.</documentation>
				</annotation>
				<complexType>
					<sequence>
						<element name="extDiscount" type="fnBase:discountOrAllowanceType" minOccurs="0" maxOccurs="unbounded">
							<annotation>
								<documentation>Discount used in calculating the total price</documentation>
							</annotation>
						</element>
						<element name="extSurcharge" type="fnBase:additionalChargeType" minOccurs="0" maxOccurs="unbounded">
							<annotation>
								<documentation>Surcharge included in the price for the item.</documentation>
							</annotation>
						</element>
						<element name="extPrice" type="fnBase:monetaryAmountType">
							<annotation>
								<documentation>Extended price of this item including discounts, surcharges and options.</documentation>
							</annotation>
						</element>
					</sequence>
				</complexType>
			</element>
			<element name="lineSystemReference" type="fnBase:systemReferenceType" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>A system reference facilitates automated processing of the document by including data elements that are not necessarily part of a standard transaction but are required or desired by the computer systems of the trading partners.  Effective use of system references requires pre-arrangement between trading partners.  NOTE: this structure should not be used for data that is otherwise accommodated within a transaction schema.</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="lineItemNumber" type="positiveInteger" use="required"/>
		<attribute name="comment" type="string" use="optional">
			<annotation>
				<documentation>General comments about the item.</documentation>
			</annotation>
		</attribute>
		<attribute name="requestedSerialNumber" type="string" use="optional">
			<annotation>
				<documentation>Buyer requests this serial number be attached to the item prior to shipping.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="extLineItemType">
		<annotation>
			<documentation>PO specific line item extension</documentation>
		</annotation>
		<complexContent>
			<extension base="furn_po:lineItemType">
				<sequence minOccurs="0">
					<element name="actionRequestIndicator" type="fnBase:actionRequestIndicatorType" minOccurs="0">
						<annotation>
							<documentation>Specifies that this line item is an alteration to a line item in a previous PO transaction.</documentation>
						</annotation>
					</element>
					<element name="option" type="fnItem:itemOptionType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>An option for the item.</documentation>
						</annotation>
					</element>
					<element name="subItem" type="furn_po:extLineItemType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Any number of sub items for this item.  Note: this is a recursive element.</documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="orderType">
		<annotation>
			<documentation>Represents the header component of the order.</documentation>
		</annotation>
		<sequence>
			<element name="document" type="fnBase:documentType">
				<annotation>
					<documentation>Basic document header information.</documentation>
				</annotation>
			</element>
			<element name="actionRequestIndicator" type="fnBase:actionRequestIndicatorType" minOccurs="0">
				<annotation>
					<documentation>Specifies that this PO document  issues a create, change or cancellation request to the specified PO number.</documentation>
				</annotation>
			</element>
			<element name="currency">
				<annotation>
					<documentation>Currency used in all prices within the purchase order</documentation>
				</annotation>
				<simpleType>
					<restriction base="string">
						<maxLength value="3"/>
					</restriction>
				</simpleType>
			</element>
			<element name="exchangeRate" type="fnBase:exchangeRateType" minOccurs="0">
				<annotation>
					<documentation>Exchange rate used in calculating prices.</documentation>
				</annotation>
			</element>
			<element name="additionalCharge" type="fnBase:additionalChargeType" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>Additional shipping, handling, or other charges that may be added to the order.</documentation>
				</annotation>
			</element>
			<element name="discount" type="fnBase:discountOrAllowanceType" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>Explanation of included discount that applied to the whole of the purchased order.</documentation>
				</annotation>
			</element>
			<element name="netTotalPrice" type="fnBase:monetaryAmountType" minOccurs="0">
				<annotation>
					<documentation>Total cost for the purchase order.</documentation>
				</annotation>
			</element>
			<element name="buyer" type="fnParty:partyIdentificationType">
				<annotation>
					<documentation>Buyer party in the transaction</documentation>
				</annotation>
			</element>
			<element name="billTo" type="fnParty:partyIdentificationType" minOccurs="0">
				<annotation>
					<documentation>Party to be billed for items ordered. If omitted, the buyer is assumed to be the billTo party.</documentation>
				</annotation>
			</element>
			<element name="seller" type="fnParty:sellerIdentificationType">
				<annotation>
					<documentation>Seller party in the transaction</documentation>
				</annotation>
			</element>
			<element name="carrier" type="fnParty:carrierIdentificationType" minOccurs="0">
				<annotation>
					<documentation>Details about the carrier for the order</documentation>
				</annotation>
			</element>
			<element name="shipTo" type="fnParty:shipToPartyType" maxOccurs="unbounded">
				<annotation>
					<documentation>1 or more shipTo parties</documentation>
				</annotation>
			</element>
			<element name="markFor" type="fnParty:shipToPartyType" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>markFor parties</documentation>
				</annotation>
			</element>
			<element name="terms" type="fnBase:termsType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="shipDates" type="furn_po:shipDatesType" minOccurs="0">
				<annotation>
					<documentation>Requested date that product is shipped from the seller.</documentation>
				</annotation>
			</element>
			<element name="systemReference" type="fnBase:systemReferenceType" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>A system reference facilitates automated processing of the document by including data elements that are not necessarily part of a standard transaction but are required or desired by the computer systems of the trading partners.  Effective use of system references requires pre-arrangement between trading partners.  NOTE: this structure should not be used for data that is otherwise accommodated within a transaction schema.</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="comment" type="string" use="optional">
			<annotation>
				<documentation>General comments about the order.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<element name="order" type="furn_po:POType">
		<annotation>
			<documentation>The one and only PO element</documentation>
		</annotation>
		<key name="shipToIDKey">
			<selector xpath="shipTo"/>
			<field xpath="@id"/>
		</key>
		<key name="markForIDKey">
			<selector xpath="markFor"/>
			<field xpath="@id"/>
		</key>
		<keyref name="shipToIDLineRef" refer="furn_po:shipToIDKey">
			<selector xpath="lineItem/requestedQuantity/shipToLocation"/>
			<field xpath="@shipToID"/>
		</keyref>
		<keyref name="markForIDLineRef" refer="furn_po:markForIDKey">
			<selector xpath="lineItem/requestedQuantity/shipToLocation/markFor"/>
			<field xpath="@markForID"/>
		</keyref>
	</element>
	<complexType name="shipDatesType">
		<annotation>
			<documentation>Represents various ship dates that a buyer may request.</documentation>
		</annotation>
		<sequence>
			<element name="requestedShipDate" type="date" minOccurs="0">
				<annotation>
					<documentation>Requested date for product to be shipped from the seller.</documentation>
				</annotation>
			</element>
			<element name="DoNotShipBeforeDate" type="date" minOccurs="0">
				<annotation>
					<documentation>Do not ship product before this date.</documentation>
				</annotation>
			</element>
			<element name="DoNotShipAfterDate" type="date" minOccurs="0">
				<annotation>
					<documentation>Do not ship product after this date.</documentation>
				</annotation>
			</element>
			<element name="requestedArrivalDate" type="date" minOccurs="0">
				<annotation>
					<documentation>Requested date that product should arrive at buyer's primary destination.</documentation>
				</annotation>
			</element>
			<element name="cancelDate" type="date" minOccurs="0">
				<annotation>
					<documentation>Order can be cancel on or after this date.</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="POType">
		<annotation>
			<documentation>Represents a complete furniture purchase order document.</documentation>
		</annotation>
		<sequence>
			<element name="Order" type="furn_po:orderType"/>
			<element name="Line" type="furn_po:extLineItemType" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
</schema>
