<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.bmd.at/xsd/OFFER/2.0/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:bmd="http://www.bmd.at/xsd/COMMONTYPES/2.0/" targetNamespace="http://www.bmd.at/xsd/OFFER/2.0/" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://www.bmd.at/xsd/COMMONTYPES/2.0/" schemaLocation="../../COMMONTYPES/2.0/COMMONTYPES.xsd"/>
	<xs:annotation>
		<xs:documentation>
            schema version: 2.0
            last update: 2026-08-26
            documentation: https://www.bmd.at/xsd/OFFER/2.0/OFFER.xsd
        </xs:documentation>
	</xs:annotation>
	<!-- === Root  Element === -->
	<xs:element name="Offer" type="OfferType"/>
	<!-- === Element Declarations === -->
	<xs:element name="MessageHeader" type="bmd:MessageHeaderType"/>
	<xs:element name="ProjectNo" type="xs:string"/>
	<xs:element name="ProjectName" type="xs:string"/>
	<xs:element name="OrderDate" type="xs:date"/>
	<xs:element name="OfferDate" type="xs:date"/>
	<xs:element name="DeliveryDateRequested" type="xs:date"/>
	<xs:element name="DeliveryDateConfirmed" type="xs:date"/>
	<xs:element name="DeliveryDate" type="xs:date"/>
	<xs:element name="Distributor" type="bmd:DistributorType"/>
	<xs:element name="OrderingParty" type="bmd:OrderingPartyType"/>
	<xs:element name="InvoiceRecipient" type="bmd:InvoiceRecipientType"/>
	<xs:element name="DeliveryRecipient" type="bmd:DeliveryRecipientType"/>
	<xs:element name="Shipper" type="bmd:ShipperType"/>
	<xs:element name="EANCode" type="xs:string"/>
	<xs:element name="CustomersArticleNo" type="xs:string"/>
	<xs:element name="DistributorsArticleNo" type="xs:string"/>
	<xs:element name="DistributorsArticleName" type="xs:string"/>
	<xs:element name="OfferReference" type="xs:string"/>
	<xs:element name="OfferPosNumber" type="xs:int"/>
	<xs:element name="OfferQuantity" type="bmd:UnitType"/>
	<xs:element name="ItemList" type="ItemListType"/>
	<xs:element name="ListLineItem" type="ListLineItemType"/>
	<xs:element name="Price" type="bmd:PriceType"/>
	<xs:element name="RebateAmount" type="bmd:AmountType"/>
	<xs:element name="GrossPrice" type="xs:boolean"/>
	<xs:element name="ArticleDescription" type="bmd:TranslatableText"/>
	<!-- === Attribute Deklarations === -->
	<xs:attribute name="DocumentTitle" type="xs:string"/>
	<xs:attribute name="DocumentType" type="DocumentTypeType"/>
	<xs:attribute name="GeneratingSystem" type="xs:string"/>
	<xs:attribute name="IdentificationType" type="xs:string"/>
	<xs:attribute name="Language" type="bmd:LanguageType"/>
	<xs:attribute name="TaxCode" type="xs:string"/>
	<xs:attribute name="Unit" type="xs:string"/>
	<!-- === Simple Types === -->
	<xs:simpleType name="DocumentTypeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Offer"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- === Complex Types === -->
	<!-- OfferType: information about offers to a customer ; in NTCS data can be exported for arbitrary customer offers ("Angebot") -->
	<xs:complexType name="OfferType">
		<xs:sequence>
			<xs:element ref="MessageHeader" minOccurs="0"/>
			<!-- information about the distributor -->
			<xs:element ref="Distributor" minOccurs="0"/>
			<!-- information about the party ordering some goods -->
			<xs:element ref="OrderingParty" minOccurs="0"/>
			<!-- invoice recipient stated by the ordering party -->
			<xs:element ref="InvoiceRecipient" minOccurs="0"/>
			<!-- delivery recipient stated by the ordering party -->
			<xs:element ref="DeliveryRecipient" minOccurs="0"/>
			<!-- shipper who is ordered for the sales order -->
			<xs:element ref="Shipper" minOccurs="0"/>
			<!-- unique reference of the offer within the sending information system -->
			<xs:element ref="OfferReference" minOccurs="0"/>
			<!-- date, when the customer has placed the order -->
			<xs:element ref="OrderDate"/>
			<!-- relict - please don't use this element anymore -->
			<!-- date, when the customer has placed the order -->
			<xs:element ref="OfferDate"/>
			<!-- delivery date confirmed by the distributor -->
			<xs:element ref="DeliveryDateConfirmed" minOccurs="0"/>
			<!-- reference to an associated project -->
			<!-- project number  -->
			<xs:element ref="ProjectNo" minOccurs="0"/>
			<!-- project name  -->
			<xs:element ref="ProjectName" minOccurs="0"/>
			<!-- indicates, if prices are gross prices (true) or net prices (false) -->
			<xs:element ref="GrossPrice" minOccurs="0"/>
			<!-- List of ordered items -->
			<xs:element ref="ItemList"/>
		</xs:sequence>
		<xs:attribute ref="GeneratingSystem" use="required"/>
		<xs:attribute ref="DocumentType" use="required"/>
		<xs:attribute ref="DocumentTitle" use="optional"/>
		<xs:attribute ref="Language" use="optional"/>
	</xs:complexType>
	<xs:complexType name="ItemListType">
		<xs:sequence>
			<xs:element ref="ListLineItem" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ListLineItemType">
		<xs:sequence>
			<!-- consecutive number of the offer position -->
			<xs:element ref="OfferPosNumber"/>
			<!-- at least one of CustomersArticleNo, DistributorsArticleNo or EANCode has to be declared -->
			<xs:choice maxOccurs="3">
				<!-- EAN Code of the ordered article -->
				<xs:element ref="EANCode"/>
				<!-- distributor's identification of the ordered article -->
				<xs:element ref="DistributorsArticleNo"/>
				<!-- customer's identification of the ordered article -->
				<xs:element ref="CustomersArticleNo"/>
			</xs:choice>
			<!-- customer's name of the ordered article -->
			<xs:element ref="DistributorsArticleName" minOccurs="0"/>
			<!-- desciption of the ordered article -->
			<xs:element ref="ArticleDescription" minOccurs="0" maxOccurs="unbounded"/>
			<!-- quantity of the article, ordered by the ordering party -->
			<xs:element ref="OfferQuantity"/>
			<!-- appointed price -->
			<xs:element ref="Price" minOccurs="0"/>
			<!-- appointed rebate -->
			<xs:element ref="RebateAmount" minOccurs="0"/>
			<!-- date of delivery -->
			<xs:element ref="DeliveryDate" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
