<?xml version="1.0" encoding="iso-8859-1"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified"  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="EEGUmlageDaten">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Ansprechpartner" type = "Ansprechpartner_check" minOccurs = "0" maxOccurs = "1"/>
        <xs:element name="Receiver" type = "Receiver_check" minOccurs = "1" maxOccurs = "1" />
        <xs:element name="Sender" type = "Sender_check" minOccurs = "1" maxOccurs = "1" />
        <xs:element name="Zeitraum"  type = "Zeitraum_check" minOccurs = "1" maxOccurs = "1" />
        <xs:element name="Jahr" type = "Jahr_check" minOccurs = "1" maxOccurs = "1" />
        <xs:element name="CreationDateTime" type = "CreationDateTime_check" minOccurs = "1" maxOccurs = "1" />
        <xs:element name="DocumentVersion" type = "DocumentVersion_check" minOccurs = "1" maxOccurs = "1" />

        <xs:element name="AngabeP60undP61" minOccurs = "0" maxOccurs = "unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="KategorienListe" minOccurs = "1" maxOccurs = "unbounded">
                <xs:complexType>
                  <xs:choice>
                    <xs:sequence>
                      <xs:element name="Umlagekategorie" type = "Umlagekategorie60u61_check"  minOccurs = "1" maxOccurs = "1"/>
                      <xs:element name="Strommenge" type = "Strommenge_check" minOccurs = "0" maxOccurs = "1"/>
                      <xs:element name="Eurobetrag" type = "Eurobetrag_check" minOccurs = "0" maxOccurs = "1"/>
                    </xs:sequence>
                  </xs:choice>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="Bilanzkreis" type="Bilanzkreis_check" use="optional" />
          </xs:complexType>
        </xs:element>
        <xs:element minOccurs = "0" maxOccurs="unbounded" name="AngabeP63undP103">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="VorgangsNummer" type = "VorgangsNummer_check" minOccurs = "1" maxOccurs = "1"/>
              <xs:element name="Antragsteller" type = "Antragsteller_check" minOccurs = "1" maxOccurs = "1"/>
              <xs:element name="Anschrift" type = "Anschrift_check" minOccurs = "1" maxOccurs = "1"/>
              <xs:element name="PLZ" type = "PLZ_check" minOccurs = "1" maxOccurs = "1"/>
              <xs:element name="Ort" type = "ORT_check" minOccurs = "1" maxOccurs = "1"/>
              <xs:element name="Datum" type = "Datum_check" minOccurs = "1" maxOccurs = "1"/>
              <xs:element name="Selbstbehaltsstrommenge" type = "Selbstbehaltsstrommenge_check" minOccurs = "0" maxOccurs = "1" />
              <xs:element name="AbnahmestellenbezogenerAnteilDesUnternehmensCAPs" type = "Eurobetrag_check" minOccurs = "0" maxOccurs = "1"/>
              <xs:element maxOccurs="unbounded" name="Bewegungsdaten">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="KategorienListe">
                      <xs:complexType>
                        <xs:sequence>
                           <xs:element name="UmlagekategorieBesAR" type = "Umlagekategorie63u103_check"  minOccurs = "1" maxOccurs = "1"/>
                           <xs:element name="Strommenge" type = "Strommenge_check" minOccurs = "1" maxOccurs = "1" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="Bilanzkreis" type="Bilanzkreis_check" use="optional" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

   <xs:complexType name="Umlagekategorie60u61_check">
      <xs:attribute name="v" >
          <xs:simpleType>
             <xs:restriction base="xs:string">
                <xs:enumeration value="SM601------100" />
                <xs:enumeration value="LV613------100" />
                <xs:enumeration value="SONDER-SACHVER" />
                <xs:enumeration value="SP61k1--AUS-SM" />
                <xs:enumeration value="SP61k1--AUS-LV" />
                <xs:enumeration value="SP61k2--AUS-SM" />
                <xs:enumeration value="SP61k2--AUS-LV" />
                <xs:enumeration value="SP61k41AUSSM20" />
                <xs:enumeration value="SP61k41AUSLV20" />
                <xs:enumeration value="SP61k42AUSSM20" />
                <xs:enumeration value="SP61k42AUSLV20" />
                <xs:enumeration value="SM61k3-------0" />
                <xs:enumeration value="SM61k43-----20" />
                <xs:enumeration value="SM1044-------0" />
                <xs:enumeration value="SM1044-----100" />
             </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType>

   <xs:complexType name="Umlagekategorie63u103_check">
      <xs:attribute name="v" >
          <xs:simpleType>
             <xs:restriction base="xs:string">
                <xs:enumeration value="BA613-4-----SU" />
                <xs:enumeration value="BA6111------SU" />
                <xs:enumeration value="BA61e1-2----SU" />
                <xs:enumeration value="BA642-65-103SU" />
                <xs:enumeration value="BA613-4-SB---0" />
                <xs:enumeration value="BA613-4------0" />
                <xs:enumeration value="BA6111-SB--RED" />
                <xs:enumeration value="BA6111-----RED" />
                <xs:enumeration value="BA61e1-2SB-RED" />
                <xs:enumeration value="BA61e1-2---RED" />
                <xs:enumeration value="BA6421-----100" />
                <xs:enumeration value="BA6422------15" />
                <xs:enumeration value="BA6422------20" />
                <xs:enumeration value="BA6423-------0" />
                <xs:enumeration value="BA6424a----005" />
                <xs:enumeration value="BA6424b----010" />
                <xs:enumeration value="BA652-------20" />
                <xs:enumeration value="BA10331--INDIV" />
                <xs:enumeration value="BA10332--INDIV" />
                <xs:enumeration value="BA10342----100" />
                <xs:enumeration value="BA10342-----20" />
                <xs:enumeration value="BA10342--INDIV" />
             </xs:restriction>
           </xs:simpleType>
      </xs:attribute>
   </xs:complexType>

   <xs:complexType name="Strommenge_check">
      <xs:attribute name="v">
          <xs:simpleType>
              <xs:restriction base="xs:unsignedLong">
              <xs:maxInclusive value="99999999999"/>
              <xs:minInclusive value="0"/>
              </xs:restriction>
          </xs:simpleType>             
       </xs:attribute>
       <xs:attribute name="Einheit" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="kWh" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType>

   <xs:complexType name="Selbstbehaltsstrommenge_check">
      <xs:attribute name="v">
          <xs:simpleType>
              <xs:restriction base="xs:unsignedLong">
                <xs:maxInclusive value="1000000"/>
                <xs:minInclusive value="0"/>
              </xs:restriction>
          </xs:simpleType>             
      </xs:attribute>
      <xs:attribute name="Einheit" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="kWh" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType>

   <xs:complexType name="Eurobetrag_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:decimal">
                 <xs:fractionDigits  value="2"/>
                 <xs:maxInclusive value="9999999999.99"/>
                 <xs:minInclusive value="-9999999999.99"/>
              </xs:restriction>
          </xs:simpleType>    
      </xs:attribute>
      <xs:attribute name="Einheit" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:enumeration value="Euro" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType>

   <xs:complexType name="Preis_check">
      <xs:attribute name="v" type="xs:decimal">
      </xs:attribute>
      <xs:attribute name="Einheit" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:enumeration value="Cent/kWh" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType>

   <xs:complexType name="DocumentVersion_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:enumeration value="1.0" />
                 <xs:enumeration value="1.1" />
                 <xs:enumeration value="1.2" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType>         

   <xs:complexType name="Sender_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:maxLength value="50" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType>

   <xs:complexType name="Receiver_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:enumeration value="1" />
                 <xs:enumeration value="2" />
                 <xs:enumeration value="3" />
                 <xs:enumeration value="4" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType>

   <xs:complexType name="Zeitraum_check">
      <xs:attribute name="v" >
          <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="1" />
               <xs:enumeration value="2" />
               <xs:enumeration value="3" />
               <xs:enumeration value="4" />
               <xs:enumeration value="5" />
               <xs:enumeration value="6" />
               <xs:enumeration value="7" />
               <xs:enumeration value="8" />
               <xs:enumeration value="9" />
               <xs:enumeration value="10" />
               <xs:enumeration value="11" />
               <xs:enumeration value="12" />
               <xs:enumeration value="13" />
            </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType>         

   <xs:complexType name="Jahr_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:maxLength value="4" />
                 <xs:pattern value="[2][0][0-9][0-9]"/>
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType>         

   <xs:complexType name="CreationDateTime_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:dateTime">
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType> 

   <xs:complexType name="Ansprechpartner_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:maxLength value="255" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType> 

   <xs:simpleType  name="Bilanzkreis_check">
      <xs:restriction base="xs:string">
          <xs:minLength value="16" />
          <xs:maxLength value="16" />
          <xs:pattern value="[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\-]{16}"/>
      </xs:restriction>
   </xs:simpleType>

   <xs:complexType name="VorgangsNummer_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:maxLength value="32" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType> 

   <xs:complexType name="Antragsteller_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:maxLength value="255" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType> 

   <xs:complexType name="Anschrift_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:maxLength value="255" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType> 

   <xs:complexType name="PLZ_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:maxLength value="10" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType> 

   <xs:complexType name="ORT_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:string">
                 <xs:maxLength value="255" />
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType> 

   <xs:complexType name="Datum_check">
      <xs:attribute name="v" >
          <xs:simpleType>
              <xs:restriction base="xs:date">
              </xs:restriction>
          </xs:simpleType>
      </xs:attribute>
   </xs:complexType> 
   
</xs:schema>