<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:ex="http://namespace.lantmateriet.se/geodata/exchange/v5" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml/3.2" targetNamespace="http://namespace.lantmateriet.se/geodata/exchange/v5" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<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="Dataleverans" type="ex:DataleveransType" abstract="true"/>
	<xs:complexType name="DataleveransType">
		<xs:complexContent>
			<xs:extension base="gml:AbstractFeatureType">
				<xs:sequence>
					<xs:element name="dataleveransidentitet" type="ex:UuidType"/>
					<xs:element name="dataleveransbeskrivning" type="ex:StringType"/>
					<xs:element name="dataleveranstidpunkt" type="xs:dateTime"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Forandringsarende" type="ex:ForandringsarendeType" substitutionGroup="ex:Dataleverans"/>
	<xs:complexType name="ForandringsarendeType">
		<xs:complexContent>
			<xs:extension base="ex:DataleveransType">
				<xs:sequence>
					<xs:element ref="ex:Forandring" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Forandring" type="ex:ForandringType" substitutionGroup="gml:AbstractFeature"/>
	<xs:complexType name="ForandringType">
		<xs:complexContent>
			<xs:extension base="gml:AbstractFeatureType">
				<xs:sequence>
					<xs:element ref="ex:Verksamhetsatgard"/>
					<xs:element name="Nytt" type="ex:UtbytesobjektPropertyType" minOccurs="0"/>
					<xs:element name="Modifierat" type="ex:UtbytesobjektPropertyType" minOccurs="0"/>
					<xs:element name="Raderat" type="ex:UtbytesobjektPropertyType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Utbytesobjekt" type="ex:UtbytesobjektType" abstract="true" substitutionGroup="gml:AbstractFeature"/>
	<xs:complexType name="UtbytesobjektType">
		<xs:complexContent>
			<xs:extension base="gml:AbstractFeatureType">
				<xs:sequence>
					<xs:element name="objektidentitet" type="ex:UuidType"/>
					<xs:element name="objektversion">
						<xs:simpleType>
							<xs:restriction base="xs:integer">
								<xs:whiteSpace value="collapse"/>
								<xs:minInclusive value="1"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:element>
					<xs:element name="versionGiltigFran" type="xs:dateTime" minOccurs="0"/>
					<xs:element name="versionGiltigTill" type="xs:dateTime" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="UtbytesobjektPropertyType">
		<xs:complexContent>
			<xs:extension base="gml:AbstractFeatureMemberType">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="ex:Utbytesobjekt"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="UtbytesobjektsreferensType">
		<xs:complexContent>
			<xs:extension base="gml:AbstractFeatureMemberType">
				<xs:sequence>
					<xs:element name="objekttyp" type="ex:StringType"/>
					<xs:element name="objektidentitet" type="ex:UuidType"/>
					<xs:element name="objektversion">
						<xs:simpleType>
							<xs:restriction base="xs:integer">
								<xs:whiteSpace value="collapse"/>
								<xs:minInclusive value="1"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Verksamhetsatgard" type="ex:VerksamhetsatgardType" abstract="true" substitutionGroup="ex:Utbytesobjekt"/>
	<xs:complexType name="VerksamhetsatgardType">
		<xs:complexContent>
			<xs:extension base="ex:UtbytesobjektType">
				<xs:sequence>
					<xs:element name="atgardsordning" minOccurs="0">
						<xs:simpleType>
							<xs:restriction base="xs:integer">
								<xs:whiteSpace value="collapse"/>
								<xs:minInclusive value="1"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:element>
					<xs:element name="ansvarigOrganisation" type="ex:StringType"/>
					<xs:element name="utforandeOrganisation" type="ex:StringType" minOccurs="0"/>
					<xs:element name="atgardstidpunkt" type="xs:dateTime" minOccurs="0"/>
					<xs:element name="utbytesobjektsreferens" type="ex:UtbytesobjektsreferensType" maxOccurs="unbounded"/>
					<xs:element name="verksamhetsarendereferens" type="ex:UuidType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Verksamhetsarende" type="ex:VerksamhetsarendeType" substitutionGroup="ex:Utbytesobjekt"/>
	<xs:complexType name="VerksamhetsarendeType">
		<xs:complexContent>
			<xs:extension base="ex:UtbytesobjektType">
				<xs:sequence>
					<xs:element name="verksamhetsarendeidentitet" type="ex:StringType"/>
					<xs:element name="verksamhetsarendebeskrivning" type="ex:StringType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Uuid" type="ex:UuidType"/>
	<xs:element name="Datamangd" type="ex:DatamangdType" substitutionGroup="ex:Dataleverans"/>
	<xs:complexType name="DatamangdType">
		<xs:complexContent>
			<xs:extension base="ex:DataleveransType">
				<xs:sequence>
					<xs:element ref="ex:Utbytesobjekt" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:simpleType name="StringType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="255"/>
			<xs:pattern value="[^;]*[^\s;][^;]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="UuidType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="36"/>
			<xs:pattern value="[a-fA-F0-9]{8}(-[a-fA-F0-9]{4})(-[a-fA-F0-9]{4})(-[a-fA-F0-9]{4})(-[a-fA-F0-9]{12})"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
