<?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:efakt="urn:no:rafisklaget:seddel:efaktura"
            targetNamespace="urn:no:rafisklaget:seddel:efaktura" 
            elementFormDefault="qualified">
    
   
    <!-- ===== Rot element ===== -->
    <xsd:element name="efaktura" type="efakt:eFakturaType">
        <xsd:annotation>
            <xsd:documentation>Rot Element for melding.</xsd:documentation>
        </xsd:annotation>
    </xsd:element>
    
    
    <!-- ===== Element Declarations ===== -->
    <xsd:element name="fakturanr" type="xsd:positiveInteger"/>
    <xsd:element name="fakturadato" type="xsd:date"/>
    <xsd:element name="forfallsdato" type="xsd:date"/>
    <xsd:element name="kid" type="xsd:string"/>
    <xsd:element name="fakturatekst" type="xsd:string"/>
    <xsd:element name="orgnr" type="xsd:string"/>
    <xsd:element name="navn" type="xsd:string"/>
    <xsd:element name="adresse" type="xsd:string"/>
    <xsd:element name="postnr" type="xsd:string"/>
    <xsd:element name="poststed" type="xsd:string"/>
    <xsd:element name="bankkontonr" type="xsd:string"/>
    <xsd:element name="idkode" type="xsd:string"/>
    <xsd:element name="kundenr" type="xsd:string"/>
    <xsd:element name="produksjonsanlegg" type="xsd:string"/>
    <xsd:element name="gln" type="xsd:positiveInteger"/>
    <xsd:element name="fakturaref" type="xsd:string"/>
    
    
    <!-- ====== Simple Types ===== -->
    <xsd:simpleType name="testIndikatorType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="PROD"/> 
            <xsd:enumeration value="TEST"/>
        </xsd:restriction>
    </xsd:simpleType>
    
     <xsd:simpleType name="oppgjorsform">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="OGL"/> 
            <xsd:enumeration value="ORD"/>
            <xsd:enumeration value="K"/>
        </xsd:restriction>
    </xsd:simpleType>
    
    <xsd:simpleType name="stringJaNei">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="JA"/>
            <xsd:enumeration value="NEI"/>
        </xsd:restriction>
    </xsd:simpleType>
  
    
    <!-- ===== Complextype Delarations ===== -->
    <xsd:complexType name="eFakturaType">
        <xsd:sequence>
            <xsd:element name="faktura" type="efakt:fakturaType"/>
        </xsd:sequence>
        <xsd:attribute name="test_indikator" type="efakt:testIndikatorType" use="optional" default="PROD"/>
    </xsd:complexType>
    
    <xsd:complexType name="fakturaType">
        <xsd:sequence>
            <xsd:element name="hode" type="efakt:hodeType"/>
            <xsd:element name="detaljer" type="efakt:detaljerType"/>
            <xsd:element name="totaler" type="efakt:totalerType"/>
        </xsd:sequence>
        <xsd:attribute name="type" type="efakt:oppgjorsform" use="required"/>
    </xsd:complexType>
    
    <xsd:complexType name="hodeType">
        <xsd:sequence>
            <xsd:element ref="efakt:fakturanr"/>
            <xsd:element ref="efakt:fakturadato"/>
            <xsd:element ref="efakt:forfallsdato"/>
            <xsd:element ref="efakt:kid"/>
            <xsd:element ref="efakt:fakturatekst" minOccurs="0"/>
            <xsd:element name="avgiftsfritt" type="efakt:stringJaNei"/>
            <xsd:element name="parter" type="efakt:parterType"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="parterType">
        <xsd:sequence>
            <xsd:element name="salgslag" type="efakt:salgslagType"/>
            <xsd:element name="mottaker" type="efakt:mottakerType"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="salgslagType">
        <xsd:sequence>
           <xsd:element ref="efakt:orgnr"/>
           <xsd:element ref="efakt:navn"/>
           <xsd:element ref="efakt:adresse"/>
           <xsd:element ref="efakt:postnr"/>
           <xsd:element ref="efakt:poststed"/>
           <xsd:element ref="efakt:bankkontonr"/>
           <xsd:element ref="efakt:idkode"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="mottakerType">
        <xsd:sequence>
           <xsd:element ref="efakt:kundenr"/>
           <xsd:element ref="efakt:orgnr" minOccurs="0"/>
           <xsd:element ref="efakt:gln" minOccurs="0"/>
           <xsd:element ref="efakt:navn"/>
           <xsd:element ref="efakt:adresse" minOccurs="0"/>
           <xsd:element ref="efakt:postnr" minOccurs="0"/>
           <xsd:element ref="efakt:poststed" minOccurs="0"/>
           <xsd:element ref="efakt:produksjonsanlegg" minOccurs="0"/>
           <xsd:element ref="efakt:fakturaref" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    
     <xsd:complexType name="detaljerType">
        <xsd:sequence>
            <xsd:element name="linje" type="efakt:linjeType" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
        <xsd:attribute name="ant_lin" type="xsd:nonNegativeInteger" use="required"/>
    </xsd:complexType>
    
    <xsd:complexType name="linjeType">
        <xsd:sequence>
          <xsd:element name="seddelnummer" type="xsd:positiveInteger"/>
          <xsd:element name="registreringsmerke" type="xsd:string"/>
          <xsd:element name="fartoynavn" type="xsd:string" minOccurs="0"/>
          <xsd:element name="flaggstat" type="xsd:string" minOccurs="0"/>
          <xsd:element name="fiskernummer" type="xsd:string"/>
          <xsd:element name="fiskernavn" type="xsd:string" minOccurs="0"/>
          <xsd:element name="mottaksanlegg" type="xsd:string" minOccurs="0"/>
          <xsd:element name="mottaksanleggnavn" type="xsd:string" minOccurs="0"/>
          <xsd:element name="varebelop" type="xsd:decimal"/>
          <xsd:element name="mvavarebelop" type="xsd:decimal" minOccurs="0"/>
          <xsd:element name="tilskudd" type="xsd:decimal" minOccurs="0"/>
          <xsd:element name="egenandel" type="xsd:decimal" minOccurs="0"/>
          <xsd:element name="sloyekostnad_belop" type="xsd:decimal" minOccurs="0"/>
          <xsd:element name="sloyekostnad_kvantum" type="xsd:decimal" minOccurs="0"/>
          <xsd:element name="sloyekostnad_sats" type="xsd:decimal" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="totalerType">
        <xsd:sequence>
            <xsd:element name="sumvarelinjer" type="xsd:decimal"/>
            <xsd:element name="mvavarebelop" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="sloyekostnad" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="lagsavgift" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="produktavgift" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="strukturavgift" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="kontrollavgift" type="xsd:decimal" minOccurs="0"/> <!-- NB: fiskeriforskningsavgift -->
            <xsd:element name="kontrollavgift2021" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="ressursavgift" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="matvareavgift" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="mvalagsavgift" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="pensjonstrekk" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="sum_tilskudd" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="fakturabelop" type="xsd:decimal"/>
            <xsd:element name="kontrollsiffer" type="xsd:nonNegativeInteger"/>
            <xsd:element name="kommentar" type="xsd:string" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    
</xsd:schema>
