<?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#">
	<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: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="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>
			<xs:element ref="Server" minOccurs="0"></xs:element>
			<xs:element name="PerformQueryPersonRequest" type="xs:boolean" minOccurs="0" />
		</xs:sequence>
	</xs:complexType>
	<xs:element name="Server" type="ServerType" />
	<xs:complexType name="ServerType">
		<xs:sequence>
			<xs:element name="ZUSEUrlID" type="xs:anyURI" minOccurs="0"/>
			<xs:element name="X509" type="xs:base64Binary" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="DeliveryResponse" 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:choice>
			<xs:element ref="Success"/>
			<xs:element ref="Error"/>
		</xs:choice>
	</xs:complexType>
	<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>