<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ex="http://namespace.lantmateriet.se/geodata/exchange/v4"
           xmlns:geo="http://namespace.lantmateriet.se/distribution/geometri/v1"
           xmlns:pm="http://namespace.lantmateriet.se/geodata/plan_bestammelse/v3"
           xmlns:gml="http://www.opengis.net/gml/3.2"
           targetNamespace="http://namespace.lantmateriet.se/geodata/plan_bestammelse/v3"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified"
           version="3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://namespace.lantmateriet.se/distribution/geometri/v1">
    <xs:include schemaLocation="plan_bestammelse_codeList.xsd"/>
    <xs:include schemaLocation="plan_bestammelse_types.xsd"/>
    <xs:import namespace="http://namespace.lantmateriet.se/distribution/geometri/v1"
               schemaLocation="../../../distribution/geometri/v1/geometri-1.1.xsd"/>
    <xs:import namespace="http://namespace.lantmateriet.se/geodata/exchange/v4"
               schemaLocation="../../exchange/v4/lm-exchange.xsd"/>
    <xs:import namespace="http://www.opengis.net/gml/3.2"
               schemaLocation="http://namespace.lantmateriet.se/distribution/produkter/gml/gml-3.2.1/v1/geoaccess-gmlprofil-1.2.xsd"/>
    
    <xs:element name="Bestammelse" type="pm:BestammelseType"
                abstract="true" substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="BestammelseType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:element name="kommun" type="pm:String4Type"
                                minOccurs="1" maxOccurs="unbounded"/>
                    <xs:element name="bestammelsebeteckning" type="pm:String50Type"
                                minOccurs="0"/>
                    <xs:element name="bestammelsenamn" type="pm:String300Type"
                                minOccurs="0"/>
                    <xs:element name="status" type="pm:StatusType"/>
                    <xs:element name="registreringsdatum" type="xs:date"
                                minOccurs="0"/>
                    <xs:element name="senasteAndringAllmannaDelen" type="xs:date"
                                minOccurs="0"/>
                    <xs:element name="alternativBeteckning" type="pm:String50Type"
                                minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="externRegisteridentitet" type="pm:String50Type"
                                minOccurs="0"/>
                    <xs:element name="bestammelseanmarkning" type="pm:String2000Type"
                                minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="kopplarTill" type="ex:UuidType"
                                minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Plan" type="pm:PlanType"
                substitutionGroup="pm:Bestammelse"/>
    <xs:complexType name="PlanType">
        <xs:complexContent>
            <xs:extension base="pm:BestammelseType">
                <xs:sequence>
                    <xs:element name="plantyp" type="pm:PlantypType"/>
                    <xs:element name="genomforandetidBorjar" type="xs:date"
                                minOccurs="0"/>
                    <xs:element name="genomforandetidSlutar" type="xs:date"
                                minOccurs="0"/>
                    <xs:element name="gallerTill" type="xs:date" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Naturvardsbestammelse" type="pm:NaturvardsbestammelseType"
                substitutionGroup="pm:Bestammelse"/>
    <xs:complexType name="NaturvardsbestammelseType">
        <xs:complexContent>
            <xs:extension base="pm:BestammelseType">
                <xs:sequence>
                    <xs:element name="naturvardsbestammelsetyp" type="pm:NaturvardsbestammelsetypType"/>
                    <xs:element name="gallerTill" type="xs:date" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="OvrigBestammelse" type="pm:OvrigBestammelseType"
                substitutionGroup="pm:Bestammelse"/>
    <xs:complexType name="OvrigBestammelseType">
        <xs:complexContent>
            <xs:extension base="pm:BestammelseType">
                <xs:sequence>
                    <xs:element name="ovrigBestammelsetyp" type="pm:OvrigBestammelsetypType"/>
                    <xs:element name="gallerTill" type="xs:date" minOccurs="0"/>
                    <xs:element name="fullstandighet" type="pm:String500Type" minOccurs="0"/>
                    <xs:element name="tillkomsthistorik" type="pm:String1000Type" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Mineralrattighet" type="pm:MineralrattighetsType"
                substitutionGroup="pm:Bestammelse"/>
    <xs:complexType name="MineralrattighetsType">
        <xs:complexContent>
            <xs:extension base="pm:BestammelseType">
                <xs:sequence>
                    <xs:element name="mineralrattighetstyp" type="pm:MineralrattighetstypType"/>
                    <xs:element name="gallerTill" type="xs:date" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="UtredningMm" type="pm:UtredningMmType"
                substitutionGroup="pm:Bestammelse"/>
    <xs:complexType name="UtredningMmType">
        <xs:complexContent>
            <xs:extension base="pm:BestammelseType">
                <xs:sequence>
                    <xs:element name="utredningstyp" type="pm:UtredningstypType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Beslut" type="pm:BeslutType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="BeslutType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:element name="beslutsdatum" type="pm:String8Type"
                                minOccurs="0"/>
                    <xs:element name="lagakraftdatum" type="xs:date"
                                minOccurs="0"/>
                    <xs:element name="diarienummer" type="pm:String50Type"
                                minOccurs="0"/>
                    <xs:element name="beslutandeMyndighet" type="pm:String300Type"
                                minOccurs="0"/>
                    <xs:element name="hanvisningsakt" type="pm:String50Type"
                                minOccurs="0"/>
                    <xs:element name="bildarBestammelsereferens" type="ex:UuidType" minOccurs="0"
                                maxOccurs="unbounded"/>
                    <xs:element name="andrarBestammelsereferens" type="ex:UuidType" minOccurs="0"
                                maxOccurs="unbounded"/>
                    <xs:element name="upphaverBestammelsereferens" type="ex:UuidType" minOccurs="0"
                                maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Beror" type="pm:BerorType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="BerorType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:element name="registerenhetsreferens" type="ex:UuidType" minOccurs="1"/>
                    <xs:element name="beroranmarkningsreferens" type="ex:UuidType" minOccurs="0"/>
                    <xs:choice minOccurs="1">
                        <xs:element name="bestammelsereferens" type="ex:UuidType"/>
                        <xs:element name="lamningsreferens" type="ex:UuidType"/>
                    </xs:choice>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Beroranmarkning" type="pm:BeroranmarkningType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="BeroranmarkningType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:element name="beroranmarkning" type="pm:String100Type"/>
                    <xs:element name="bestammelsereferens" type="ex:UuidType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="MigreradBestammelse" type="pm:MigreradBestammelseType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="MigreradBestammelseType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:element name="bmynd" type="pm:String7Type"/>
                    <xs:element name="kontor" type="pm:String4Type"/>
                    <xs:element name="bestammelsereferens" type="ex:UuidType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Hanvisningstext" type="pm:HanvisningstextType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="HanvisningstextType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:element name="hanvisningstyp" type="pm:HanvisningstypType"/>
                    <xs:element name="hanvisningstext" type="pm:String50Type"/>
                    <xs:element name="hanvisningsdatum" type="xs:date" minOccurs="0"/>
                    <xs:element name="bestammelsereferens" type="ex:UuidType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="PagaendeArende" type="pm:PagaendeArendeType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="PagaendeArendeType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:element name="arendenummer" type="pm:String100Type"/>
                    <xs:element name="arendeInkommit" type="xs:date"/>
                    <xs:element name="bestammelsereferens" type="ex:UuidType" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Lamningslage" type="pm:LamningslageType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="LamningslageType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:element name="kommuntillhorighet" type="pm:String4Type" maxOccurs="unbounded"/>
                    <xs:element name="centralpunktskoordinat" type="gml:PointPropertyType" minOccurs="0"/>
                    <xs:element name="lamningsreferens" type="ex:UuidType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Lamning" type="pm:LamningType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="LamningType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:element name="lamningsnummer" type="pm:String14Type" minOccurs="0"/>
                    <xs:element name="antikvariskBedomning" type="pm:AntikvariskBedomningType" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Fastighetsregisterstatus" type="pm:FastighetsregisterstatusType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="FastighetsregisterstatusType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:element name="lamningsstatus" type="pm:LamningsstatusType"/>
                    <xs:element name="lamningsreferens" type="ex:UuidType" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Bestammelseomrade" type="pm:BestammelseomradeType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="BestammelseomradeType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:choice>
                    <xs:element name="omradesyta" type="geo:YtaType"/>
                    <xs:element name="omradeslinje" type="geo:LinjeType"/>
                    <xs:element name="omradespunkt" type="geo:PunktType"/>
                    <xs:element name="omradesvolym" type="geo:KroppType"/>
                    </xs:choice>
                    <xs:element name="bestammelsereferens" type="ex:UuidType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Lamningsomrade" type="pm:LamningsomradeType"
                substitutionGroup="ex:Utbytesobjekt"/>
    <xs:complexType name="LamningsomradeType">
        <xs:complexContent>
            <xs:extension base="ex:UtbytesobjektType">
                <xs:sequence>
                    <xs:choice>
                    <xs:element name="omradesyta" type="geo:YtaType"/>
                    <xs:element name="omradeslinje" type="geo:LinjeType"/>
                    <xs:element name="omradespunkt" type="geo:PunktType"/>
                    <xs:element name="omradesvolym" type="geo:KroppType"/>
                    </xs:choice>
                    <xs:element name="lamningsreferens" type="ex:UuidType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
</xs:schema>
