<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xpassausweis="http://www.osci.de/xpassausweis2605"
           xmlns:bn-uq-g2g="http://xoev.de/schemata/basisnachricht/unqualified/g2g/1_1"
           xmlns:din91379="urn:xoev-de:kosit:xoev:datentyp:din-91379_2022-08"
           xmlns:xibehoerde="http://www.osci.de/xinneres/behoerde/7"
           xmlns:xink="http://www.osci.de/xinneres/basisnachricht/7"
           xmlns:xipa="http://www.osci.de/xinneres/postanschrift/5"
           targetNamespace="http://www.osci.de/xpassausweis2605"
           version="26.05"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">
   <xs:annotation>
      <xs:appinfo>
         <standard>
            <nameLang>XPassAusweis</nameLang>
            <nameKurz>XPassAusweis</nameKurz>
            <nameTechnisch>xpassausweis</nameTechnisch>
            <kennung>urn:xoev-de:kosit:standard:xinneres.xpassausweis</kennung>
            <beschreibung>XpassAusweis ist ein Standard für die Datenübermittlung von Pass-, Personalausweis und eID-Kartebehörden.</beschreibung>
         </standard>
         <versionStandard>
            <version>26.05</version>
            <versionXOEVProfil>3.0.3</versionXOEVProfil>
            <versionXOEVHandbuch>2.4</versionXOEVHandbuch>
            <versionXGenerator>3.0.1</versionXGenerator>
            <versionModellierungswerkzeug>19.0 SP 4</versionModellierungswerkzeug>
            <nameModellierungswerkzeug>MagicDraw</nameModellierungswerkzeug>
         </versionStandard>
      </xs:appinfo>
   </xs:annotation>
   <xs:include schemaLocation="xpassausweis-codes.xsd"/>
   <xs:import schemaLocation="http://www.osci.de/xinneres/basisnachricht/7/xinneres-basisnachricht.xsd"
              namespace="http://www.osci.de/xinneres/basisnachricht/7"/>
   <xs:import schemaLocation="http://www.osci.de/xinneres/behoerde/7/xinneres-behoerde.xsd"
              namespace="http://www.osci.de/xinneres/behoerde/7"/>
   <xs:import schemaLocation="http://www.osci.de/xinneres/postanschrift/5/xinneres-postanschrift.xsd"
              namespace="http://www.osci.de/xinneres/postanschrift/5"/>
   <xs:import schemaLocation="http://xoev.de/schemata/basisnachricht/unqualified/g2g/1_1/xoev-basisnachricht-unqualified-g2g_1.1.xsd"
              namespace="http://xoev.de/schemata/basisnachricht/unqualified/g2g/1_1"/>
   <xs:import schemaLocation="https://xoev.de/schemata/din/91379/2022-08/din-norm-91379-datatypes.xsd"
              namespace="urn:xoev-de:kosit:xoev:datentyp:din-91379_2022-08"/>
   <xs:complexType name="Behoerde">
      <xs:annotation>
         <xs:appinfo>
            <title>Sekundärdaten zur Behörde</title>
         </xs:appinfo>
         <xs:documentation>Dieses Element übermittelt Daten einer Behörde.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="behoerdenkennzeichen" type="xpassausweis:Behoerdenkennzeichen">
            <xs:annotation>
               <xs:documentation>Dieses Element enthält das Behördenkennzeichen (BHKZ) des Senders. Die BHKZ in diesem Element muss dem Dokumententyp (z. B. Pass, Personalausweis) des betroffenen Dokumentes entsprechen. Für den Fall, dass in der sendenden Behörde für einen Dokumententyp mehrere BHKZ existieren, ist eine aktive BHKZ zu verwenden.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="behoerdenbezeichnung" minOccurs="0" type="din91379:datatypeC">
            <xs:annotation>
               <xs:documentation>Dieses Element enthält die Bezeichnung der Behörde.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="behoerdenkennungDvdv" type="din91379:datatypeC">
            <xs:annotation>
               <xs:documentation>Dieses Element enthält die DVDV-Adressierung des Senders.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:simpleType name="Behoerdenkennzeichen">
      <xs:annotation>
         <xs:appinfo>
            <title>Behördenkennzeichen</title>
         </xs:appinfo>
         <xs:documentation>Das Behördenkennzeichen als String-Latin.</xs:documentation>
      </xs:annotation>
      <xs:restriction base="din91379:datatypeC">
         <xs:pattern value="[0-9A-Z]{4}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="GroesseType">
      <xs:annotation>
         <xs:documentation>Größetyp gemäß "GroesseType" aus "TR XhD"</xs:documentation>
      </xs:annotation>
      <xs:restriction base="din91379:datatypeC">
         <xs:pattern value="[0-9]{3}|---"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:complexType name="Identifikation.Ereignis">
      <xs:annotation>
         <xs:appinfo>
            <title>Identifikation Ereignis</title>
         </xs:appinfo>
         <xs:documentation>Dieser Typ enthält Angaben, die ein Ereignis eindeutig identifizieren und es dem Leser einer Nachricht ermöglichen, die Reihenfolge von Ereignissen beim Autor nachzuvollziehen. Sofern dieses Element in einer Nachricht mit mehreren Datensätzen verwendet wird (Sammelnachricht), dient es der Identifikation des Einzelfalls. Es muss dann entsprechend für jeden Einzelfall in der Sammelnachricht übermittelt werden.</xs:documentation>
      </xs:annotation>
      <xs:complexContent>
         <xs:restriction base="xink:Identifikation.Ereignis">
            <xs:sequence>
               <xs:element name="ereignis.zeitpunkt" type="xs:dateTime" form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Dieses Element wird verwendet, um beim Leser die ursprüngliche Chronologie der Ereignisse beim Autor der Nachricht zu rekonstruieren. Es ist der Zeitpunkt zu übermitteln, zu dem das Ereignis im Verfahren gespeichert wurde. Der Ereigniszeitpunkt muss neben einer Angabe zum Datum eine zeitliche Information beinhalten. Diese ist mit einer Genauigkeit auf Ebene von Millisekunden und der Angabe zur Zeitzone zu übermitteln. Der hier übermittelte Zeitpunkt kann von dem Erstellungszeitpunkt der Nachricht, in der das Ereignis übermittelt wird, abweichen.</xs:documentation>
                  </xs:annotation>
               </xs:element>
               <xs:element name="ereignis.zeichen"
                           type="xink:Identifikation.Ereignis.Zeichen"
                           form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Mit diesem Element wird ein (Geschäfts-)Zeichen zu dem Ereignis übermittelt, das das Ereignis innerhalb einer Nachricht eindeutig identifiziert. Das (Geschäfts-)Zeichen kann durch den Autor der Nachricht beliebig gestaltet werden, es muss nur sichergestellt werden, dass ein Ereignis innerhalb einer Nachricht eindeutig identifiziert (nur relevant bei Sammelnachrichten) wird und dass der Autor einer Nachricht in der Lage ist, das übermittelte Ereignis mithilfe des (Geschäfts-)Zeichens und den identifizierenden Angaben zur Nachricht wieder aufzufinden. Ein solches Zeichen darf maximal 100 Zeichen umfassen. Außer den Zeichen A..Z, a..z sowie den Ziffern 0..9 sind maximal acht Sonderzeichen erlaubt. Umlaute und das ß gelten ebenfalls als Sonderzeichen.</xs:documentation>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:restriction>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Identifikation.Nachricht">
      <xs:annotation>
         <xs:appinfo>
            <title>Identifikation Nachricht</title>
         </xs:appinfo>
         <xs:documentation>Dieser Datentyp definiert die Identifikationsmerkmale zu einer Nachricht. Er wird im Element zur Identifikation einer Nachricht verwendet oder in einem Abschnitt, der auf eine Nachricht referenziert.</xs:documentation>
      </xs:annotation>
      <xs:complexContent>
         <xs:restriction base="bn-uq-g2g:Identifikation.NachrichtType">
            <xs:sequence>
               <xs:element name="nachrichtenUUID" type="bn-uq-g2g:UUID" form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Dieses Element enthält den „Universally Unique IDentifier (UUID)“ der Nachricht, der das primäre Identifikationsmerkmal einer Nachricht darstellt. Der UUID der Nachricht wird entsprechend rfc4122 gebildet und ermöglicht Nachrichten hersteller- und anwendungsübergreifend weltweit eindeutig zu identifizieren. Für jede Nachricht muss ein neuer UUID erzeugt werden, um eine eindeutige Identifikation der Nachricht sicherzustellen. Insbesondere ist es nicht zulässig, in einer korrigierten Nachricht den UUID der ursprünglichen Nachricht wiederzuverwenden. Sofern eine einmal erzeugte Nachricht ein weiteres Mal gesendet werden soll (bspw. aufgrund von Problemen beim Nachrichtentransport), muss der UUID nicht angepasst werden.</xs:documentation>
                  </xs:annotation>
               </xs:element>
               <xs:element name="nachrichtentyp"
                           type="xpassausweis:Code.Nachrichten"
                           form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Dokumentation aus XOEV-Bibliothek:</xs:documentation>
                     <xs:documentation>Dieses Element enthält eine eindeutige Kennzeichnung des Nachrichtentyps. Die Identifikation erfolgt über eine Codeliste des entsprechenden XÖV-Standards.</xs:documentation>
                  </xs:annotation>
               </xs:element>
               <xs:element name="erstellungszeitpunkt" type="xs:dateTime" form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Dokumentation aus XOEV-Bibliothek:</xs:documentation>
                     <xs:documentation>Dieses Element enthält den Erstellungszeitpunkt der Nachricht - es enthält explizit nicht den Sende- und Empfangszeitpunkt. Der Erstellungszeitpunkt muss neben einer Angabe zum Datum eine zeitliche Information beinhalten. Diese ist mit einer Genauigkeit auf Ebene von Millisekunden und der Angabe zur Zeitzone zu übermitteln.</xs:documentation>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:restriction>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Nachricht.G2G">
      <xs:annotation>
         <xs:appinfo>
            <title>XPassAusweis-Basisnachricht</title>
         </xs:appinfo>
         <xs:documentation>Dieser Typ wurde als Ableitung des entsprechenden Datentyps des XInneres-Basismoduls erstellt. Er realisiert die Oberklasse für alle Nachrichten. Jede in XPassAusweis definierte konkrete Nachricht erbt von diesem Typ. Auf diese Weise wird für alle Nachrichten eine einheitliche Grundstruktur gewährleistet.</xs:documentation>
      </xs:annotation>
      <xs:complexContent>
         <xs:restriction base="xink:Nachricht.G2G">
            <xs:sequence>
               <xs:element name="nachrichtenkopf.g2g"
                           type="xpassausweis:Nachrichtenkopf.G2G"
                           form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Dieses Element enthält die Identifikationsmerkmale einer Nachricht und Informationen zum Leser und Autor einer Nachricht.</xs:documentation>
                  </xs:annotation>
               </xs:element>
               <xs:element name="anschrift.leser"
                           minOccurs="0"
                           type="xipa:PostalischeInlandsanschrift"
                           form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Die Anschrift des Lesers (für persönliches Erscheinen oder die Zusendung von Dokumenten per Briefpost an die Behörde).</xs:documentation>
                  </xs:annotation>
               </xs:element>
               <xs:element name="anschrift.autor"
                           type="xipa:PostalischeInlandsanschrift"
                           form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Die Anschrift des Autors (für persönliches Erscheinen oder die Zusendung von Dokumenten per Briefpost an die Behörde).</xs:documentation>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
            <xs:attribute name="produkt" type="din91379:datatypeC" use="required">
               <xs:annotation>
                  <xs:documentation>In diesem Attribut ist der Name des Produktes (der Software) einzutragen, mit dem diese Nachricht erstellt worden ist.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="produkthersteller" type="din91379:datatypeC" use="required">
               <xs:annotation>
                  <xs:documentation>In diesem Attribut ist der Name der Firma oder der Organisation einzutragen, die für das DV-Verfahren verantwortlich ist, mit dem diese Nachricht erstellt worden ist.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="produktversion" type="din91379:datatypeC" use="optional">
               <xs:annotation>
                  <xs:documentation>In diesem Attribut sollen ergänzende Hinweise zu dem Produkt, mit dem diese Nachricht erstellt worden ist, eingetragen werden. Dies sind Angaben, die für eine möglichst präzise Identifikation im Fehlerfall hilfreich sind, wie zum Beispiel Version und Patchlevel.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="standard"
                          type="din91379:datatypeC"
                          use="required"
                          fixed="XPassAusweis">
               <xs:annotation>
                  <xs:documentation>In diesem Attribut wird der Name des XInneres-Basismoduls bzw. des XInneres-Fachmoduls übermittelt, aus dem die Nachricht stammt. Der Name des XInneres-Basismoduls bzw. des XInneres-Fachmoduls wird durch das XInneres-Basismodul bzw. das XInneres-Fachmodul als fixed-Value auf Schemaebene festgelegt (z. B. XPersonenstand).</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="test" type="din91379:datatypeC" use="optional">
               <xs:annotation>
                  <xs:documentation>Dieses Attribut ist optional. Ist es vorhanden, so sagt dies aus, dass es sich um eine Nachricht handelt, die (aus Sicht des Autors der Nachricht) nicht im normalen Produktivbetrieb behandelt werden soll. Über den Inhalt des Attributes wird nichts weiter ausgesagt, dies kann bilateral zwischen den Kommunikationspartnern vereinbart werden.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="version"
                          type="din91379:datatypeC"
                          use="required"
                          fixed="26.05">
               <xs:annotation>
                  <xs:documentation>In diesem Attribut wird die Version des XInneres-Basismoduls bzw. XInneres-Fachmoduls übermittelt, aus dem die Nachricht stammt. Die Versionsbezeichnung wird durch das XInneres-Basismodul bzw. XInneres-Fachmodul als fixed-Value auf Schemaebene festgelegt (z. B. 1.5.0).</xs:documentation>
               </xs:annotation>
            </xs:attribute>
         </xs:restriction>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Nachrichtenkopf.G2G">
      <xs:annotation>
         <xs:appinfo>
            <title>XPassAusweis-Nachrichtenkopf</title>
         </xs:appinfo>
         <xs:documentation>Nachrichtenkopf zwischen Behörden und anderen (öffentlichen) Stellen.</xs:documentation>
      </xs:annotation>
      <xs:complexContent>
         <xs:restriction base="xink:Nachrichtenkopf.G2G">
            <xs:sequence>
               <xs:element name="identifikation.nachricht"
                           type="xpassausweis:Identifikation.Nachricht"
                           form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Dieses Element enthält Angaben zur eindeutigen Identifikation einer Nachricht. Die eindeutige Identifizierungsnummer für einen Nachrichtentyp wird im Kindelement nachrichtentyp übermittelt. Der konkret zu verwendende Datentyp für die Übermittlung des Codes wird durch das xinneres-fachmodul auf Schemaebene festgelegt.</xs:documentation>
                  </xs:annotation>
               </xs:element>
               <xs:element name="leser" type="bn-uq-g2g:BehoerdeType" form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Dieses Element enthält Angaben zum Leser der Nachricht. Der Leser ist die fachlich zuständige Behörde / öffentliche Stelle, der die Nachricht zugestellt werden soll und die die Nachricht fachlich verarbeiten soll. In dem Kindelement verzeichnisdienst wird der Verzeichnisdienst angegeben, in welchem die Behörde / öffentliche Stelle unter der nachfolgend angegebenen Kennung (Kindelement kennung) eingetragen ist. In dem Element verzeichnisdienst/code muss der Code DVDV übermittelt werden. Das Kindelement kennung enthält den eindeutigen Organisationsschlüssel des Lesers innerhalb des Verzeichnisdienstes DVDV. Der im Kindelement name übermittelte Name dient auch dazu, eine ggfs. erforderliche manuelle Klärung zu beschleunigen, indem bspw. der Autor einer Nachricht im Klartext übermittelt, an welche Behörde er die Nachricht schicken wollte.</xs:documentation>
                  </xs:annotation>
               </xs:element>
               <xs:element name="autor"
                           type="xibehoerde:Behoerde.Erreichbar"
                           form="unqualified">
                  <xs:annotation>
                     <xs:documentation>Dieses Element enthält Angaben zum Autor der Nachricht, die es dem Leser ermöglichen, bei Bedarf mit dem Autor in Verbindung zu treten. Der Autor ist die fachlich zuständige Behörde / öffentliche Stelle, die die Nachricht erstellt, also bspw. eine Meldebehörde oder ein Standesamt. Der im Kindelement kennung übermittelte Organisationsschlüssel muss es dem Leser einer Nachricht ermöglichen, den Autor einer Nachricht im DVDV zu ermitteln um diesem ggf. erforderliche elektronische Mitteilungen senden zu können (bspw. Quittungen oder Fehlernachrichten). Für die sendende Behörde wird im Kindelement kennung immer die Kennung der für den Betroffenen zuständigen Gemeinde bzw. Ausländerbehörde oder die Kennung des für den Personenstandsfall zuständigen Standesamtes übermittelt. Sofern die sendende Behörde für einen Gemeindeverbund oder im Auftrag einer anderen Behörde handelt, ist in diesen Fällen deshalb die Angabe der zuständigen Stelle (Gemeinde oder Behörde) verpflichtend. Daraus ergibt sich auch die Konsequenz, dass Sammelnachrichten nur für die einzelnen Gemeinden bzw. Behörden zulässig sind. Sofern es keine dem obigen Sinn nach zuständige Gemeinde oder Behörde gibt (bspw. bei der Beantragung eine Führungszeugnisses in einer nicht für den Wohnort des Beantragenden zuständigen Meldebehörde), ist in dem Kindelement kennung eine beliebige Kennung zu übermitteln, mit der der Autor im DVDV adressiert werden kann.</xs:documentation>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:restriction>
      </xs:complexContent>
   </xs:complexType>
</xs:schema>
