<?xml version="1.0" encoding="utf-8"?>
<schema version="2.0.0" elementFormDefault="qualified"
        targetNamespace="http://namespace.lantmateriet.se/distribution/produkter/fastighetsatgard/v2"
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:app="http://namespace.lantmateriet.se/distribution/produkter/fastighetsatgard/v2"
        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="FastighetsatgardResponse" type="app:FastighetsatgardResponseType"
             substitutionGroup="gml:AbstractFeature"/>

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

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

    <element name="Fastighetsatgard" type="app:FastighetsatgardType" substitutionGroup="gml:AbstractFeature"/>

    <complexType name="FastighetsatgardType">
        <complexContent>
            <extension base="gml:AbstractFeatureType">
                <sequence>
                    <element name="lopnummer" type="int" minOccurs="0"/>
                    <element name="atgardsdatum" type="string" minOccurs="0"/>
                    <element name="aktbeteckning" type="string" minOccurs="0"/>
                    <element name="littera" type="string" minOccurs="0"/>
                    <element name="atgardstyp" type="app:FastighetsatgardstypType" minOccurs="0" maxOccurs="3"/>
                    <element name="atgardsanmarkning" type="string" minOccurs="0"/>
                    <element name="avregistrering" type="boolean"/>
                    <element name="Registerenhetsreferens" type="app:RegisterenhetsreferensType" minOccurs="0"/>
                    <element name="Ursprung" type="app:RegisterenhetsreferensArrayPropertyType" minOccurs="0"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>

    <complexType name="RegisterenhetsreferensArrayPropertyType">
        <sequence>
            <element name="Registerenhetsreferens" type="app:RegisterenhetsreferensType" maxOccurs="unbounded"/>
        </sequence>
    </complexType>

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

    <simpleType name="FastighetsatgardstypType">
        <restriction base="string">
            <enumeration value="anläggningsförrättning, servitutsåtgärd"/>
            <enumeration value="anläggningsåtgärd"/>
            <enumeration value="annan åtgärd"/>
            <enumeration value="anslutning enligt anläggningslagen"/>
            <enumeration value="arealavmätning"/>
            <enumeration value="arealkomplettering"/>
            <enumeration value="arealutredning"/>
            <enumeration value="av ålder bestående"/>
            <enumeration value="avlösning"/>
            <enumeration value="avstyckning"/>
            <enumeration value="avstyckning, laga skifte"/>
            <enumeration value="avstyckning, servitutsutbrytning"/>
            <enumeration value="avsöndring"/>
            <enumeration value="avvittring"/>
            <enumeration value="beslut om fastighetsindelning"/>
            <enumeration value="beslut om församlingsindelning"/>
            <enumeration value="beslut om församlingsindelning enligt äldre lagstiftning"/>
            <enumeration value="beslut om ändring i kommunal indelning i samband med fastighetsbildning"/>
            <enumeration value="delning"/>
            <enumeration value="ensittarlösen"/>
            <enumeration value="enskifte"/>
            <enumeration value="EVL-förrättning"/>
            <enumeration value="expropriation"/>
            <enumeration value="expropriationsmätning"/>
            <enumeration value="fastighetsbestämning"/>
            <enumeration value="fastighetsreglering"/>
            <enumeration value="fastighetsreglering, andelsöverföring"/>
            <enumeration value="fastighetsreglering, servitutsåtgärd"/>
            <enumeration value="förrättning enligt ensittarlagen"/>
            <enumeration value="förrättning enligt lag om vissa gemensamhetsanläggningar"/>
            <enumeration value="gränsbestämning"/>
            <enumeration value="gränsutmärkning fullföljd"/>
            <enumeration value="hemmansklyvning"/>
            <enumeration value="indelningsändring"/>
            <enumeration value="införd i tomtboken"/>
            <enumeration value="inlösen"/>
            <enumeration value="inställd åtgärd eller förrättning"/>
            <enumeration value="klyvning"/>
            <enumeration value="laga skifte"/>
            <enumeration value="ledningsrättsåtgärd"/>
            <enumeration value="legaliserad sämjedelning"/>
            <enumeration value="legaliserat arealfång"/>
            <enumeration value="legalisering, äganderättsutredning"/>
            <enumeration value="legaliseringsförrättning"/>
            <enumeration value="mantalssättning"/>
            <enumeration value="mätning"/>
            <enumeration value="nybyggnadskarta"/>
            <enumeration value="nymätning"/>
            <enumeration value="omprövning enligt förvaltningslagen"/>
            <enumeration value="registreringsbeslut"/>
            <enumeration value="rågångsåtgärd"/>
            <enumeration value="rättelse enligt förvaltningslagen"/>
            <enumeration value="rättelse/komplettering"/>
            <enumeration value="sammanföring"/>
            <enumeration value="sammanläggning"/>
            <enumeration value="servitutsutbrytning"/>
            <enumeration value="servitutsåtgärd"/>
            <enumeration value="skatteläggning"/>
            <enumeration value="storskifte"/>
            <enumeration value="syneförrättning"/>
            <enumeration value="säkerställande av gränsmärke"/>
            <enumeration value="särskild gränsutmärkning"/>
            <enumeration value="tomtmätning"/>
            <enumeration value="undanröjd åtgärd"/>
            <enumeration value="uteslutning"/>
            <enumeration value="utredning"/>
            <enumeration value="vägförrättning"/>
            <enumeration value="åbodelning"/>
            <enumeration value="återställande av gränsmärke"/>
            <enumeration value="äganderättsutredning"/>
            <enumeration value="ägomätning"/>
            <enumeration value="ägostyckning"/>
            <enumeration value="ägoutbyte"/>
            <enumeration value="ändrat andelstal enligt anläggningslagen"/>
            <enumeration value="ändring i församlingsindelningen"/>
            <enumeration value="överenskommelse enligt anläggningslagen"/>
        </restriction>
    </simpleType>

    <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="RegisterenhetstypType">
        <restriction base="string">
            <enumeration value="fastighet"/>
            <enumeration value="samfällighet"/>
            <enumeration value="gemensamhetsanläggning"/>
        </restriction>
    </simpleType>
</schema>
