<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xwaffe-behoerden="http://www.xwaffe.de/schemata/behoerden/V2_9/"
           xmlns:xwaffe-kern="http://www.xwaffe.de/schemata/kern/V2_9/"
           targetNamespace="http://www.xwaffe.de/schemata/behoerden/V2_9/"
           attributeFormDefault="unqualified"
           version="2.9"
           elementFormDefault="qualified">
   <xs:annotation>
      <xs:appinfo>
         <standard>
            <nameLang>XWaffe – Standard für die elektronische Datenübermittlung im deutschen Waffenwesen</nameLang>
            <nameKurz>XWaffe</nameKurz>
            <nameTechnisch>xwaffe</nameTechnisch>
            <kennung>urn:xoev-de:bmi:standard:xwaffe</kennung>
            <beschreibung>Zur Unterstützung der effizienten und wirtschaftlichen Umsetzung durchgehender medienbruchfreier elektronischer Prozesse im deutschen Waffenwesen wird der Standard XWaffe erstellt. Grundlage der Kommunikation ist das Waffengesetz (WaffG) sowie das Waffenregistergesetz (WaffRG), sowie die zugehörigen Rechtsverordnungen (WaffRGDV). Mit Stand des WaffG und WaffRG vom 01. September 2020 werden die Meldepflichten von Inhabern waffenrechtlicher Erlaubnisse gem. §21 Abs. 1 WaffG (Händler, Hersteller) sowie die Übermittlungsanlässe der Waffenbehörden an das Nationale Waffenregister (NWR) unterstützt.</beschreibung>
         </standard>
         <versionStandard>
            <version>2.9</version>
            <beschreibung>Zur Unterstützung der effizienten und wirtschaftlichen Umsetzung durchgehender medienbruchfreier elektronischer Prozesse im deutschen Waffenwesen wird der Standard XWaffe erstellt. Grundlage der Kommunikation ist das Waffengesetz (WaffG) sowie das Waffenregistergesetz (WaffRG), sowie die zugehörigen Rechtsverordnungen (WaffRGDV). Mit Stand des WaffG und WaffRG vom 01. September 2020 werden die Meldepflichten von Inhabern waffenrechtlicher Erlaubnisse gem. §21 Abs. 1 WaffG (Händler, Hersteller) sowie die Übermittlungsanlässe der Waffenbehörden an das Nationale Waffenregister (NWR) unterstützt.</beschreibung>
            <versionXOEVHandbuch>4.0.0</versionXOEVHandbuch>
            <nameModellierungswerkzeug>MagicDraw</nameModellierungswerkzeug>
            <versionModellierungswerkzeug>19.0 SP4</versionModellierungswerkzeug>
         </versionStandard>
      </xs:appinfo>
      <xs:documentation>Dieser Nachrichtentyp wird vom NWR an das ÖWS versendet und enthält im allgemeinen die Antwort auf Such- und Rechercheanfragen. Die Nachricht enhält das Ergebnis einer Suche und Recherche sowie Meta-Informationen zum Ergebnis der Suche und Recherche.</xs:documentation>
   </xs:annotation>
   <xs:include schemaLocation="xwaffe-baukasten-behoerden.xsd"/>
   <xs:import schemaLocation="https://xwaffe.de/schemata/V2_9/xwaffe-basistypen.xsd"
              namespace="http://www.xwaffe.de/schemata/kern/V2_9/"/>
   <xs:element name="antwort.auskunft.402">
      <xs:annotation>
         <xs:appinfo>
            <autor>Registerbehörde NWR</autor>
            <leser>Abfrageberechtigte Systeme auf Basis §10 WaffRG</leser>
         </xs:appinfo>
         <xs:documentation>Liefert Objekte (Voreintrag, Waffenverweis, Waffe, natürliche Person, nichtnatürliche Person, Erlaubnis, Behörde) als "gefundenes Objekt" sowie die zuständige Behörde im Rahmen eines "Suchergebnis" zurück. Auslöser dieser Antwortnachricht (Lieferung) des Registers ist die abfrage.auskunft.401.</xs:documentation>
      </xs:annotation>
      <xs:complexType>
         <xs:sequence>
            <xs:element name="kopf" type="xwaffe-behoerden:Nachrichtenkopf">
               <xs:annotation>
                  <xs:documentation>Der Nachrichtenkopf umfasst allgemeine, technische Eigenschaften einer Nachricht, wie z.B. Erstellungszeitpunkt oder Tagesnachrichtenzähler.</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="ergebnis"
                        minOccurs="0"
                        maxOccurs="unbounded"
                        type="xwaffe-behoerden:Suchergebnis">
               <xs:annotation>
                  <xs:documentation>Dieses Objekt bildet die Daten des NWR als Antwort auf eine Suchabfrage vom ÖWS ab. Bei Personendaten wird für jede PersonID ein Element vom Typ "Suchergebnis" geliefert. Wird die gleiche Person mit gleicher PersonenstammID in unterschiedlichen Behörden verwaltet (mit unterschiedlicher PersonID) so werden diese in separaten Suchergebnis-Objekten zurückgeliefert.</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="istTeilmenge" minOccurs="0" type="xs:boolean">
               <xs:annotation>
                  <xs:documentation>Wurde durch das abfragende System die gewünschte Anzahl der zu liefernden Datensätze angegeben, gibt dieses Feld die Rückinformation, dass dieses nur eine Teilmenge der gefundenen Daten ist. Ja = Es liegen noch weitere Daten vor Nein = Die gelieferten Datensätze sind die letzten der Ergebnismenge</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="fehlermeldung"
                        minOccurs="0"
                        maxOccurs="unbounded"
                        type="xwaffe-behoerden:FehlerRegister">
               <xs:annotation>
                  <xs:documentation>Dieses Feld wird für Fehlermeldungen verwendet. In der vorliegenden Version von XWaffe werden nur Fehlermeldungen vom Register zum ÖWS definiert. Im Allgemeinen kann zwischen verschiedenen Prüfungstypen/Fehlerarten unterschieden werden: Entitätsprüfungen (prüfen, ob alle MUSS-Entitäten vorhanden sind und Entitäten in der richtigen Anzahl vorhanden sind), Feldprüfungen (prüfen ob MUSS-Felder und Felder in der richtigen Anzahl vorhanden sind), Datentypprüfungen (prüfen auf den richtigen Typ und die richtige Länge), Katalogwertprüfungen (prüfen, ob der Wert in der zugehörigen aktuellen Katalogtabelle enthalten ist), Meldekombinationsprüfungen (prüfen auf Kriterien, die von anderen Werten abhängig sind, z.B. ob ein Datum hinter einem anderen übergebenen Datum liegt).</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="anzahlTreffer" type="xs:integer">
               <xs:annotation>
                  <xs:documentation>Wurde durch das abfragende System die gewünschte Anzahl der zu liefernden Datensätze angegeben, gibt dieses Feld die Rückinformation, dass dieses nur eine Teilmenge der gefundenen Daten ist. Ja = Es liegen noch weitere Daten vor Nein = Die gelieferten Datensätze sind die letzten der Ergebnismenge</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="startIndex" minOccurs="0" type="xs:integer">
               <xs:annotation>
                  <xs:documentation>Der StartIndex dient der Paginierung. Bei der (ersten) Abfrage (Auskunft, Recherche) ist der StartIndex 0 bzw. braucht er nicht übermittelt werden. Als Ergebnis bekommt das abfragende System die Trefferliste beginnend ab dem mit der Abfrage angegebenen StartIndex (hier 0) sowie die Angabe der Gesamtanzahl der Treffer der gesamten Abfragen(z.B. 543). Zurückgeliefert wird eine systemseitig festlegte max. Anzahl von Treffern (z.B. 100) pro Abfrage.</xs:documentation>
               </xs:annotation>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
   <xs:element name="antwort.lesen.406">
      <xs:annotation>
         <xs:appinfo>
            <autor>Registerbehörde NWR</autor>
            <leser>Abfrageberechtigte Systeme auf Basis §10 WaffRG</leser>
         </xs:appinfo>
         <xs:documentation>Liefert genau ein Hauptobjekt (Voreintrag, Waffenverweis, Waffe, natürliche Person, nichtnatürliche Person, Erlaubnis, Behörde) auf Grundlage einer angefragten ID so zurück, wie es im Register registriert ist. Auslöser dieser Antwortnachricht (Lieferung) des Registers sind z.B. abfrage.lesen.405.</xs:documentation>
      </xs:annotation>
      <xs:complexType>
         <xs:sequence>
            <xs:element name="kopf" type="xwaffe-behoerden:Nachrichtenkopf">
               <xs:annotation>
                  <xs:documentation>Der Nachrichtenkopf umfasst allgemeine, technische Eigenschaften einer Nachricht, wie z.B. Erstellungszeitpunkt oder Tagesnachrichtenzähler.</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="inhalt" minOccurs="0" type="xwaffe-behoerden:Inhaltsdaten">
               <xs:annotation>
                  <xs:documentation>Das Objekt Inhaltsdaten umfasst die von Lesevorgängen durch das Register gelieferten "registriertenObjekte".</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="fehlermeldung"
                        minOccurs="0"
                        maxOccurs="unbounded"
                        type="xwaffe-behoerden:FehlerRegister">
               <xs:annotation>
                  <xs:documentation>Dieses Feld wird für Fehlermeldungen verwendet. In der vorliegenden Version von XWaffe werden nur Fehlermeldungen vom Register zum ÖWS definiert. Im Allgemeinen kann zwischen verschiedenen Prüfungstypen/Fehlerarten unterschieden werden: Entitätsprüfungen (prüfen, ob alle MUSS-Entitäten vorhanden sind und Entitäten in der richtigen Anzahl vorhanden sind), Feldprüfungen (prüfen ob MUSS-Felder und Felder in der richtigen Anzahl vorhanden sind), Datentypprüfungen (prüfen auf den richtigen Typ und die richtige Länge), Katalogwertprüfungen (prüfen, ob der Wert in der zugehörigen aktuellen Katalogtabelle enthalten ist), Meldekombinationsprüfungen (prüfen auf Kriterien, die von anderen Werten abhängig sind, z.B. ob ein Datum hinter einem anderen übergebenen Datum liegt).</xs:documentation>
               </xs:annotation>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
   <xs:element name="antwort.recherche.412">
      <xs:annotation>
         <xs:appinfo>
            <autor>Registerbehörde NWR</autor>
            <leser>Abfrageberechtigte Systeme auf Basis §10 WaffRG</leser>
         </xs:appinfo>
         <xs:documentation>Liefert Objekte (Erlaubnis, Person, Waffe, Waffenverweis, Voreintrag) als "registriertes Objekt" im Rahmen eines "Rechercheergebnis" zurück. Auslöser dieser Antwortnachricht (Lieferung) des Registers ist die Nachricht abfrage.recherche.411.</xs:documentation>
      </xs:annotation>
      <xs:complexType>
         <xs:sequence>
            <xs:element name="kopf" type="xwaffe-behoerden:Nachrichtenkopf">
               <xs:annotation>
                  <xs:documentation>Der Nachrichtenkopf umfasst allgemeine, technische Eigenschaften einer Nachricht, wie z.B. Erstellungszeitpunkt oder Tagesnachrichtenzähler.</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="rechercheergebnis"
                        minOccurs="0"
                        maxOccurs="unbounded"
                        type="xwaffe-behoerden:Rechercheergebnis">
               <xs:annotation>
                  <xs:documentation>Dieses Objekt bildet die Daten des NWR als Antwort auf eine Rechercheabfrage vom ÖWS ab.</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="fehlermeldung"
                        minOccurs="0"
                        maxOccurs="unbounded"
                        type="xwaffe-behoerden:FehlerRegister">
               <xs:annotation>
                  <xs:documentation>Dieses Feld wird für Fehlermeldungen verwendet. In der vorliegenden Version von XWaffe werden nur Fehlermeldungen vom Register zum ÖWS definiert. Im Allgemeinen kann zwischen verschiedenen Prüfungstypen/Fehlerarten unterschieden werden: Entitätsprüfungen (prüfen, ob alle MUSS-Entitäten vorhanden sind und Entitäten in der richtigen Anzahl vorhanden sind), Feldprüfungen (prüfen ob MUSS-Felder und Felder in der richtigen Anzahl vorhanden sind), Datentypprüfungen (prüfen auf den richtigen Typ und die richtige Länge), Katalogwertprüfungen (prüfen, ob der Wert in der zugehörigen aktuellen Katalogtabelle enthalten ist), Meldekombinationsprüfungen (prüfen auf Kriterien, die von anderen Werten abhängig sind, z.B. ob ein Datum hinter einem anderen übergebenen Datum liegt).</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="anzahlTreffer" type="xs:integer">
               <xs:annotation>
                  <xs:documentation>Wurde durch das abfragende System die gewünschte Anzahl der zu liefernden Datensätze angegeben, gibt dieses Feld die Rückinformation, dass dieses nur eine Teilmenge der gefundenen Daten ist. Ja = Es liegen noch weitere Daten vor Nein = Die gelieferten Datensätze sind die letzten der Ergebnismenge</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="startIndex" minOccurs="0" type="xs:integer">
               <xs:annotation>
                  <xs:documentation>Der StartIndex dient der Paginierung. Bei der (ersten) Abfrage (Auskunft, Recherche) ist der StartIndex 0 bzw. braucht er nicht übermittelt werden. Als Ergebnis bekommt das abfragende System die Trefferliste beginnend ab dem mit der Abfrage angegebenen StartIndex (hier 0) sowie die Angabe der Gesamtanzahl der Treffer der gesamten Abfragen(z.B. 543). Zurückgeliefert wird eine systemseitig festlegte max. Anzahl von Treffern (z.B. 100) pro Abfrage.</xs:documentation>
               </xs:annotation>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
   <xs:element name="antwort.hinweis.422">
      <xs:annotation>
         <xs:appinfo>
            <autor>Registerbehörde NWR</autor>
            <leser>Abfrageberechtigte Systeme auf Basis §10 WaffRG</leser>
         </xs:appinfo>
         <xs:documentation>Rückantwort zur Abfrage der Ordnungsnummern (NWRID) gespeicherter Hinweise.</xs:documentation>
      </xs:annotation>
      <xs:complexType>
         <xs:sequence>
            <xs:element name="kopf" type="xwaffe-behoerden:Nachrichtenkopf">
               <xs:annotation>
                  <xs:documentation>Der Nachrichtenkopf umfasst allgemeine, technische Eigenschaften einer Nachricht, wie z.B. Erstellungszeitpunkt oder Tagesnachrichtenzähler.</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="abfragendeBehoerdeID"
                        minOccurs="0"
                        type="xwaffe-kern:String.behoerdenID">
               <xs:annotation>
                  <xs:documentation>Die Ordnungsnummer (NWRID) der abfragenden Behörde, für die Hinweise bestimmt sind.</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="registrierterHinweisID"
                        minOccurs="0"
                        maxOccurs="unbounded"
                        type="xwaffe-kern:String.nwrID">
               <xs:annotation>
                  <xs:documentation>Die Ordnungsnummer (NWRID) eines für die abfragende Behörde registrierten Hinweises.</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="fehlermeldung"
                        minOccurs="0"
                        maxOccurs="unbounded"
                        type="xwaffe-behoerden:FehlerRegister">
               <xs:annotation>
                  <xs:documentation>Diese Feld wird für Fehlermeldungen verwendet. In der vorliegenden Version von XWaffe werden nur Fehlermeldungen vom Register zum ÖWS definiert. Im Allgemeinen kann zwischen verschiedenen Prüfungstypen/Fehlerarten unterschieden werden: Entitä tsprüfungen (prüfen ob alle MUSS-Entitäten vorhanden sind und Entitäten in der richtigen Anzahl vorhanden sind) Feldprüfungen (prüfen ob MUSS-Felder vorhanden sind und Felder in der richtigen Anzahl vorhanden sind) Datentypprüfungen (prüfen auf den richtigen Typ und die richtige Länge) Katalogwertprüfungen (prüfen ob der Wert in der zugehörigen aktuellen Katalogtabelle enthalten ist) Meldekombinationsprüfungen (prüft auf Kriterien die von anderen Werten abhängig sind, z.B. ob ein Datum hinter einem anderen übergebenen Datum liegt)</xs:documentation>
               </xs:annotation>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
</xs:schema>
