<?xml version="1.0" encoding="UTF-8" ?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="xml">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Beobachtung" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Beobachtung">
    <xs:complexType>
      <xs:choice>
        <xs:element ref="Allochthonie" />
        <xs:element ref="Anzahl" />
        <xs:element ref="Anzahl_bluehend" />
        <xs:element ref="Anzahl_Details" />
        <xs:element ref="Anzahl_maennlich" />
        <xs:element ref="Anzahl_nicht_bluehend" />
        <xs:element ref="Anzahl_weiblich" />
        <xs:element ref="Art_deutsch" />
        <xs:element ref="Art_wissenschaftlich" />
        <xs:element ref="Autor" />
        <xs:element ref="Bemerkung" />
        <xs:element ref="Beobachter" />
        <xs:element ref="Bestimmer" />
        <xs:element ref="Biotop" />
        <xs:element ref="Datum" />
        <xs:element ref="Einheit" />
        <xs:element ref="EPSG" />
        <xs:element ref="GUID" />
        <xs:element ref="Herkunft" />
        <xs:element ref="Hochwert" />
        <xs:element ref="Hoehe" />
        <xs:element ref="ID" />
        <xs:element ref="ID_Art" />
        <xs:element ref="Intern" />
        <xs:element ref="Jahr" />
        <xs:element ref="MTB" />
        <xs:element ref="MTBQ" />
        <xs:element ref="Monat" />
        <xs:element ref="Nachweistyp" />
        <xs:element ref="Natura2000" />
        <xs:element ref="Ortsbezeichnung" />
        <xs:element ref="Qualitaet" />
        <xs:element ref="Quelle" />
        <xs:element ref="Rechtswert" />
        <xs:element ref="Region" />
        <xs:element ref="Reproduktion" />
        <xs:element ref="RoteListe" />
        <xs:element ref="Sammlung" />
        <xs:element ref="Toleranz" />
        <xs:element ref="Verhalten" />
        <xs:element ref="Zusatzinformationen" />
      </xs:choice>
    </xs:complexType>
  </xs:element>
    
  <xs:element name="Zusatzinformationen">
    <xs:complexType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält Zusatzinformationen zu einer Beobachtung. Die Detailinformationen sind in einer 1:n Beziehung vorhanden. 
        </xs:documentation>
      </xs:annotation>
      <xs:sequence>
        <xs:element ref="Detail" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>    
  
  <xs:element name="Detail">
    <xs:complexType>
      <xs:attribute name="Bezeichnung" type="xs:string" use="required" />
      <xs:attribute name="GUID_Detail" type="xs:string" use="required" />
      <xs:attribute name="Wert" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  
  <xs:element name="Allochthonie" type="xs:boolean" />
  
  <xs:element name="Anzahl">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält die Anzahl oder eine Anzahlklasse. Die möglichen Werte für die Anzahlklassen können aus der Schnittstellenbeschreibung entnommen werden. Schnittstellenbeschreibung unter: http://www.MultiBaseCS.de/XML/Schnittstelle.pdf.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element> 
  
  <xs:element name="Anzahl_bluehend">
    <xs:simpleType>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="1"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <xs:element name="Anzahl_Details">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält Zusatzinformationen zur Anzahl.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <xs:element name="Anzahl_maennlich">
    <xs:simpleType>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="1"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <xs:element name="Anzahl_nicht_bluehend">
    <xs:simpleType>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="1"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <xs:element name="Anzahl_weiblich">
    <xs:simpleType>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="1"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
    
  <xs:element name="Art_deutsch">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den Deutschen Artnamen aus der MultiBaseCS Referenzliste.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element> 

  <xs:element name="Art_wissenschaftlich">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den Wissenschaftlichen Artnamen aus der MultiBaseCS Referenzliste. Bei einem Import ist die Art_wissenschaftlich oder die ID_Art eine Pflichtangabe.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element> 
  
  <xs:element name="Autor">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Optionale Angabe. Enthält den Erstautor einer Art.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element> 
  
  <xs:element name="Bemerkung" type="xs:string" />
  
  <xs:element name="Beobachter">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den Namen des Beobachters.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <xs:element name="Bestimmer">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den Namen des Bestimmers.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  
  <xs:element name="Biotop">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält die Bezeichnung des Biotops.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>   
  
  <xs:element name="Datum">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält das Beobachtungsdatum. Das Datum wird im Format DD.MM.JJJJ angegeben. Ein Datum oder eine Jahresangabe sind Pflichtangaben.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:pattern value="[0-3]{1}[0-9]{1}.[0,1]{1}[0-9]{1}.[0-9]{4}"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <xs:element name="Einheit">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält die Einheit für die angegebene Anzahl aus der MultiBaseCS Referenzliste.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  

  <xs:element name="EPSG">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den EPSG-Code des verwendeten Referenzsystems für die Koordinaten der Beobachtung. Die möglichen Werte können der jeweils gültigen Schnittstellenbeschreibung entnommen werden. Schnittstellenbeschreibung unter: http://www.MultiBaseCS.de/XML/Schnittstelle.pdf.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:integer">
        <xs:enumeration value="31466"/>
        <xs:enumeration value="31467"/>
        <xs:enumeration value="31468"/>
        <xs:enumeration value="31469"/>
        <xs:enumeration value="25831"/>
        <xs:enumeration value="25832"/>
        <xs:enumeration value="25833"/>
        <xs:enumeration value="325833"/>
        <xs:enumeration value="3325833"/>
        <xs:enumeration value="4326"/>
        <xs:enumeration value="2397"/>
        <xs:enumeration value="2398"/>
        <xs:enumeration value="2399"/>
        <xs:enumeration value="3034"/>
        <xs:enumeration value="3035"/>
        <xs:enumeration value="3068"/>
        <xs:enumeration value="4178"/>
        <xs:enumeration value="4314"/>
        <xs:enumeration value="4258"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="GUID">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält die GUID des Datensatzes zur eindeutigen Kennzeichnung beim Datenaustausch. Pflichtangabe.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <xs:element name="Herkunft">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält die Herkunftsangabe für eine Beobachtung.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <xs:element name="Hochwert">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den Hochwert der Beobachtung in dem im Parameter EPSG angegebenen System. Die Notation kann der Schnittstellenbeschreibung entnommen werden. Schnittstellenbeschreibung unter: http://www.MultiBaseCS.de/XML/Schnittstelle.pdf.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:decimal">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="999999999"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="Hoehe">
    <xs:simpleType>      
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält die Höhe des Datensatzes.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="-200"/>
        <xs:maxInclusive value="9000"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="ID">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält die eindeutige Datensatzkennung in der einzelnen Datenbank. Pflichtangabe.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="1"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="ID_Art">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält die ID_Art aus der Referenzliste von MultiBaseCS für die Beobachtung. Bei einem Import ist die ID_Art oder die Art_wissenschaftlich eine Pflichtangabe. 
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="1"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="Intern" type="xs:boolean" />

  <xs:element name="Jahr">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält das Jahr der Beoachtung. Das Jahr ist ein Pflichtfeld, wenn kein Datum angegeben wurde.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="1"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="Monat">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den Monat der Beobachtung.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="1"/>
        <xs:maxInclusive value="12"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="MTB">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält des Messtischblatt der Beobachtung.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="900"/>
        <xs:maxInclusive value="8799"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="MTBQ">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den Messtischblatt-Quadranten der Beobachtung.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="1"/>
        <xs:maxInclusive value="4"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <xs:element name="Nachweistyp">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den Nachweistyp aus der MultiBaseCS Referenzliste.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  

  <xs:element name="Natura2000">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den Natura2000-Status einer Beobachtung.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <xs:element name="Ortsbezeichnung">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält die Ortsbezeichnung für den Fundort.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
 
  <xs:element name="Qualitaet">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält Informationen zur Qualität der Daten aus der MultiBaseCS Referenzliste.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element> 
 
  <xs:element name="Quelle">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält die Quelle der Beobachtung.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="Rechtswert">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält den Rechtswert der Beobachtung in dem im Parameter EPSG angegebenen System. Die Notation kann der Schnittstellenbeschreibung entnommen werden. Schnittstellenbeschreibung unter: http://www.MultiBaseCS.de/XML/Schnittstelle.pdf.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:decimal">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="999999999"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="Region">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält eine Regionsangabe zu einer Beobachtung.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="Reproduktion">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält Informationen zum Reproduktionsstatus aus der MultiBaseCS Referenzliste.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  
  <xs:element name="RoteListe">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält Informationen zum RoteListe Status aus der MultiBaseCS Referenzliste.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  
  <xs:element name="Sammlung">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält Informationen über die Sammlung in der die Beobachtung abgelegt ist.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  
  <xs:element name="Toleranz">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält Informationen zur Toleranz der Koordinaten aus der MultiBaseCS Referenzliste.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="Verhalten">
    <xs:simpleType>
      <xs:annotation>
        <xs:documentation xml:lang="de">
          Enthält Informationen zum Verhalten aus der MultiBaseCS Referenzliste.
        </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

</xs:schema>