<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xink="http://www.osci.de/xinneres/basisnachricht/7"
           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:xipa="http://www.osci.de/xinneres/postanschrift/5"
           xmlns:xoev-code="http://xoev.de/schemata/code/1_0"
           targetNamespace="http://www.osci.de/xinneres/basisnachricht/7"
           version="7"
           elementFormDefault="unqualified"
           attributeFormDefault="unqualified">
   <xs:annotation>
      <xs:appinfo>
         <standard>
            <nameLang>XInneres-Basismodul</nameLang>
            <nameKurz>XInneres-Basismodul</nameKurz>
            <nameTechnisch>xinneres.basismodul</nameTechnisch>
            <kennung>urn:xoev-de:kosit:standard:xinneres.basismodul</kennung>
            <beschreibung>Im Auftrag des AK I hat die PG Standard bisher unter anderem die fachlichen Vorgaben und die Struktur der Meldeanschrift für die Bereiche Ausländer-, Melde- und Personenstandswesen harmonisiert. Der vorliegende Standard XInneres bildet auf technischer Ebene eine Klammer vor den Standards der Innenverwaltung. An dieser Stelle können gemeinsam genutzte Komponenten definiert werden. In der ersten Version von XInneres definiert der Standard die Datentypen für die Darstellung der Meldeanschrift.</beschreibung>
         </standard>
         <versionStandard>
            <version>25.11</version>
            <versionXOEVProfil>3.0.3</versionXOEVProfil>
            <versionXOEVHandbuch>3.0.2</versionXOEVHandbuch>
            <versionXGenerator>3.1.1</versionXGenerator>
            <versionModellierungswerkzeug>19.0 SP4</versionModellierungswerkzeug>
            <nameModellierungswerkzeug>MagicDraw</nameModellierungswerkzeug>
         </versionStandard>
      </xs:appinfo>
   </xs:annotation>
   <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="http://xoev.de/schemata/code/1_0/xoev-code.xsd"
              namespace="http://xoev.de/schemata/code/1_0"/>
   <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="Code.Nachrichtentyp.Typ4">
      <xs:annotation>
         <xs:documentation>Typ-4 Code-Datentyp für die Übermittlung von Nachrichtentypen, wo die zugrundeliegenden Codelisten und deren Version erst zum Zeitpunkt der Nachrichtenerstellung nach den Vorgaben des xinneres-fachmodul festgelegt werden.</xs:documentation>
      </xs:annotation>
      <xs:complexContent>
         <xs:restriction base="xoev-code:Code">
            <xs:sequence>
               <xs:element name="code" type="xs:token"/>
               <xs:element name="name" type="xs:normalizedString" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute name="listURI" type="xs:anyURI" use="required"/>
            <xs:attribute name="listVersionID" type="xs:normalizedString" use="required"/>
         </xs:restriction>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Identifikation.Ereignis">
      <xs:annotation>
         <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:sequence>
         <xs:element name="ereignis.zeitpunkt" type="xs:dateTime">
            <xs:annotation>
               <xs:documentation>Dieses Element kann verwendet werden, um beim Leser die ursprüngliche Chronologie der Ereignisse beim Autor der Nachricht zu rekonstruieren. Welcher Zeitpunkt hier zu übermitteln ist, wird durch die xinneres-fachmodule an den fachlichen Nutzungsstellen festgelegt. 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">
            <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:complexType>
   <xs:simpleType name="Identifikation.Ereignis.Zeichen">
      <xs:annotation>
         <xs:documentation>Das ein Ereignis identifizierende 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 als Sonderzeichen.</xs:documentation>
      </xs:annotation>
      <xs:restriction base="din91379:datatypeC">
         <xs:pattern value=".{1,100}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:complexType name="Identifikation.Nachricht.Typ4">
      <xs:annotation>
         <xs:documentation>Dieser Typ enthält die für die Identifikation einer Nachricht erforderlichen Informationen, wobei der Nachrichtentyp hier als Typ-4 Code-Datentyp modelliert ist. Dieser Typ sollte daher an den Stellen genutzt werden, in denen identifizierende Angaben zu Nachrichten aus mehr als einem xinneres-fachmodul übermittelt werden müssen.</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">
                  <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="xink:Code.Nachrichtentyp.Typ4">
                  <xs:annotation>
                     <xs:documentation>Dieses Element enthält eine eindeutige Kennzeichnung des Nachrichtentyps. Die konkret genutzte Codeliste, sowie deren Version werden erst zum Zeitpunkt der Nachrichtenerstellung festgelegt und sind daher immer zu übermitteln (Typ-4 Code-Datentyp).</xs:documentation>
                  </xs:annotation>
               </xs:element>
               <xs:element name="erstellungszeitpunkt" type="xs:dateTime">
                  <xs:annotation>
                     <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>XInneres-Basisnachricht für Nachrichten zwischen Behörden</title>
         </xs:appinfo>
         <xs:documentation>Dieser Typ realisiert die XInneres-Basisnachricht für alle Nachrichten zwischen Behörden und anderen (öffentlichen) Stellen (government-to-government). Jede im xinneres-basismodul und den xinneres-fachmodulen definierte konkrete Nachricht erbt von diesem Typ. Auf diese Weise wird für alle xinneres-Nachrichten eine einheitliche Basis gewährleistet. Der Datentyp erweitert den Datentyp Nachricht.G2G.Grundstruktur um die Daten zur Anschrift des Autors und des Lesers. Diese Daten werden zwar nicht auf der Transportebene benötigt, jedoch in vielen fachlichen Kommunikationskontexten in XInneres.</xs:documentation>
      </xs:annotation>
      <xs:complexContent>
         <xs:extension base="xink:Nachricht.G2G.Grundstruktur">
            <xs:sequence>
               <xs:element name="anschrift.leser"
                           minOccurs="0"
                           type="xipa:PostalischeInlandsanschrift">
                  <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">
                  <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:extension>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Nachricht.G2G.Grundstruktur">
      <xs:annotation>
         <xs:appinfo>
            <title>XÖV-basierte Grundstruktur der XInneres-Basisnachricht</title>
         </xs:appinfo>
         <xs:documentation>Dieser Typ realisiert die auf der XÖV-Basisnachricht fundierte Grundstruktur der XInneres-Basisnachricht für alle Nachrichten zwischen Behörden und anderen (öffentlichen) Stellen (government-to-government).</xs:documentation>
      </xs:annotation>
      <xs:complexContent>
         <xs:restriction base="bn-uq-g2g:Nachricht.G2GType">
            <xs:sequence>
               <xs:element name="nachrichtenkopf.g2g" type="xink:Nachrichtenkopf.G2G">
                  <xs:annotation>
                     <xs:documentation>Nachrichtenkopf für Nachrichten zwischen Behörden und anderen (öffentlichen) Stellen. Der Nachrichtenkopf umfasst Angaben zur eindeutigen Identifikation des Autors und des Lesers der Nachricht sowie der Nachricht selbst.</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 die 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 wird der Name der Organisation / Firma übermittelt, die für das Produkt (die Software) verantwortlich ist, mit dem die Nachricht erstellt wurde.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="produktversion" type="din91379:datatypeC" use="optional">
               <xs:annotation>
                  <xs:documentation>In diesem Attribut werden ergänzende Hinweise zu dem Produkt eingetragen. 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">
               <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 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>Ist dieses Attribut vorhanden, handelt es sich aus Sicht des Autors um eine Testnachricht, die nicht im normalen Produktivbetrieb verarbeitet werden darf. Autor und Leser können bilateral weitere Absprachen über den konkreten Inhalt des Attributs treffen.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="version" type="din91379:datatypeC" use="required">
               <xs:annotation>
                  <xs:documentation>In diesem Attribut wird die Version des xinneres-fachmoduls bzw. des xinneres-basismodul-Schemas übermittelt, aus dem die Nachricht stammt. Die Versionsbezeichnung wird durch das xinneres-fachmodul bzw. xinneres-basismodul als fixed-Value auf Schemaebene festgelegt (z. B. 1.7.8 für XPersonenstand 1.7.8 oder 6 für Nachrichten aus der Version 6 des Basismodul-Schemas zur Rückweisung von Nachrichten).</xs:documentation>
               </xs:annotation>
            </xs:attribute>
         </xs:restriction>
      </xs:complexContent>
   </xs:complexType>
   <xs:complexType name="Nachrichtenkopf.G2G">
      <xs:annotation>
         <xs:appinfo>
            <title>XInneres-Nachrichtenkopf</title>
         </xs:appinfo>
         <xs:documentation>XInneres-Nachrichtenkopf für Nachrichten zwischen Behörden und anderen (öffentlichen) Stellen. Der Nachrichtenkopf umfasst Angaben zur eindeutigen Identifikation des Autors und des Lesers der Nachricht sowie der Nachricht selbst.</xs:documentation>
      </xs:annotation>
      <xs:complexContent>
         <xs:restriction base="bn-uq-g2g:Nachrichtenkopf.G2GType">
            <xs:sequence>
               <xs:element name="identifikation.nachricht"
                           type="bn-uq-g2g:Identifikation.NachrichtType">
                  <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">
                  <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">
                  <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>
