<?xml version="1.0" encoding="UTF-8"?>
<!-- Mit XMLSpy v2011 rel. 2 (x64) (http://www.altova.com) von STUZZA (STUZZA) bearbeitet -->
<!-- edited with XMLSpy v2015 sp2 (x64) (http://www.altova.com) by Helmut Biely (self employed) -->
<xs:schema xmlns="http://www.stuzza.at/MBS/V7.0.04/PIN" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.stuzza.at/MBS/V7.0.04/PIN" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
	<!--  ********************************************************************************-->
	<!-- ***     Änderungen gegenüber Version 6001                                 ***-->
	<!-- ***     o   Kommentar zu RefCd ergänzt (White Spaces)               ***-->
	<!--  ********************************************************************************-->
	<!-- ***     Änderungen gegenüber Version 7.0.01                               ***-->
	<!-- ***     o   Papier-Tan entfernt                                                          ***-->
	<!-- ***     o   MsgId MaxLen = 35                                                          ***-->
	<!--  ********************************************************************************-->
	<!--  ***  Änderung gegenüber Version  7.0.02                                    ***-->
	<!--  ***  o keine - ausschließlich Anpassung der Version auf 7.0.04  ***-->
	<!--  ********************************************************************************-->
	<xs:attribute name="versiondate" fixed="08.04.2016">
		<xs:annotation>
			<xs:documentation xml:lang="de">Version dieses Schemas</xs:documentation>
		</xs:annotation>
	</xs:attribute>
	<xs:element name="Document" type="Document">
		<xs:annotation>
			<xs:documentation>Rootelement</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CrdTANType">
		<xs:sequence>
			<xs:element name="TANVal">
				<xs:annotation>
					<xs:documentation>Wert der TAN, wie am Token angezeigt.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:length value="7"/>
						<xs:pattern value="[0-9]{7}"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="TmpltNb">
				<xs:annotation>
					<xs:documentation>Nummer des verwendeten Templates</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:totalDigits value="3"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Document">
		<xs:sequence>
			<xs:element name="MBS_Pin_Change_Request" type="MBS_Pin_Change_RequestType">
				<xs:annotation>
					<xs:documentation>PIN Änderungs Nachricht 

Ist auf Grund von Kommunikationsproblemen oder Problemen am BR eine Statusantwort auf die PIN Änderungsnachricht am Client nicht eingetroffen, so ist die PIN-Änderung inhaltlich unverändert, aber mit kodierten ReSndInd neuerlich an den BR zu übertragen. Wird darauf ein positiver Status 760 empfangen, wurde die ursprüngliche PIN-Änderung offensichtlich nicht durchgeführt.

Achtung: Eine PIN Änderung ist getrennt von allen anderen Nachrichten an den BR zu senden. Siehe Einführung Kapitel  6.2.2.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Dspsr">
		<xs:sequence>
			<xs:element name="DspsrNm">
				<xs:annotation>
					<xs:documentation>Name des zeichnenden Verfügers.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="Max35Text"/>
				</xs:simpleType>
			</xs:element>
			<xs:element name="DspsrNbr" type="DspsrNbType">
				<xs:annotation>
					<xs:documentation>Zugehörige Verfügernummer </xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="DspsrNbType">
		<xs:restriction base="Max17Text">
			<xs:pattern value="[A-Z0-9\-]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="GrpHdrType">
		<xs:sequence>
			<xs:element name="MsgId" type="MsgIdType">
				<xs:annotation>
					<xs:documentation>Eindeutige Identifikation der Nachricht. Aufbau: Stellen 1 bis 16 Timestamp im Format  JJJJMMTTHHMMSShh, 4   Zufallszeichen zwingend, bis zu 15 weitere Zufallszeichen optional.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="ISODateTime">
		<xs:restriction base="xs:dateTime"/>
	</xs:simpleType>
	<xs:simpleType name="Max17Text">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="17"/>
			<xs:whiteSpace value="collapse"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Max35Text">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="35"/>
			<xs:whiteSpace value="collapse"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MobTanType">
		<xs:restriction base="xs:string">
			<xs:minLength value="5"/>
			<xs:maxLength value="7"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="MsgBodyType">
		<xs:sequence>
			<xs:element name="Refs" type="RefsType"/>
			<xs:element name="PINs" type="PINsType">
				<xs:annotation>
					<xs:documentation>Bezüglich Verschlüsselungsalgorithmus 
siehe MBS Einführung Kapitel 6.2.2.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="MsgIdType">
		<xs:restriction base="xs:string">
			<xs:minLength value="20"/>
			<xs:maxLength value="35"/>
			<xs:whiteSpace value="collapse"/>
			<xs:pattern value="2[0-9]{15}[A-Z0-9]{4,}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="MBS_Pin_Change_RequestType">
		<xs:sequence>
			<xs:element name="GrpHdr" type="GrpHdrType"/>
			<xs:element name="ReSndInd" type="ReSndInd" default="false" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Nur zu verwenden im Fall eines Resend einer PIN-Änderungsnachricht, wenn der Status der ursprünglichen PIN-Änderung dem Client nicht bekannt ist. Mit einer true-Kodierung wird dem BR signalisiert, dass im Fall einer bereits erfolgten Durchführung der ursprünglichen PIN Änderung kein negativer Status mit Erhöhung des Fehlzählers erfolgen soll.

Wurde die PIN Änderung bereits durchgeführt ist mit Status 767 zu antworten, andernfalls ist die PIN-Änderung zu verarbeiten.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="MsgBody" type="MsgBodyType">
				<xs:annotation>
					<xs:documentation>An Stelle eines EBZ werden in MBS V.6.0. alle relevanten Informationen in  der PIN-Änderungsnachricht selbst zusammengefasst</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="RefCd" type="RefCdType">
				<xs:annotation>
					<xs:documentation>Hier sind vom Client die letzten (rechten) 32 Bit des Hashwertes über den 'MsgBody' in dezimaler Darstellung einzustellen (zehn numerische Stellen, Darstellung im Style-Sheet in zwei Fünfer-Gruppen). Für die Ermittlung des Hashwertes sind die Feldinhalte des 'MsgBody'  einfach ohne Trennzeichen aneinander zu ketten und als String dargestellt entsprechend sha256 zu verarbeiten. Eventuell vorrhandene White Spaces sind vor Erstellung des Hashwertes zu entfernen. Padding ist entsprechend der Definitionen von sha256 durchzuführen.
	
Im Fall einer mTAN ist der Wert in der SMS zu Vergleichszwecken anzuzeigen. Im Fall einer cardTAN ist der Wert am cardTAN Token zu erfassen.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="XMLDSig">
				<xs:annotation>
					<xs:documentation>Die XMLDSig erstreckt sich über alle Felder von MsgBody bis AddtlSgntrInf.

Der Aufbau der XMLDSig richtet sich nach der Art der Autorisierung; mittels digitaler Signatur oder TAN.

Soll die  Autorisierung mittels mTAN erfolgen, so ist  der Hashwert (sha256) der PIN Änderungsnachricht in die  mTAN-Anforderung einzufügen. Siehe Schema der mTAN Request Message.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="AddtlSgntrInf" type="SgntrInfType">
							<xs:annotation>
								<xs:documentation>Zusatzinformationen zur Signatur, die mit zu signieren sind.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="ds:Signature"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="PINRefType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="EB-PIN"/>
			<xs:enumeration value="MBS-PIN"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="PINType">
		<xs:annotation>
			<xs:documentation>hexBinary 16 für die Aufnahme von 32 hexadezimalen Stellen</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:hexBinary">
			<xs:length value="16"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="PINsType">
		<xs:sequence>
			<xs:element name="NewPIN" type="PINType">
				<xs:annotation>
					<xs:documentation>Neue PIN verschlüsselt mit der alten PIN
(32 hexadezimale Stellen)</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="OldPIN" type="PINType">
				<xs:annotation>
					<xs:documentation>Alte PIN verschlüsselt mit der neuen PIN
(32 hexadezimale Stellen)</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="PINRef" type="PINRefType" use="required">
			<xs:annotation>
				<xs:documentation>Definiert die Art der PIN, auf die sich die PIN Änderung bezieht; es ist zwischen EB-PIN und MBS-PIN zu unterscheiden.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:simpleType name="RefCdType">
		<xs:restriction base="xs:string">
			<xs:length value="10"/>
			<xs:pattern value="\d*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="RefsType">
		<xs:sequence>
			<xs:element name="DspsrNb" type="DspsrNbType">
				<xs:annotation>
					<xs:documentation>Verfügernummer des anforderndenen Verfügers.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="TmeStmp" type="ISODateTime">
				<xs:annotation>
					<xs:documentation>Zeitpunkt der PIN-Änderung.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="ReSndInd">
		<xs:restriction base="xs:boolean"/>
	</xs:simpleType>
	<xs:complexType name="SgntrInfType">
		<xs:sequence>
			<xs:element name="Dspsr" type="Dspsr">
				<xs:annotation>
					<xs:documentation>Definiert den zeichnenden Verfüger</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:choice minOccurs="0">
				<xs:annotation>
					<xs:documentation>Nicht zu verwenden bei qualifizierter Signatur . 

Verpflichtend bei Aufträgen mit TAN-Autorisierung. Je nach TAN Verfahren ist hier die TAN ggf. mit Zusatzinformationen einzutragen.</xs:documentation>
				</xs:annotation>
				<xs:element name="CrdTan" type="CrdTANType"/>
				<xs:element name="MobTan" type="MobTanType">
					<xs:annotation>
						<xs:documentation>Wert der TAN, wie in der SMS angezeigt.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
