<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="http://reference.e-government.gv.at/namespace/zustellung/mzs/persondata#" xmlns="http://reference.e-government.gv.at/namespace/zustellung/mzs/app2mzs#" targetNamespace="http://reference.e-government.gv.at/namespace/zustellung/mzs/app2mzs#" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:msg="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" xmlns:tnvz="http://reference.e-government.gv.at/namespace/zustellung/tnvz/phase2/20181206#">
	<xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/mzs/persondata#" schemaLocation="mzs_mypersondata_en.xsd"/>
	<xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#" schemaLocation="../zusemsg/zuse_p2.xsd"/>
	<xs:import namespace="http://reference.e-government.gv.at/namespace/zustellung/tnvz/phase2/20181206#" schemaLocation="../zusetnvz/zusetnvz_p2.xsd"/>

	<xs:element name="DeliveryRequest" type="DeliveryRequestType"/>
	<xs:complexType name="DeliveryRequestType">
		<xs:sequence>
			<xs:element name="Sender">
				<xs:complexType>
					<xs:sequence>
						<xs:choice>
							<xs:element ref="p:CorporateBody"/>
							<xs:element ref="msg:SenderProfile"/>
						</xs:choice>
						<xs:choice>
							<xs:element name="WebserviceURL">
								<xs:complexType>
									<xs:simpleContent>
										<xs:extension base="xs:anyURI">
											<xs:attribute name="AlternativeEmail" type="xs:anyURI"/>
											<xs:attribute name="Type" type="xs:string"/>
										</xs:extension>
									</xs:simpleContent>
								</xs:complexType>
							</xs:element>
							<xs:element name="EMailAddress">
								<xs:complexType>
									<xs:simpleContent>
										<xs:extension base="xs:string">
											<xs:attribute name="Type" type="xs:string"/>
										</xs:extension>
									</xs:simpleContent>
								</xs:complexType>
							</xs:element>
						</xs:choice>
						<xs:element ref="msg:Logo" minOccurs="0"/>
						<xs:element ref="msg:AdditionalCriteria" minOccurs="0"/>
					</xs:sequence>
					<xs:attribute name="Id" type="xs:ID" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="Receiver">
				<xs:complexType>
					<xs:sequence>
						<xs:choice>
							<xs:element name="Identification" type="p:IdentificationType" />
							<xs:sequence>
								<xs:element ref="p:Person"/>
								<xs:element ref="tnvz:AustrianAddressesOnly" minOccurs="0"/>
								<xs:element ref="p:Address" minOccurs="0" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:choice>
						<xs:element ref="msg:AdditionalCriteria" minOccurs="0"/>
						<xs:element ref="msg:PreAdviceNote" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element ref="msg:MetaData" />
			<xs:element name="Payload" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:choice>
							<xs:element name="BinaryDocument" type="xs:base64Binary" />
							<xs:element name="DocumentReference" type="xs:anyURI" />
						</xs:choice>
						<xs:element name="FileName" type="msg:FileNameType"/>
						<xs:element name="MIMEType" type="msg:token256"/>
						<xs:element ref="msg:CheckSum"/>
						<xs:element ref="msg:DocumentClass" minOccurs="0" />
						<xs:element name="Size" type="xs:nonNegativeInteger">
							<xs:annotation>
								<xs:documentation>Größe in Bytes</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element ref="Config" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="Config" type="ConfigType"/>
	<xs:complexType name="ConfigType">
		<xs:sequence>
			<xs:element name="ProfileID" type="xs:token" minOccurs="0" />
			<xs:element name="ServiceTimeout" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="PerformQueryPersonRequest" type="xs:boolean" minOccurs="0" />
			<xs:element ref="MSGClient" minOccurs="0" />
			<xs:element ref="TNVZClient" minOccurs="0" />
			<xs:element ref="MsgResponseSinks" minOccurs="0" />
		</xs:sequence>
	</xs:complexType>
	<xs:element name="MSGClient" type="ClientType" />
	<xs:element name="TNVZClient" type="ClientType" />
	<xs:complexType name="ClientType">
		<xs:sequence>
			<xs:element name="URL" type="xs:anyURI" />
			<xs:element ref="SSL" minOccurs="0"/>
			<xs:element name="ConnectionTimeout" minOccurs="0" type="xs:nonNegativeInteger" />
			<xs:element name="ReceiveTimeout" minOccurs="0" type="xs:nonNegativeInteger" />
			<xs:element ref="CustomHTTPHeader" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SSL" type="SSLType" />
	<xs:complexType name="SSLType">
		<xs:sequence>
			<xs:element name="TrustAll" minOccurs="0" type="xs:boolean" />
			<xs:element name="LaxHostNameVerification" minOccurs="0" type="xs:boolean" />
			<xs:element ref="KeyStore" minOccurs="0" />
			<xs:element ref="TrustStore" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="TrustStore" type="KeyStoreType" />
	<xs:element name="KeyStore" type="KeyStoreType" />
	<xs:complexType name="KeyStoreType">
		<xs:sequence>
			<xs:element name="FileName" type="xs:string" minOccurs="0"/>
			<xs:element name="Password" type="xs:string" minOccurs="0"/>
			<xs:element name="FileType" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="CustomHTTPHeader" type="CustomHTTPHeaderType"/>
	<xs:complexType name="CustomHTTPHeaderType">
		<xs:sequence>
			<xs:element name="Name" type="xs:string" />
			<xs:element name="Value" type="xs:string" />
		</xs:sequence>
	</xs:complexType>
	<xs:element name="MsgResponseSinks" type="MsgResponseSinksType"/>
	<xs:complexType name="MsgResponseSinksType">
		<xs:sequence>
			<xs:element ref="SaveResponseToFile" minOccurs="0" />
			<xs:element name="LogResponse" type="xs:boolean" minOccurs="0" />
			<xs:element ref="ForwardResponseToService" minOccurs="0" />
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SaveResponseToFile" type="SaveResponseToFileType" />
	<xs:complexType name="SaveResponseToFileType">
		<xs:sequence>
			<xs:element name="Active" type="xs:boolean" minOccurs="0"/>
			<xs:element name="Path" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ForwardResponseToService" type="ForwardResponseToServiceType" />
	<xs:complexType name="ForwardResponseToServiceType">
		<xs:sequence>
			<xs:element name="Active" type="xs:boolean" minOccurs="0"/>
			<xs:element name="MzsClient" type="ClientType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="DeliveryResponse" type="DeliveryResponseType"/>
  <xs:element name="DeliveryRequestStatus" type="DeliveryResponseType"/>
	<xs:complexType name="DeliveryResponseType">
		<xs:choice>
			<xs:element ref="PartialSuccess"/>
			<xs:element ref="Success"/>
			<xs:element ref="Error"/>
		</xs:choice>
	</xs:complexType>
	<xs:element name="DeliveryNotification" type="DeliveryNotificationType">
		<xs:annotation>
			<xs:documentation>asynchronous communication moazs2app</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="DeliveryNotificationType">
		<xs:sequence>
			<xs:choice>
				<xs:element ref="Success"/>
				<xs:element ref="Error"/>
			</xs:choice>
			<xs:element ref="msg:SenderDetails"/>
			<xs:element ref="msg:ReceiverDetails"/>
			<xs:element ref="msg:User" minOccurs="0" />
			<xs:element name="AdditionalFormat" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:base64Binary">
							<xs:attribute name="Type" type="xs:token" use="required"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element ref="msg:NotificationsPerformed" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
  <xs:element name="DeliveryRequestStatusACK" type="DeliveryNotificationACKType" />
	<xs:element name="DeliveryNotificationACK" type="DeliveryNotificationACKType">
		<xs:annotation>
			<xs:documentation>Webservice Response of ZSDeliveryNotification</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="DeliveryNotificationACKType">
		<xs:sequence>
			<xs:element ref="AppDeliveryID"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="AppDeliveryID" nillable="false">
		<xs:simpleType>
			<xs:restriction base="xs:token">
				<xs:minLength value="1"/>
				<xs:maxLength value="255"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<xs:element name="Success" type="SuccessType">
		<xs:annotation>
			<xs:documentation>Zustellstück was successfully delivered to MOA-ZS</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="SuccessType">
		<xs:complexContent>
			<xs:extension base="MessageType">
				<xs:sequence>
					<xs:element ref="msg:DeliveryTimestamp"/>
					<xs:element ref="msg:RelayedViaERV" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PartialSuccess" type="PartialSuccessType">
		<xs:annotation>
			<xs:documentation>Delivery Information was successfully delivered to MOA-ZS, Attachements will be loaded</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="PartialSuccessType">
		<xs:complexContent>
			<xs:extension base="MessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Error" type="ErrorType">
		<xs:annotation>
			<xs:documentation>Delivery to MOA-ZS failed, or there was an error in processing</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ErrorType">
		<xs:complexContent>
			<xs:extension base="MessageType">
				<xs:sequence>
					<xs:element name="Code" type="xs:integer"/>
					<xs:element name="Text" type="xs:string"/>
					<xs:element ref="msg:PreAdviceNoteSent" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="MessageType">
		<xs:annotation>
			<xs:documentation>abstract message type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="AppDeliveryID"/>
			<xs:element ref="msg:DeliverySystem"/>
			<xs:element ref="msg:ZSDeliveryID" />
			<xs:element ref="msg:GZ" minOccurs="0"/>
			<xs:element name="SignedDeliveryRequestStatus" type="xs:base64Binary" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>

</xs:schema>