<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--suppress XmlDefaultAttributeValue -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

    <xs:element name="Report" type="Type_Report">

        <xs:key name="EIM-id-unique">
            <xs:selector xpath=".//EIM_LIST/EIM"/>
            <xs:field xpath="id"/>
        </xs:key>
    </xs:element>

    <xs:complexType name="Type_Report">
        <xs:all>
            <xs:element name="ReportName" type="xs:string" fixed="EKE_EIM" minOccurs="1" maxOccurs="1"/>
            <xs:element name="SubjectId" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="ReferDate" type="xs:date" minOccurs="1" maxOccurs="1"/>
            <xs:element name="Version" type="xs:string" fixed="1.0" minOccurs="1" maxOccurs="1"/>
            <xs:element name="Revision" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Language" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="TechNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Observations" type="Type_Observations" minOccurs="1" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="Type_Observations">
        <xs:sequence>
            <xs:element name="ENTITY_LIST" type="ENTITY_LIST" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ENTITY_LIST">
        <xs:sequence>
            <xs:element name="EIM_LIST" type="EIM_LIST" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="EIM_LIST">
        <xs:sequence>
            <xs:element ref="EIM" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:element name="EIM" type="EIM"/>

    <xs:complexType name="EIM">
        <xs:all>
            <xs:element name="id" type="eim_id" minOccurs="1" maxOccurs="1"/>
            <xs:element name="id_rah" type="rah_id" minOccurs="1" maxOccurs="1"/>
            <xs:element name="sa_kat" type="sa_kat" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sa_expo_pre" type="long_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sa_expo_post" type="long_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sa_sih_einf" type="long_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sa_sih_umf" type="long_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sa_pos_anp" type="long_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sa_ltv" type="double_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sa_rwa" type="long_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="irb_kat" type="irb_kat" minOccurs="0" maxOccurs="1"/>
            <xs:element name="irb_ead" type="long_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="irb_lgd" type="closed_interval_0_1_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="irb_pd" type="closed_interval_0_1_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="irb_el" type="long_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
            <xs:element name="irb_rwa" type="long_or_ausweichwert" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>

    <xs:simpleType name="id">
        <xs:restriction base="xs:string">
            <xs:minLength value="4"/>
            <xs:maxLength value="64"/>
            <xs:pattern value="[A-Za-z0-9_-]+"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="rah_id">
        <xs:restriction base="id">
            <xs:pattern value="RA_[A-Za-z0-9_-]+"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="eim_id">
        <xs:restriction base="id">
            <xs:pattern value="EM_[A-Za-z0-9_-]+"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ausweichwert">
        <xs:restriction base="xs:string">
            <xs:enumeration value="ALT"/>
            <xs:enumeration value="WEF"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="long_or_ausweichwert">
        <xs:union memberTypes="xs:long ausweichwert"/>
    </xs:simpleType>

    <xs:simpleType name="double_or_ausweichwert">
        <xs:union memberTypes="xs:double ausweichwert"/>
    </xs:simpleType>

    <xs:simpleType name="closed_interval_0_1">
        <xs:restriction base="xs:double">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="closed_interval_0_1_or_ausweichwert">
        <xs:union memberTypes="closed_interval_0_1 ausweichwert"/>
    </xs:simpleType>

    <xs:simpleType name="sa_kat">
        <xs:restriction base="xs:string">
            <xs:enumeration value="CRSABIS_01"/>
            <xs:enumeration value="CRSABIS_02"/>
            <xs:enumeration value="CRSABIS_03"/>
            <xs:enumeration value="CRSABIS_04"/>
            <xs:enumeration value="CRSABIS_06"/>
            <xs:enumeration value="CRSABIS_07"/>
            <xs:enumeration value="CRSABIS_08"/>
            <xs:enumeration value="CRSABIS_09"/>
            <xs:enumeration value="CRSABIS_10"/>
            <xs:enumeration value="CRSABIS_11"/>
            <xs:enumeration value="CRSABIS_12"/>
            <xs:enumeration value="CRSABIS_13"/>
            <xs:enumeration value="CRSABIS_14"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="irb_kat">
        <xs:restriction base="xs:string">
            <xs:enumeration value="CRIRB_01"/>
            <xs:enumeration value="CRIRB_02"/>
            <xs:enumeration value="CRIRB_03"/>
            <xs:enumeration value="CRIRB_04"/>
            <xs:enumeration value="CRIRB_05"/>
            <xs:enumeration value="CRIRB_06"/>
            <xs:enumeration value="CRIRB_07"/>
            <xs:enumeration value="CRIRB_08"/>
            <xs:enumeration value="CRIRB_09"/>
            <xs:enumeration value="CRIRB_10"/>
            <xs:enumeration value="CRIRB_11"/>
        </xs:restriction>
    </xs:simpleType>

</xs:schema>
