<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by Geoff Mack (FurnishNet) -->
<!-- © 2001 FurnishNet.com.  All rights reserved.  Contains confidential and proprietary information. -->
<!-- 
Ver.   Date            By                         Action
1.6     21-Dec-05  Geoff Mack          Added to enumerations list for unitOfMeasureType; expanded fractional digits of monetaryAmountType from 2 to 4.
1.5     26-Sep-03  Geoff Mack          Made changes approved during the 2003-09-20 FIDX meeting in Charlotte, NC:
                                                          * Added enumeration TrailerNumber to referenceNumberType.
1.4     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.3     31-Jul-01    Geoff Mack          Made modifications based on input received at the 7/24/2001 FurnXML meeting in Charlotte, NC:
                                                          * Added pieceIdentificationNumberType for use in PO, PO Ack, Invoice, and ASN schemas.
                                                          * Moved termsType, termsBasisDateType, and termsBasisDateQualifier from invoice to fn_base
                                                            for use in PO, PO Ack, and Invoice schemas.
1.2     26-Jun-01   Geoff Mack          * Changed web server address to from www.furnishnet.com/... to support.furnishnet.com/...
                                                          * Added a shipToLocationType containing quantity and shipToID as well as a variety
                                                            of ship dates as attributes.
                                                          * Added markForLocationType and used it in shipToLocationType (in preparation for
                                                            not having shipToLocation on the ASN but still wanting it in the Invoice).
                                                          * Changed the comments in the systemReference elements to warn about not using
                                                            this structure for data that can be accommodated elsewhere in a transaction schema,
                                                            and changed the example to make it conform to that warning.
                                                          * Added complex type referenceNumberType (to be referenced by the newest versions 
                                                            of Invoice (v1.4) and ASN (v1.4)), and added carrierReferenceNumber to it.
                                                          * Removed transactionDate in favor of adding creationTime to the document element (itself added
                                                            in this version.
                                                          * Changed all NMTOKEN data type declarations to string.
                                                          * Added version number to fnBase namespace and target namespace declarations.
                                                          * Eliminated references to FurnXMLBaseTypes from PO Ack to simplify the PO Ack structure.  
                                                            In doing so, 
                                                              * Created additionalChargeType and discountOrAllowanceType for use by Invoice and PO Ack.
                                                              * Added exchangeRateType for use by PO Ack.
                                                              * Added documentType for use by PO Ack, Invoice, and ASN.
                                                              * Added actionRequestIndicatorType for use by PO Ack, Invoice, and ASN.
1.1          23-Mar-2001   Geoff Mack           The following changes were made to facilitate use of a structure in ASN that would mimic
                                                                     the structure used in FurnXMLPO to declare ship-to and mark-for locations:
                                                                     * Added simple type unitOfMeasureType (copied from FurnXML base types)
                                                                     * Changed type of attribute unitOfMeasureQualifier on measurementType from NMTOKEN 
                                                                        to unitOfMeasureType
                                                                     * Added complex type shipToLocationType to fnBase (from FurnXML base types)
                                                                     * Added complex type quantityType (copied from FurnXML base types)
1.0          28-Feb-2001   Geoff Mack           Created.
-->
<!--W3C Schema generated by XML Spy v3.5 NT (http://www.xmlspy.com)-->
<schema targetNamespace="http://support.furnishnet.com/xml/schemas/fnBase_v1.6" xmlns:fnBase="http://support.furnishnet.com/xml/schemas/fnBase_v1.6" xmlns="http://www.w3.org/2001/XMLSchema" version="1.6">
	<complexType name="actionRequestIndicatorType">
		<annotation>
			<documentation>Describes the requested action for an item or order: create, change, or cancel.</documentation>
		</annotation>
		<attribute name="description" use="required">
			<annotation>
				<documentation>Description of the type of request being issued.</documentation>
			</annotation>
			<simpleType>
				<restriction base="string">
					<enumeration value="Create"/>
					<enumeration value="Change"/>
					<enumeration value="Cancel"/>
				</restriction>
			</simpleType>
		</attribute>
		<attribute name="comments" type="string" use="optional">
			<annotation>
				<documentation>Comments related to the request.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="chargeOrAllowancePercentType">
		<annotation>
			<documentation>The qualifier indicates the amount to which the percentage is applied to derive the allowance/charge amount.</documentation>
		</annotation>
		<attribute name="chargeOrAllowancePercent" type="decimal" use="required"/>
		<attribute name="chargeOrAllowanceQualifier" use="required">
			<simpleType>
				<restriction base="string">
					<enumeration value="ItemListCost"/>
					<enumeration value="ItemNetCost"/>
					<enumeration value="DiscountGross"/>
					<enumeration value="DiscountNet"/>
					<enumeration value="BasePricePerUnit"/>
					<enumeration value="BasePriceAmount"/>
					<enumeration value="BasePriceAmountLessDiscount"/>
					<enumeration value="NetMonthlyOnInvoicesPastDue"/>
					<enumeration value="LatePaymentChargeBaseAmount"/>
					<enumeration value="Other"/>
				</restriction>
			</simpleType>
		</attribute>
	</complexType>
	<complexType name="additionalChargeType">
		<sequence>
			<element name="additionalChargeAmount" type="fnBase:monetaryAmountType">
				<annotation>
					<documentation>The amount of the charge.  Currency of the charge should be  identified elsewhere in the document.</documentation>
				</annotation>
			</element>
			<element name="additionalChargePercent" type="fnBase:chargeOrAllowancePercentType" minOccurs="0">
				<annotation>
					<documentation>The qualifier indicates the amount to which the percentage is applied to derive the charge amount.</documentation>
				</annotation>
			</element>
			<element name="additionalChargeDescription" type="fnBase:noteType" minOccurs="0">
				<annotation>
					<documentation>A free-form description of the additional charge.</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="discountOrAllowanceType">
		<sequence minOccurs="0">
			<element name="discountOrAllowanceAmount" type="fnBase:monetaryAmountType">
				<annotation>
					<documentation>The amount of the allowance in the currency identified by currencyIdentifier.</documentation>
				</annotation>
			</element>
			<element name="discountOrAllowancePercent" type="fnBase:chargeOrAllowancePercentType" minOccurs="0">
				<annotation>
					<documentation>The qualifier indicates the amount to which the percentage is applied to derive the allowance amount.</documentation>
				</annotation>
			</element>
			<element name="discountOrAllowanceDescription" type="fnBase:noteType" minOccurs="0">
				<annotation>
					<documentation>A free-form description of the allowance.</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<simpleType name="currencyIdentifierType">
		<annotation>
			<documentation>For programmatic management of currency, use codes specified by ISO 4217-1995.</documentation>
		</annotation>
		<restriction base="string">
			<maxLength value="3"/>
		</restriction>
	</simpleType>
	<complexType name="documentType">
		<annotation>
			<documentation>Basic information for any document: unique document identifier, creation date,  status (original or copy), transaction type, and language of the transaction.</documentation>
		</annotation>
		<sequence>
			<element name="creationDate" type="date">
				<annotation>
					<documentation>The creation date of the transaction referred to by this element.  Format is CCYY-MM-DD.</documentation>
				</annotation>
			</element>
			<element name="creationTime" type="time" minOccurs="0">
				<annotation>
					<documentation>The time on creationDate that the document was created.  Format is HH:MM:SS.</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="id" use="required">
			<simpleType>
				<restriction base="string">
					<maxLength value="35"/>
				</restriction>
			</simpleType>
		</attribute>
		<attribute name="status" use="optional">
			<simpleType>
				<restriction base="string">
					<enumeration value="Original"/>
					<enumeration value="Copy"/>
				</restriction>
			</simpleType>
		</attribute>
		<attribute name="type" use="optional">
			<simpleType>
				<restriction base="string">
					<maxLength value="15"/>
				</restriction>
			</simpleType>
		</attribute>
		<attribute name="language" use="optional">
			<simpleType>
				<restriction base="string">
					<maxLength value="2"/>
				</restriction>
			</simpleType>
		</attribute>
	</complexType>
	<complexType name="exchangeRateType">
		<attribute name="rate" type="float" use="required"/>
		<attribute name="sourceCurrency" use="required">
			<simpleType>
				<restriction base="string">
					<maxLength value="3"/>
				</restriction>
			</simpleType>
		</attribute>
	</complexType>
	<simpleType name="languageIdentifierType">
		<annotation>
			<documentation>For programmatic management of language, use language codes specified by ISO 639-1988.</documentation>
		</annotation>
		<restriction base="string">
			<maxLength value="2"/>
		</restriction>
	</simpleType>
	<simpleType name="locationType">
		<annotation>
			<documentation>Describes a location where items might be shipped or received</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="distributionCenter"/>
			<enumeration value="endConsumer"/>
			<enumeration value="retailStore"/>
			<enumeration value="warehouse"/>
		</restriction>
	</simpleType>
	<complexType name="markForLocationType">
		<attribute name="quantity" type="float" use="required"/>
		<attribute name="markForID" type="string" use="required"/>
	</complexType>
	<simpleType name="monetaryAmountType">
		<restriction base="decimal">
			<fractionDigits value="4"/>
		</restriction>
	</simpleType>
	<simpleType name="noteType">
		<restriction base="string">
			<maxLength value="80"/>
		</restriction>
	</simpleType>
	<complexType name="pieceIdentificationNumberType">
		<annotation>
			<documentation>A piece identification number uniquely identifes a single piece in a transaction.  When used, there is normally one PIN 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>
		<choice>
			<element name="pieceIdentificationNumber" type="string" maxOccurs="unbounded">
				<annotation>
					<documentation>One or more individual piece identification numbers.  The data type is string to accommodate alphanumeric characters.</documentation>
				</annotation>
			</element>
			<element name="pieceIdentificationNumberRange" maxOccurs="unbounded">
				<annotation>
					<documentation>One or more ranges of contiguous numbers.</documentation>
				</annotation>
				<complexType>
					<attribute name="firstNumber" type="string" use="required"/>
					<attribute name="lastNumber" type="string" use="required"/>
				</complexType>
			</element>
		</choice>
		<attribute name="assignment" use="optional">
			<simpleType>
				<restriction base="string">
					<enumeration value="BuyerAssigned"/>
					<enumeration value="SellerAssigned"/>
				</restriction>
			</simpleType>
		</attribute>
	</complexType>
	<complexType name="quantityType">
		<annotation>
			<documentation>Floating point quantity type with unit of measure.  Replaces measurementType (v1.1).</documentation>
		</annotation>
		<attribute name="unitOfMeasure" type="fnBase:unitOfMeasureType" use="required">
			<annotation>
				<documentation>Unit of measure implied by the value field</documentation>
			</annotation>
		</attribute>
		<attribute name="value" type="float" use="required">
			<annotation>
				<documentation>The actual size value</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="referenceNumberType">
		<annotation>
			<documentation>Generic container for reference numbers (assumed to be identifying documents of various types) and an associated document date.  Note: this element should not be used to hold a unique transaction number for the current transaction (the so-called "primary key"); that number is normally found in the "id" attribute of the "document" element.</documentation>
		</annotation>
		<attribute name="referenceDocumentDate" type="date" use="optional"/>
		<attribute name="referenceNumberValue" type="string" use="required"/>
		<attribute name="referenceNumberQualifier" use="required">
			<simpleType>
				<restriction base="string">
					<enumeration value="AllowanceNumber"/>
					<enumeration value="BuyerSalesOrderNumber"/>
					<enumeration value="BuyerSalesOrderLineNumber"/>
					<enumeration value="BillOfLadingNumber"/>
					<enumeration value="CarrierReferenceNumber"/>
					<enumeration value="ChargebackNumber"/>
					<enumeration value="DepartmentNumber"/>
					<enumeration value="DyeLot"/>
					<enumeration value="InvoiceNumber"/>
					<enumeration value="ParentInvoiceNumber"/>
					<enumeration value="PurchaseOrderNumber"/>
					<enumeration value="PurchaseOrderLineNumber"/>
					<enumeration value="PurchaseOrderAcknowledgementNumber"/>
					<enumeration value="ReferenceInvoiceNumber"/>
					<enumeration value="SellerSalesOrderNumber"/>
					<enumeration value="SellerSalesOrderLineNumber"/>
					<enumeration value="SerialNumber"/>
					<enumeration value="ShipNoticeNumber"/>
					<enumeration value="TrailerNumber"/>
					<enumeration value="WaybillNumber"/>
				</restriction>
			</simpleType>
		</attribute>
	</complexType>
	<complexType name="shipDateType">
		<annotation>
			<documentation>Specifies an actual or estimated ship date.</documentation>
		</annotation>
		<attribute name="shipDateQualifier" use="required">
			<simpleType>
				<restriction base="string">
					<enumeration value="Actual"/>
					<enumeration value="Estimated"/>
				</restriction>
			</simpleType>
		</attribute>
		<attribute name="shipDate" type="date" use="required"/>
	</complexType>
	<complexType name="shipToLocationType">
		<annotation>
			<documentation>Specifies a quantity of items to ship, a location to ship to, and various shipment dates. The location is defined by a reference to a shipToParty element.</documentation>
		</annotation>
		<attribute name="quantity" type="float" use="required">
			<annotation>
				<documentation>Quantity to be shipped to this location.</documentation>
			</annotation>
		</attribute>
		<attribute name="shipToID" type="string" use="required">
			<annotation>
				<documentation>ID of shipToType element within PO header that corresponds to this shipTo location.</documentation>
			</annotation>
		</attribute>
		<attribute name="shipDate" type="date" use="optional"/>
		<attribute name="doNotShipBeforeDate" type="date" use="optional"/>
		<attribute name="doNotShipAfterDate" type="date" use="optional"/>
		<attribute name="arrivalDate" type="date" use="optional"/>
		<attribute name="cancelDate" type="date" use="optional"/>
	</complexType>
	<complexType name="systemReferenceType">
		<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>
		<sequence>
			<element name="systemReferenceDescription" type="string">
				<annotation>
					<documentation>Identifies the data content in systemReferenceValue in a way that facilitates automated processing by the receiving party's computer system.  For example, if the receiving party's computer system requires an indicator of how the receiving system is to record the financial impact of the transaction, it might use a system reference description of "FiscalBookIdentifier"</documentation>
				</annotation>
			</element>
			<element name="systemReferenceValue" type="string">
				<annotation>
					<documentation>The value that corresponds to the accompanying system reference description.  For example, a value corresponding to a system reference description of "FiscalBookIdentifier" might be "2002"</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="termsType">
		<annotation>
			<documentation>Describes terms under which payment is made and discount may be taken.</documentation>
		</annotation>
		<sequence>
			<sequence minOccurs="0">
				<element name="discountAmount" type="fnBase:monetaryAmountType">
					<annotation>
						<documentation>Discount amount in the currency of the invoice (identified by the currencyIdentifier element).</documentation>
					</annotation>
				</element>
				<element name="discountPercent" type="decimal" minOccurs="0">
					<annotation>
						<documentation>Discount percent is optional because it is considered to be informational only.</documentation>
					</annotation>
				</element>
				<choice minOccurs="0">
					<element name="discountDescribedDate">
						<annotation>
							<documentation>Currently the only value this element may hold is "EOM"  It may be extended to accommodate any date that can be more precisely  described by a phrase or abbreviation than by any of the other choices in this group.</documentation>
						</annotation>
						<complexType>
							<attribute name="description" use="required">
								<simpleType>
									<restriction base="string">
										<enumeration value="EOM"/>
									</restriction>
								</simpleType>
							</attribute>
						</complexType>
					</element>
					<element name="discountDueDate" type="date">
						<annotation>
							<documentation>The date by which payment is due if discount is to be earned.</documentation>
						</annotation>
					</element>
					<element name="discountDueDayOfMonth">
						<annotation>
							<documentation>The day of the month (e.g., 21) by which payment is due if discount is to be earned.  The next occurence of this day (whether this month or next) is the target date.</documentation>
						</annotation>
						<simpleType>
							<restriction base="integer">
								<minInclusive value="1"/>
								<maxInclusive value="31"/>
							</restriction>
						</simpleType>
					</element>
					<sequence>
						<element name="discountDueDays">
							<annotation>
								<documentation>Payment must be received by the discount basis date plus this many days if the discount is to be earned.</documentation>
							</annotation>
							<simpleType>
								<restriction base="integer">
									<minInclusive value="1"/>
								</restriction>
							</simpleType>
						</element>
						<element name="discountBasisDate" type="fnBase:termsBasisDateType"/>
					</sequence>
				</choice>
			</sequence>
			<element name="termsDescription" type="fnBase:noteType" minOccurs="0">
				<annotation>
					<documentation>A human-readable description of the terms, e.g., "2% in 10 days, net 30 days"</documentation>
				</annotation>
			</element>
			<element name="methodOfPayment" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>Methods of payment acceptable to the seller.</documentation>
				</annotation>
				<complexType>
					<attribute name="description" use="required">
						<simpleType>
							<restriction base="string">
								<enumeration value="Cash"/>
								<enumeration value="Check"/>
								<enumeration value="CreditCard"/>
								<enumeration value="EFT"/>
								<enumeration value="LOC"/>
								<enumeration value="NoCharge"/>
								<enumeration value="Other"/>
							</restriction>
						</simpleType>
					</attribute>
				</complexType>
			</element>
			<element name="timeOfPayment" minOccurs="0">
				<annotation>
					<documentation>When the payment is due.  Values are commonly used terms but really correlate to before (CBD), on (COD), or after delivery (Credit), or never (NoCharge).</documentation>
				</annotation>
				<complexType>
					<choice minOccurs="0">
						<annotation>
							<documentation>A due date should not be used unless timeOfPayment is "Credit".</documentation>
						</annotation>
						<element name="netDuedescribedDate">
							<annotation>
								<documentation>Currently the only value this element may hold is "EOM"  It may be extended to accommodate any date that can be more precisely  described by a phrase or abbreviation than by any of the other choices in this group.</documentation>
							</annotation>
							<complexType>
								<attribute name="description" use="required">
									<simpleType>
										<restriction base="string">
											<enumeration value="EOM"/>
										</restriction>
									</simpleType>
								</attribute>
							</complexType>
						</element>
						<element name="netDueDate" type="date">
							<annotation>
								<documentation>The date by which payment is due.</documentation>
							</annotation>
						</element>
						<element name="netDueDayOfMonth">
							<annotation>
								<documentation>The day of the month (e.g., 6) by which payment is due.  The next occurence of this day (whether this month or next) is the target date.</documentation>
							</annotation>
							<simpleType>
								<restriction base="integer">
									<minInclusive value="1"/>
									<maxInclusive value="31"/>
								</restriction>
							</simpleType>
						</element>
						<sequence>
							<element name="netDueDays">
								<annotation>
									<documentation>Payment must be eceived by the net basis date plus this many days.</documentation>
								</annotation>
								<simpleType>
									<restriction base="integer">
										<minInclusive value="1"/>
									</restriction>
								</simpleType>
							</element>
							<element name="netBasisDate" type="fnBase:termsBasisDateType"/>
						</sequence>
					</choice>
					<attribute name="description" use="required">
						<simpleType>
							<restriction base="string">
								<enumeration value="COD"/>
								<enumeration value="CBD"/>
								<enumeration value="NoCharge"/>
								<enumeration value="Credit"/>
							</restriction>
						</simpleType>
					</attribute>
				</complexType>
			</element>
		</sequence>
	</complexType>
	<complexType name="termsBasisDateType">
		<annotation>
			<documentation>Used by termsType.</documentation>
		</annotation>
		<sequence>
			<element name="termsBasisDateQualifier" type="fnBase:termsBasisDateQualifierType"/>
			<element name="termsBasisDateValue" type="date">
				<annotation>
					<documentation>Format is date (CCYY-MM-DD).</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<simpleType name="termsBasisDateQualifierType">
		<annotation>
			<documentation>Used by termsBasisDateType.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="ShipDate"/>
			<enumeration value="DeliveryDate"/>
			<enumeration value="InvoiceDate"/>
			<enumeration value="SpecifiedDate"/>
			<enumeration value="InvoiceReceiptDate"/>
			<enumeration value="AnticipatedDeliveryDate"/>
			<enumeration value="EffectiveDate"/>
			<enumeration value="InvoiceTransmissionDate"/>
			<enumeration value="InvoiceVerificationDate"/>
			<enumeration value="PurchaseOrderDate"/>
			<enumeration value="MutuallyDefined"/>
		</restriction>
	</simpleType>
	<element name="transactionDate" type="dateTime">
		<annotation>
			<documentation>The date the transaction is created by the sender.  Conforms to ISO-8601 format: CCYY-MMDDTHH:MM:SS</documentation>
		</annotation>
	</element>
	<simpleType name="unitOfMeasureType">
		<restriction base="string">
			<enumeration value="Each"/>
			<enumeration value="Gross"/>
			<enumeration value="PerThousand"/>
			<enumeration value="Pair"/>
			<enumeration value="Pieces"/>
			<enumeration value="Boxes"/>
			<enumeration value="Cartons"/>
			<enumeration value="Case"/>
			<enumeration value="Crates"/>
			<enumeration value="Kit"/>
			<enumeration value="Pack"/>
			<enumeration value="Pallets"/>
			<enumeration value="Roll"/>
			<enumeration value="Spool"/>
			<enumeration value="Centimeters"/>
			<enumeration value="Inches"/>
			<enumeration value="Feet"/>
			<enumeration value="Yards"/>
			<enumeration value="Meters"/>
			<enumeration value="SquareFeet"/>
			<enumeration value="SquareYards"/>
			<enumeration value="SquareMeters"/>
			<enumeration value="BoardFeet"/>
			<enumeration value="RunningFeet"/>
			<enumeration value="RunningYards"/>
			<enumeration value="RunningMeters"/>
			<enumeration value="CubicCentimeters"/>
			<enumeration value="CubicInches"/>
			<enumeration value="CubicFeet"/>
			<enumeration value="CubicYards"/>
			<enumeration value="CubicMeters"/>
			<enumeration value="Ounces"/>
			<enumeration value="Pounds"/>
			<enumeration value="Kilograms"/>
			<enumeration value="Tons"/>
			<enumeration value="Liters"/>
			<enumeration value="Gallons"/>
			<enumeration value="Hours"/>
			<enumeration value="CalendarDays"/>
			<enumeration value="WorkingDays"/>
		</restriction>
	</simpleType>
</schema>
