<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:esdl="urn:no:rafisklaget:eseddel-retur"
            targetNamespace="urn:no:rafisklaget:eseddel-retur"
            elementFormDefault="unqualified">
  
  <xsd:element name="eretur" type="esdl:ereturType">
    <xsd:annotation>
      <xsd:documentation>Rot element for retur xml</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="xsd_feil" type="xsd:string"/>
  <xsd:element name="feil" type="xsd:string"/>
  <xsd:element name="melding" type="esdl:meldingType"/>
  <xsd:element name="behandlet_tid" type="xsd:dateTime"/>
  <xsd:element name="kjoper" type="esdl:kjoperType"/>
  <xsd:element name="k_nummer" type="xsd:integer"/>
  <xsd:element name="prod_anlegg" type="xsd:string"/>
  <xsd:element name="kvittering" type="esdl:kvitteringType"/>
  <xsd:element name="returkode" type="xsd:integer"/>
  <xsd:element name="statuskode" type="esdl:statuskodeType"/>
  <xsd:element name="returtekst" type="xsd:string"/>
  <xsd:element name="innsendt_verdi" type="xsd:string" nillable="true"/>
  <xsd:element name="linjenr_ref" type="xsd:integer"/> 
  <xsd:element name="seddelnr" type="xsd:unsignedInt" nillable="true" />
  
  <!-- ===== Simple type Delarations =====-->
  <xsd:simpleType name="test_indikatorType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PROD"/>
      <xsd:enumeration value="TEST"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="statuskodeType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="1"/>   <!-- melding ok -->
      <xsd:enumeration value="100"/> <!-- xsd feil -->
      <xsd:enumeration value="200"/> <!-- logisk feil -->
      <xsd:enumeration value="300"/> <!-- Annen feil -->
    </xsd:restriction>
  </xsd:simpleType>
  
  
  <!-- ===== Complextype Delarations =====-->
  
  <xsd:complexType name="ereturType">
    <xsd:sequence>
      <xsd:element ref="esdl:behandlet_tid"/>
      <xsd:element ref="esdl:statuskode"/> 
      <xsd:element ref="esdl:xsd_feil" minOccurs="0"/>  <!-- Bare aktuell hvis xsd-validering feiler. -->
      <xsd:element ref="esdl:melding" minOccurs="0"/>   <!-- trenger ikke melding for xsd feil -->
      <xsd:element ref="esdl:feil" minOccurs="0"/>      <!-- Bare aktuell ved annen/uventet feil -->
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="meldingType">
    <xsd:sequence>
     <xsd:element ref="esdl:seddelnr" minOccurs="0" maxOccurs="1"/>
     <xsd:element ref="esdl:kjoper" minOccurs="0"/> <!-- ikke nødvendig hvis landingsseddel -->
     <xsd:element ref="esdl:kvittering" minOccurs="0"/> <!-- bare nødvendig ved feil-->
    </xsd:sequence>
    <xsd:attribute name="melding_id_ref" type="xsd:unsignedInt"/> <!-- id på melding hos NRL -->
    <xsd:attribute name="test_indikator" type="esdl:test_indikatorType" use="optional" default="PROD"/>
  </xsd:complexType>
  
  <xsd:complexType name="kjoperType">
    <xsd:sequence maxOccurs="1">
      <xsd:element ref="esdl:k_nummer"/>
      <xsd:element ref="esdl:prod_anlegg"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="kvitteringType">
    <xsd:sequence maxOccurs="1">
      <xsd:element ref="esdl:returkode"/>
      <xsd:element ref="esdl:returtekst"/>
      <xsd:element ref="esdl:innsendt_verdi"  minOccurs="0" maxOccurs="1"/>
      <xsd:element ref="esdl:linjenr_ref" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
  </xsd:complexType>
  
</xsd:schema>
