<?xml version="1.0" encoding="UTF-8"?>
<xs:schema  xmlns="http://service.chipkarte.at/rez/v1/" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://service.chipkarte.at/rez/v1/"  xmlns:xs="http://www.w3.org/2001/XMLSchema"  attributeFormDefault="unqualified" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
		schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" />

  <xs:element name="eCSRegoDS">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="eCSRegoWithSignature" minOccurs="1"  maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

 
  <xs:group name="eCSRegoWithSignature" >
    <xs:sequence>
      <xs:element name="eCSRego" minOccurs="1"  maxOccurs="1" type="eCSRego"/>
      <xs:element ref="dsig:Signature" maxOccurs="1" minOccurs="1"></xs:element>
    </xs:sequence>
  </xs:group>
  
  <xs:complexType name="eCSRego">
    <xs:sequence>
      <xs:element name="VPDatenAbg" type="VPDatenAbg" minOccurs="1" maxOccurs="1" />
      <xs:element name="Anspruch" type="Anspruch" minOccurs="1" maxOccurs="1" />
      <xs:element name="RegoDaten" type="RegoDaten" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute type="FormatkennungType" name="Formatkennung" use="required" />
    <xs:attribute type="RezRegoIdType" name="Id" use="required" />
  </xs:complexType>

  <xs:element name="eCSRezDS">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="eCSRezWithSignature" minOccurs="1"  maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
   
  <xs:group name="eCSRezWithSignature" >
    <xs:sequence>
      <xs:element name="eCSRez" minOccurs="1"  maxOccurs="1" type="eCSRez"/>
      <xs:element ref="dsig:Signature" maxOccurs="1" minOccurs="1"></xs:element>
    </xs:sequence>
  </xs:group>
 
  <xs:complexType name="eCSRez">
    <xs:sequence>
      <xs:element name="VPDatenAbg" type="VPDatenAbg" minOccurs="1" maxOccurs="1" />
      <xs:element name="VPDatenVo" type="VPDatenVo" minOccurs="1" maxOccurs="1" />
      <xs:choice>
        <xs:element name="Anspruch" type="Anspruch" />
        <xs:element name="EKVKDaten" type="EKVKDaten" />
      </xs:choice>
      <xs:element name="RezeptDaten" type="RezeptDaten" minOccurs="1" maxOccurs="1" />
      <xs:element name="VordDaten" type="VordDaten" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute type="FormatkennungType" name="Formatkennung" use="required" />
    <xs:attribute type="RezRegoIdType" name="Id" use="required" />
  </xs:complexType>

   <xs:simpleType name="FormatkennungType">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="RezRegoIdType">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="HeilmittelartType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="MZUB" />
      <xs:enumeration value="SO" />
      <xs:enumeration value="ASP" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="VersicherungsartType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="A" />
      <xs:enumeration value="B" />
      <xs:enumeration value="C" />
      <xs:enumeration value="D" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="VersicherungskategorieType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="01" />
      <xs:enumeration value="05" />
      <xs:enumeration value="07" />
      <xs:enumeration value="20" />
      <xs:enumeration value="21" />
      <xs:enumeration value="22" />
      <xs:enumeration value="24" />
      <xs:enumeration value="29" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AnspruchsartType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="G" />
      <xs:enumeration value="S" />
      <xs:enumeration value="S1" />
      <xs:enumeration value="S2" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="BegruendungKorrekturType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="H" />
      <xs:enumeration value="M" />
      <xs:enumeration value="F" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="HinweisAbrechnungType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="P" />
      <xs:enumeration value="A" />   
      <xs:enumeration value="X" />
      <xs:enumeration value="F" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="StatusAbgabeType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="AK" />
      <xs:enumeration value="AP" />
      <xs:enumeration value="IB" />
      <xs:enumeration value="TK" />
      <xs:enumeration value="TP" />
      <xs:enumeration value="KA" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AbgabeArtType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="C" />
      <xs:enumeration value="I" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="NotfallkennzeichenType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="EN" />
      <xs:enumeration value="PV" />
      <xs:enumeration value="EH" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="KeineAbsBewilligungType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="DOK" />
      <xs:enumeration value="FACH" />
      <xs:enumeration value="ALTER" />
      <xs:enumeration value="IND" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="GeschlechtType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="M" />
      <xs:enumeration value="W" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="VPDatenAbg">
    <xs:sequence>
      <xs:element name="vpnr" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="ordnr" type="xs:int" minOccurs="1" maxOccurs="1" />
      <xs:element name="vpName" type="xs:string" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="VPDatenVo">
    <xs:sequence>
      <xs:element name="vpnr" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="ordnr" type="xs:int" minOccurs="1" maxOccurs="1" />
      <xs:element name="vpName" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="fg" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="voName" type="xs:string" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="EKVKDaten">
    <xs:sequence>
      <xs:element name="land" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="nr" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="vorName" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="famName" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="ekvkGeschl" type="GeschlechtType" minOccurs="1" maxOccurs="1" />
      <xs:element name="auslKvt" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="kvt" type="xs:string" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Anspruch">
    <xs:sequence>
      <xs:element name="vsnr" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="vsnrGeschl" type="GeschlechtType" minOccurs="0" maxOccurs="1" />
      <xs:element name="vsnrGebDat" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="titelHinten" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="titelVorne" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="vorName" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="famName" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="vsnrAbl" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="titelHintenAbl" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="titelVorneAbl" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="vorNameAbl" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="famNameAbl" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="lzKvt" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="vskat" type="VersicherungskategorieType" minOccurs="0" maxOccurs="1" />
      <xs:element name="aart" type="AnspruchsartType" minOccurs="0" maxOccurs="1" />
      <xs:element name="kzkostenbef" type="xs:boolean" minOccurs="0" maxOccurs="1" />
      <xs:element name="kzrezbef" type="xs:boolean" minOccurs="0" maxOccurs="1" />
      <xs:element name="vsart" type="VersicherungsartType" minOccurs="0" maxOccurs="1" />
      <xs:element name="ermitteltAm" type="xs:string" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="RezeptDaten">
    <xs:sequence>
      <xs:element name="vordatum" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="spzeit" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="giltBis" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="abgdatum" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="anzrezgeb" type="xs:int" minOccurs="1" maxOccurs="1" />
      <xs:element name="hwAbr" type="HinweisAbrechnungType" minOccurs="0" maxOccurs="1" />
      <xs:element name="zusatzinfo" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="kzSuchtgift" type="xs:boolean" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="VordDaten">
    <xs:sequence>
      <xs:element name="vordId" type="xs:int" minOccurs="1" maxOccurs="1" />
      <xs:element name="hmArt" type="HeilmittelartType" minOccurs="1" maxOccurs="1" />
      <xs:choice>
        <xs:element name="pzn" type="xs:string" />
        <xs:element name="magZub" type="xs:string" />
        <xs:element name="sonstMittel" type="xs:string" />
      </xs:choice>
      <xs:element name="pznName" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="packAnz" type="xs:int" minOccurs="1" maxOccurs="1" />
      <xs:element name="menge" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="mengeArt" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="grundKeineBew" type="KeineAbsBewilligungType" minOccurs="0" maxOccurs="1" />
      <xs:element name="kzPsychotr" type="xs:boolean" minOccurs="0" maxOccurs="1" />
      <xs:element name="abgArt" type="AbgabeArtType" minOccurs="0" maxOccurs="1" />
      <xs:element name="kzMir" type="xs:boolean" minOccurs="0" maxOccurs="1" />
      <xs:element name="kzUnfall" type="xs:boolean" minOccurs="0" maxOccurs="1" />
      <xs:element name="kzAuseinz" type="xs:boolean" minOccurs="0" maxOccurs="1" />
      <xs:element name="kzNotfall" type="NotfallkennzeichenType" minOccurs="0" maxOccurs="1" />
      <xs:element name="AbsAnfId" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="AbsLzbId" type="xs:long" minOccurs="0" maxOccurs="1" />
      <xs:element name="zusatzinfo" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="AbgDaten" type="AbgDaten" minOccurs="1" maxOccurs="99" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="AbgDaten">
    <xs:sequence>
      <xs:element name="abgId" type="xs:int" minOccurs="1" maxOccurs="1" />
      <xs:element name="status" type="StatusAbgabeType" minOccurs="1" maxOccurs="1" />
      <xs:element name="expName" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="spzeit" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="abgdatum" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="abguhrzeit" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="abganz" type="xs:int" minOccurs="0" maxOccurs="1" />
      <xs:element name="begrKorrek" type="BegruendungKorrekturType" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="RegoDaten">
    <xs:sequence>
      <xs:element name="vordatum" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="spzeit" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="abgdatum" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="anzrezgeb" type="xs:int" minOccurs="1" maxOccurs="1" />
      <xs:element name="hwAbr" type="HinweisAbrechnungType" minOccurs="0" maxOccurs="1" />
      <xs:element name="zusatzinfo" type="xs:string" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>