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

  <xs:element name="tarifssystemlsh" type="tarifsystemLsh"/>

  <xs:complexType name="tarifsystemLsh">
    <xs:annotation>
      <xs:documentation><![CDATA[Created by Team CC - ITSV on 21.02.2018
Schemaexport der Lohnsoftwarehersteller]]></xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" name="gueltigkeitstichtag" type="xs:date"/>
      <xs:element minOccurs="0" name="erstellzeitpunkt" type="xs:dateTime"/>
      <xs:element minOccurs="0" name="beitragbemessungsbetraege">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="beitragbemessungsbetrag" type="beitragbemessungsbetrag"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="bbbwerte">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="bbbwert" type="bbbwert"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="beschaeftigtengruppen">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="beschaeftigtengruppe" type="beschaeftigtengruppe"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="dienstgebergruppen">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="dienstgebergruppe" type="dienstgebergruppe"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="ergaenzungen">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="ergaenzung" type="ergaenzung"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="tarifgruppen">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="tarifgruppe" type="tarifgruppe"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="personengruppeReds">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="personengruppeRed" type="personengruppeRed"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="tarife">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="tarif" type="tarif"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="tarifsets">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="tarifset" type="tarifset"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="verrechBasisTypen">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="verrechBasisTyp" type="verrechBasisTyp"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="verrechPosTypen">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="verrechPosTyp" type="verrechPosTyp"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="verrechBasisPositionKombinationen">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="verrechBasisPositionKombination" type="verrechBasPosKomb"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="verrechBasisPositionKombinationenReihungen">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="verrechBasisPositionKombinationReihung" type="verrechBasPosKombReihung"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="zuAbschlaege">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="zuAbschlag" type="zuAbschlag"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="zuAbschlaegeSteuerung">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="zuAbschlagSteuerung" type="zuAbschlagSteuerung"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="tarifgruppeSetZuordnungen">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="tarifgruppeSetZuord" type="tarifgruppeSetZuord"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="zuAbschlagTarifsetZuordnungen">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="zuAbschlagTarifsetZuord" type="zuabschlagTarifsetZuord"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="beitragbemessungsbetrag">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="bezeichnung" type="xs:string"/>
          <xs:element minOccurs="0" name="code" type="xs:string"/>
          <xs:element minOccurs="0" name="periode" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType abstract="true" name="abstractDataEntity">
    <xs:complexContent>
      <xs:extension base="abstractSurrogateKeyEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="bisDatum" type="xs:date"/>
          <xs:element minOccurs="0" name="traegergruppe" type="traegergruppe"/>
          <xs:element minOccurs="0" name="vonDatum" type="xs:date"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType abstract="true" name="abstractSurrogateKeyEntity">
    <xs:sequence/>
    <xs:attribute name="xmlId" type="xs:long"/>
  </xs:complexType>

  <xs:complexType name="bbbwert">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="beitragbemessungsbetrag_id" type="xs:long"/>
          <xs:element minOccurs="0" name="betrag" type="xs:long"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="beschaeftigtengruppe">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="beschreibung" type="xs:string"/>
          <xs:element minOccurs="0" name="bezeichnung" type="xs:string"/>
          <xs:element minOccurs="0" name="code" type="xs:string"/>
          <xs:element minOccurs="0" name="kurzbezeichnung" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="dienstgebergruppe">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="beschreibung" type="xs:string"/>
          <xs:element minOccurs="0" name="code" type="xs:string"/>
          <xs:element minOccurs="0" name="kurzbezeichnung" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="ergaenzung">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="beschreibung" type="xs:string"/>
          <xs:element minOccurs="0" name="bezeichnung" type="xs:string"/>
          <xs:element minOccurs="0" name="code" type="xs:string"/>
          <xs:element minOccurs="0" name="kurzbezeichnung" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="tarifgruppe">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="beschaeftigtengruppen" type="xs:long"/>
          <xs:element minOccurs="0" name="betrieblicheVorsorgeZulaessig" type="xs:boolean"/>
          <xs:element minOccurs="0" name="bezeichnung" type="xs:string"/>
          <xs:element minOccurs="0" name="code" type="xs:string"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="dienstgeberGruppen" nillable="true" type="xs:long"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="ergaenzungen" nillable="true" type="xs:long"/>
          <xs:element minOccurs="0" name="fallweiseBeschaeftigungZulaessig" type="xs:boolean"/>
          <xs:element minOccurs="0" name="kammerZugehoerigkeit" type="kammerZugehoerigkeit"/>
          <xs:element minOccurs="0" name="kurzbezeichnung" type="xs:string"/>
          <xs:element minOccurs="0" name="kurzfristBeschaeftigungZulaessig" type="xs:boolean"/>
          <xs:element minOccurs="0" name="personengruppeRed" type="xs:long"/>
          <xs:element minOccurs="0" name="regelmaessigeBeschaeftigungZulaessig" type="xs:boolean"/>
          <xs:element minOccurs="0" name="kuendigungsentschaedigungZulaessig" type="xs:boolean"/>
          <xs:element minOccurs="0" name="urlaubsersatzleistungZulaessig" type="xs:boolean"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="validZuAbschlaege" nillable="true" type="xs:long"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="personengruppeRed">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="beschaeftigungsbereichbez" type="xs:string"/>
          <xs:element minOccurs="0" name="beschaeftigungsbereichcode" type="xs:string"/>
          <xs:element minOccurs="0" name="beschaeftigungsbereichkurzbez" type="xs:string"/>
          <xs:element minOccurs="0" name="freierdienstvertrag" type="xs:boolean"/>
          <xs:element minOccurs="0" name="geringfuegigkeit" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="tarif">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="dienstgeberAnteil" type="xs:decimal"/>
          <xs:element minOccurs="0" name="dienstnehmerAnteil" type="xs:decimal"/>
          <xs:element minOccurs="0" name="tarifZweig" type="tarifZweig"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="tarifset">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="bezeichnung" type="xs:string"/>
          <xs:element minOccurs="0" name="kurzbezeichnung" type="xs:string"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="tarife" nillable="true" type="xs:long"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="verrechBasisTyp">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="bezeichnung" type="xs:string"/>
          <xs:element minOccurs="0" name="code" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="verrechPosTyp">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="bezeichnung" type="xs:string"/>
          <xs:element minOccurs="0" name="code" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="verrechBasPosKomb">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="bundesland" type="bundesland"/>
          <xs:element minOccurs="0" name="verrechnungBasisTyp" type="xs:long"/>
          <xs:element minOccurs="0" name="verrechnungPosTyp" type="xs:long"/>
          <xs:element minOccurs="0" name="zwingend" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="verrechBasPosKombReihung">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="gruppierungKennzeichen" type="xs:string"/>
          <xs:element minOccurs="0" name="verrechBasPosKomb" type="xs:long"/>
          <xs:element minOccurs="0" name="verrechnungPositionReihung" type="xs:int"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="zuAbschlag">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="beitragbemessungsbetraege" nillable="true" type="xs:long"/>
          <xs:element minOccurs="0" name="beschreibung" type="xs:string"/>
          <xs:element minOccurs="0" name="bezeichnung" type="xs:string"/>
          <xs:element minOccurs="0" name="code" type="xs:string"/>
          <xs:element minOccurs="0" name="kurzbezeichnung" type="xs:string"/>
          <xs:element minOccurs="0" name="versicherungsRelevant" type="xs:boolean"/>
          <xs:element minOccurs="0" name="zuabschlagkz" type="zuabschlagkz"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="zuAbschlagSteuerung">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="altersgrenzeMinJahr" type="xs:decimal"/>
          <xs:element minOccurs="0" name="altersgrenzeSollJahr" type="xs:decimal"/>
          <xs:element minOccurs="0" name="altersgrenzeMaxJahr" type="xs:decimal"/>
          <xs:element minOccurs="0" name="geborenBis" type="xs:date"/>
          <xs:element minOccurs="0" name="geschlecht" type="geschlecht"/>
          <xs:element minOccurs="0" name="grenzwertMaximalBetrag" type="xs:int"/>
          <xs:element minOccurs="0" name="grenzwertMinimalBetrag" type="xs:int"/>
          <xs:element minOccurs="0" name="zuAbschlag" type="xs:long"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="tarifgruppeSetZuord">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="tarifgruppe" type="xs:long"/>
          <xs:element minOccurs="0" name="tarifset" type="xs:long"/>
          <xs:element minOccurs="0" name="verrechBasPosKombination" type="xs:long"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="zuabschlagTarifsetZuord">
    <xs:complexContent>
      <xs:extension base="abstractDataEntity">
        <xs:sequence>
          <xs:element minOccurs="0" name="tarifsetByTarifsetId" type="xs:long"/>
          <xs:element minOccurs="0" name="verrechBasPosKombination" type="xs:long"/>
          <xs:element minOccurs="0" name="zuAbschlag" type="xs:long"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="tarifgruppe" nillable="true" type="xs:long"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:simpleType name="traegergruppe">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OEGK"/>
      <xs:enumeration value="BVAEB-BVA"/>
      <xs:enumeration value="BVAEB-VAEB"/>
      <xs:enumeration value="BKKVB"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="kammerZugehoerigkeit">
    <xs:restriction base="xs:string">
      <xs:enumeration value="L"/>
      <xs:enumeration value="A"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="tarifZweig">
    <xs:restriction base="xs:string">
      <xs:enumeration value="BV"/>
      <xs:enumeration value="AK"/>
      <xs:enumeration value="DG"/>
      <xs:enumeration value="IE"/>
      <xs:enumeration value="PV"/>
      <xs:enumeration value="SE"/>
      <xs:enumeration value="WA"/>
      <xs:enumeration value="AV"/>
      <xs:enumeration value="AA"/>
      <xs:enumeration value="LK"/>
      <xs:enumeration value="UV"/>
      <xs:enumeration value="WF"/>
      <xs:enumeration value="KV"/>
      <xs:enumeration value="SW"/>
      <xs:enumeration value="NB"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="bundesland">
    <xs:restriction base="xs:string">
      <xs:enumeration value="NO"/>
      <xs:enumeration value="S"/>
      <xs:enumeration value="K"/>
      <xs:enumeration value="ST"/>
      <xs:enumeration value="V"/>
      <xs:enumeration value="B"/>
      <xs:enumeration value="OO"/>
      <xs:enumeration value="W"/>
      <xs:enumeration value="T"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="geschlecht">
    <xs:restriction base="xs:string">
      <xs:enumeration value="W"/>
      <xs:enumeration value="M"/>
      <xs:enumeration value="D"/>
      <xs:enumeration value="O"/>
      <xs:enumeration value="I"/>
      <xs:enumeration value="K"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="zuabschlagkz">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Z"/>
      <xs:enumeration value="A"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>