<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.bmd.at/xsd/ORDRSP/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/ORDRSP/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/ORDRSP/2.0/ORDRSP.xsd
        </xs:documentation>
	</xs:annotation>
	<!-- === Root  Element === -->
	<xs:element name="Ordrsp" type="OrdrspType"/>
	<!-- === Element Declarations === -->
	<xs:element name="MessageHeader" type="bmd:MessageHeaderType"/>
	<xs:element name="OrderDate" type="xs:date"/>
	<xs:element name="OrderResponseDate" type="xs:date"/>
	<xs:element name="DeliveryDateRequested" type="xs:date"/>
	<xs:element name="DeliveryDateConfirmed" type="xs:date"/>
	<xs:element name="ModeOfTransport" type="bmd:ModeOfTransportType"/>
	<xs:element name="ProjectNo" type="xs:string"/>
	<xs:element name="ProjectName" type="xs:string"/>
	<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="CustomersArticleNo" type="xs:string" nillable="true"/>
	<xs:element name="DistributorsArticleNo" type="xs:string"/>
	<xs:element name="EANCode" type="xs:string"/>
	<xs:element name="DistributorsArticleName" type="xs:string"/>
	<xs:element name="OrderReferenceSupplier" type="xs:string"/>
	<xs:element name="OrderReferenceCustomer" type="xs:string"/>
	<xs:element name="Agent" type="bmd:ContactPersonType"/>
	<xs:element name="InfoFromDistributorToCustomer" type="xs:string"/>
	<xs:element name="Quantity" type="bmd:UnitType"/>
	<xs:element name="Weight" type="bmd:Decimal4Type"/>
	<xs:element name="ItemList" type="ItemListType"/>
	<xs:element name="ListLineItem" type="ListLineItemType"/>
	<xs:element name="Price" type="bmd:PriceType"/>
	<xs:element name="AmountInclDues" type="bmd:AmountType"/>
	<xs:element name="ExtraCharge" type="bmd:AmountType"/>
	<xs:element name="RebateAmount" type="bmd:AmountType"/>
	<xs:element name="GrossAmount" type="bmd:AmountType"/>
	<xs:element name="NetAmount" type="bmd:AmountType"/>
	<xs:element name="OrderPosNumber" type="xs:int"/>
	<xs:element name="OrderPosReferenceCustomer" type="xs:string"/>
	<xs:element name="Shipper" type="bmd:ShipperType"/>
	<xs:element name="GrossPrice" type="xs:boolean"/>
	<xs:element name="ArticleDescription" type="bmd:TranslatableText"/>
	<xs:element name="ExtendedOrdRspFieldList" type="bmd:ExtendedFieldListType"/>
	<xs:element name="ExtendedItemFieldList" type="bmd:ExtendedFieldListType"/>
	<!-- === 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="Unit" type="xs:string"/>
	<!-- === Simple Types === -->
	<xs:simpleType name="DocumentTypeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Ordrsp"/>
			<xs:enumeration value="OrdCancel"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- === Complex Types === -->
	<!-- OrdrspType (order response): information about customer orders; in NTCS data can be exported for arbitrary sales orders ("Auftragsbestätigung") -->
	<xs:complexType name="OrdrspType">
		<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"/>
			<!-- supplier's/distributor's order reference -->
			<xs:element ref="OrderReferenceSupplier" minOccurs="0"/>
			<!-- order reference within the ordering party's information system -->
			<xs:element ref="OrderReferenceCustomer" minOccurs="0"/>
			<!-- the agent/contact person who issued the order -->
			<xs:element ref="Agent" minOccurs="0"/>
			<!-- info sent to the customer by the distributor -->
			<xs:element ref="InfoFromDistributorToCustomer" minOccurs="0"/>
			<!-- date of the order -->
			<xs:element ref="OrderDate" minOccurs="0"/>
			<!-- date of the order response -->
			<xs:element ref="OrderResponseDate" minOccurs="0"/>
			<!-- delivery date requested by the ordering party -->
			<xs:element ref="DeliveryDateRequested" minOccurs="0"/>
			<!-- delivery date confirmed by the distributor -->
			<xs:element ref="DeliveryDateConfirmed" minOccurs="0"/>
			<!-- information about the mode of transport -->
			<xs:element ref="ModeOfTransport" minOccurs="0"/>
			<!-- project number  -->
			<xs:element ref="ProjectNo" minOccurs="0"/>
			<!-- project name  -->
			<xs:element ref="ProjectName" minOccurs="0"/>
			<!-- indicates, of prices are gross prices (true) or net prices (false) -->
			<xs:element ref="GrossPrice" minOccurs="0"/>
			<!-- net amount of the order -->
			<xs:element ref="NetAmount" minOccurs="0"/>
			<!-- amount inclusive taxes -->
			<xs:element ref="GrossAmount" minOccurs="0"/>
			<!-- Additional Fieldlist -->
			<xs:element ref="ExtendedOrdRspFieldList" 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>
			<xs:choice maxOccurs="2">
				<!-- consecutive number of the order position (NTCS: ERFASSPOSLFDNR) -->
				<xs:element ref="OrderPosNumber"/>
				<xs:element ref="OrderPosReferenceCustomer"/>
			</xs:choice>
			<!-- 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="Quantity"/>
			<!-- Gross Weight of ListLineItem -->
			<xs:element ref="Weight" minOccurs="0"/>
			<!-- appointed price -->
			<xs:element ref="Price" minOccurs="0"/>
			<!-- appointed rebate -->
			<xs:element ref="RebateAmount" minOccurs="0"/>
			<!-- amount inclusive dues for the current order position -->
			<xs:element ref="AmountInclDues" minOccurs="0"/>
			<!-- extra charge -->
			<xs:element ref="ExtraCharge" minOccurs="0"/>
			<!-- date of delivery -->
			<xs:element ref="DeliveryDate" minOccurs="0"/>
			<!-- extended item field list -->
			<xs:element ref="ExtendedItemFieldList" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
