<?xml version="1.0" encoding="utf-8"?>
<schema version="1.0.0" elementFormDefault="qualified"
        targetNamespace="https://namespace.lantmateriet.se/distribution/produkter/lagenhet/v1"
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:app="https://namespace.lantmateriet.se/distribution/produkter/lagenhet/v1"
        xmlns:gml="http://www.opengis.net/gml/3.2">

    <import schemaLocation="http://namespace.lantmateriet.se/distribution/produkter/gml/gml-3.2.1/v1/geoaccess-gmlprofil-1.1.xsd"
            namespace="http://www.opengis.net/gml/3.2"/>
    <import schemaLocation="http://namespace.lantmateriet.se/distribution/produkter/fault/v1/fault-1.0.xsd"
            namespace="http://namespace.lantmateriet.se/distribution/produkter/fault/v1"/>

    <element name="IdRequest" type="app:IdRequestType"/>

    <complexType name="IdRequestType">
        <sequence>
            <element name="id" type="app:UUIDType" maxOccurs="unbounded"/>
        </sequence>
    </complexType>

    <element name="LagenhetResponse" type="app:LagenhetResponseType" substitutionGroup="gml:AbstractFeature"/>

    <complexType name="LagenhetResponseType">
        <complexContent>
            <extension base="gml:AbstractFeatureType">
                <sequence>
                    <element name="LagenhetMember" type="app:LagenhetMemberType" minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
                <attributeGroup ref="gml:AggregationAttributeGroup"/>
            </extension>
        </complexContent>
    </complexType>

    <complexType name="LagenhetMemberType">
        <complexContent>
            <extension base="gml:AbstractFeatureMemberType">
                <sequence>
                    <element ref="app:Lagenhet"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>

    <element name="LagenhetsreferensResponse" type="app:LagenhetsreferensResponseType"/>

    <complexType name="LagenhetsreferensResponseType">
        <sequence>
            <element name="Lagenhetsreferens" type="app:LagenhetsreferensType" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
    </complexType>

    <element name="Lagenhet" type="app:LagenhetType" substitutionGroup="gml:AbstractFeature"/>

    <complexType name="LagenhetType">
        <complexContent>
            <extension base="gml:AbstractFeatureType">
                <sequence>
                    <element name="objektidentitet" type="app:UUIDType"/>
                    <element name="objektversion" type="int"/>
                    <element name="versionGiltigFran" type="dateTime" minOccurs="0"/>
                    <element name="lagenhetsnummer" type="string" minOccurs="0"/>
                    <element name="beslutsdatumForLagenhetsnummer" type="date" minOccurs="0"/>
                    <element name="underrattelsedatumForLagenhetsnummer" type="date" minOccurs="0"/>
                    <element name="antalRum" type="int" minOccurs="0"/>
                    <element name="bostadsarea" type="decimal" minOccurs="0"/>
                    <element name="lagenhetskategori" type="app:LagenhetskategoriType" minOccurs="0"/>
                    <element name="kokstyp" type="app:KokstypType" minOccurs="0"/>
                    <element name="gemensamtKok" type="app:JaNejUppgiftsaknasType" minOccurs="0"/>
                    <element name="insamlingssatt" type="app:TypAvInsamlingType"/>
                    <element name="objektstatus" type="app:ObjektstatusType"/>
                    <element name="Fastighetsreferens" type="app:FastighetsreferensType" minOccurs="0"/>
                    <element name="Adressplatsreferens" type="app:Adressplatsreferens" minOccurs="0"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>

    <complexType name="FastighetsreferensType">
        <sequence>
            <element name="objektidentitet" type="app:UUIDType"/>
            <element name="beteckning" type="string"/>
        </sequence>
    </complexType>

    <complexType name="Adressplatsreferens">
        <sequence>
            <element name="objektidentitet" type="app:UUIDType"/>
            <element name="adress" type="string"/>
        </sequence>
    </complexType>

    <complexType name="LagenhetsreferensType">
        <sequence>
            <element name="objektidentitet" type="app:UUIDType"/>
        </sequence>
    </complexType>

    <simpleType name="UUIDType">
        <restriction base="string">
            <pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>
        </restriction>
    </simpleType>

    <simpleType name="LagenhetskategoriType">
        <restriction base="string">
            <enumeration value="Vanlig bostadslägenhet"/>
            <enumeration value="Specialbostad för äldre eller funktionshindrade"/>
            <enumeration value="Studentbostad"/>
            <enumeration value="Övrig specialbostad"/>
            <enumeration value="Uppgift saknas"/>
        </restriction>
    </simpleType>

    <simpleType name="KokstypType">
        <restriction base="string">
            <enumeration value="Kök"/>
            <enumeration value="Kokvrå"/>
            <enumeration value="Kokskåp"/>
            <enumeration value="Köksutrustning saknas"/>
            <enumeration value="Uppgift saknas"/>
        </restriction>
    </simpleType>

    <simpleType name="JaNejUppgiftsaknasType">
        <restriction base="string">
            <enumeration value="Ja"/>
            <enumeration value="Nej"/>
            <enumeration value="Uppgift saknas"/>
        </restriction>
    </simpleType>

    <simpleType name="TypAvInsamlingType">
        <restriction base="string">
            <enumeration value="On-lineregistrering"/>
            <enumeration value="Satsvis laddning från fil"/>
            <enumeration value="Skannad blankett"/>
            <enumeration value="Annan uppgiftslämning"/>
            <enumeration value="Uppläggning från handläggningssystem"/>
            <enumeration value="Webbformulär"/>
            <enumeration value="Uppläggning från register"/>
            <enumeration value="Uppgift saknas"/>
        </restriction>
    </simpleType>

    <simpleType name="ObjektstatusType">
        <restriction base="string">
            <enumeration value="Planerad"/>
            <enumeration value="Gällande"/>
            <enumeration value="Avregistrerad"/>
        </restriction>
    </simpleType>
</schema>
