﻿<xs:schema xmlns="http://nemus.skogsstyrelsen.se/scheman/dataTypes/1"
           elementFormDefault="qualified"
           targetNamespace="http://nemus.skogsstyrelsen.se/scheman/dataTypes/1"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <!-- Simple types -->
  <xs:simpleType name="emailType">
    <xs:restriction base="xs:token">
      <xs:maxLength value = "255"/>
      <xs:minLength value ="5"/>
      <xs:pattern value="(?:[A-Za-z0-9!#$%&apos;*+/=?^_`{|}~-]+(?:\.[A.Za-z0-9!#$%&apos;*+/=?^_`{|}~-]+)*|&quot;(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*&quot;)@(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[A-Za-z0-9-]*[A-Za-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="notEmptyString">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="personnummerType">
    <xs:restriction base="xs:string">
      <xs:minLength value="12"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="rollType">
    <xs:annotation>
      <xs:documentation>Roll</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="markägare" />
      <xs:enumeration value="ombud" />
    </xs:restriction>
  </xs:simpleType>

  <!-- Complex types-->
  <xs:complexType name="personType">
    <xs:annotation>
      <xs:documentation>Person</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="personnummer" type="personnummerType" minOccurs="0" />
      <xs:element name="fornamn" type="xs:string" />
      <xs:element name="efternamn" type="notEmptyString" />
      <xs:element name="adress" type="notEmptyString" minOccurs="0" />
      <xs:element name="coAdress" type="xs:string" minOccurs="0" />
      <xs:element name="postnummer" type="notEmptyString" minOccurs="0" />
      <xs:element name="postort" type="notEmptyString" minOccurs="0" />
      <xs:element name="telefon" type="xs:string" minOccurs="0" />
      <xs:element name="mobil" type="xs:string" minOccurs="0" />
      <xs:element name="epost" type="emailType" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="roll" type="rollType" use="required" />
  </xs:complexType>

</xs:schema>
