<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
	xmlns="http://begrep.difi.no/sdp/schema_v10"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
	xmlns:sdp="http://begrep.difi.no/sdp/schema_v10"
	targetNamespace="http://begrep.difi.no/sdp/schema_v10" elementFormDefault="qualified" version="1.0">

	<xsd:include schemaLocation="sdp-felles.xsd"/>
	<xsd:import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="w3/xenc-schema.xsd"/>
	<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="w3/xmldsig-core-schema.xsd"/>

	<xsd:element name="digitalPost" type="DigitalPost" />

	<xsd:complexType name="DigitalPost" >
		<xsd:annotation>
			<xsd:documentation>
				Sikker digital postmelding fra avsender til mottaker, samt
				informasjon relatert til presentasjon og behandling av denne.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="Melding">
				<xsd:sequence>
					<xsd:element name="avsender" type="Avsender" minOccurs="1" maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								  Den reelle avsenderen av dokument(ene)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:choice>
						<xsd:element name="fysiskPostInfo" type="FysiskPostInfo" minOccurs="1" maxOccurs="1"/>
						<xsd:sequence>
							<xsd:element name="mottaker" type="Mottaker" minOccurs="1" maxOccurs="1">
								<xsd:annotation>
									<xsd:documentation>
										  Mottakeren av meldingen.
									</xsd:documentation>
								</xsd:annotation>
							</xsd:element>
							<xsd:element name="digitalPostInfo" type="DigitalPostInfo" minOccurs="1" maxOccurs="1"/>
						</xsd:sequence>
					</xsd:choice>
					<xsd:element name="dokumentpakkefingeravtrykk" type="ds:ReferenceType" minOccurs="1" maxOccurs="1" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:element name="flyttetDigitalPost" type="FlyttetDigitalPost" />

	<xsd:complexType name="FlyttetDigitalPost">
		<xsd:complexContent>
			<xsd:extension base="Melding">
				<xsd:sequence>
					<xsd:element name="avsender" type="Avsender" minOccurs="1" maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								Den reelle avsenderen av dokument(ene)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="mottaker" type="Mottaker" minOccurs="1" maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								Mottakeren av meldingen.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="digitalPostInfo" type="DigitalPostInfo" minOccurs="1" maxOccurs="1"/>
					<xsd:element name="dokumentpakkefingeravtrykk" type="ds:ReferenceType" minOccurs="1" maxOccurs="1" />
					<xsd:element name="mottaksdato" type="xsd:date" minOccurs="1" maxOccurs="1" >
						<xsd:annotation>
							<xsd:documentation>Dato brevet ble mottatt i opprinnelig postkasse.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="aapnet" type="xsd:boolean" minOccurs="1" maxOccurs="1" >
						<xsd:annotation>
							<xsd:documentation>Indikerer om mottakeren har aapnet brevet eller ikke.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="DigitalPostInfo">
		<xsd:sequence>
			<xsd:choice>
				<xsd:element name="virkningsdato" type="xsd:date" minOccurs="0" maxOccurs="1">
					<xsd:annotation>
						<xsd:documentation>Dag når en melding tidligst kan gjøres tilgjengelig i innbygger sin postkasse. Posten tilgjengeliggjøres da ved midnatt. Krav til når meldingen er tilgjengeliggjort er beskrevet i kontraktene med Leverandørene.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="virkningstidspunkt" type="xsd:dateTime" minOccurs="0" maxOccurs="1">
					<xsd:annotation>
						<xsd:documentation>Dag og Tidspunkt for når en melding tidligst kan gjøres tilgjengelig i innbygger sin postkasse. Krav til når meldingen er tilgjengeliggjort er beskrevet i kontraktene med Leverandørene.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:choice>
			<xsd:element name="aapningskvittering" type="xsd:boolean" default="false" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="sikkerhetsnivaa" type="Sikkerhetsnivaa" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="ikkeSensitivTittel" minOccurs="1" maxOccurs="1" type="Tittel">
				<xsd:annotation>
					<xsd:documentation>
						Ikke-sensitiv tittel på dokumentpakken
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="varsler" type="Varsler" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="maskinportentoken" type="xsd:string" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:simpleType name="Sikkerhetsnivaa">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="3"/>
			<xsd:enumeration value="4"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="Varsler">
		<xsd:sequence>
			<xsd:element name="epostVarsel" type="EpostVarsel" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="smsVarsel" type="SmsVarsel" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="Repetisjoner">
		<xsd:sequence>
			<xsd:element name="dagerEtter" minOccurs="1" maxOccurs="10">
				<xsd:annotation>
					<xsd:documentation>
						Når varselet skal sendes, relativ til virkningsdato.
						Verdien 0 betyr at varsel skal sendes samme dag som brevet
						tilgjengeliggjøres i mottakers digitale postkasse.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:nonNegativeInteger">
						<xsd:maxInclusive value="25"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="EpostVarsel">
		<xsd:sequence>
			<xsd:element name="epostadresse" minOccurs="1" maxOccurs="1" type="xsd:string"/>
			<xsd:element name="varslingsTekst" minOccurs="1" maxOccurs="1" type="EpostVarselTekst"/>
			<xsd:element name="repetisjoner" type="Repetisjoner" minOccurs="1" maxOccurs="1">
				<xsd:unique name="UnikeEpostVarselRepetisjoner">
					<xsd:selector xpath="sdp:dagerEtter"/>
					<xsd:field xpath="."/>
				</xsd:unique>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="SmsVarsel">
		<xsd:sequence>
			<xsd:element name="mobiltelefonnummer" minOccurs="1" maxOccurs="1" type="xsd:string"/>
			<xsd:element name="varslingsTekst" minOccurs="1" maxOccurs="1" type="SmsVarselTekst"/>
			<xsd:element name="repetisjoner" type="Repetisjoner" minOccurs="1" maxOccurs="1">
				<xsd:unique name="UnikeSmsVarselRepetisjoner">
					<xsd:selector xpath="sdp:dagerEtter"/>
					<xsd:field xpath="."/>
				</xsd:unique>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="EpostVarselTekst">
		<xsd:simpleContent>
			<xsd:extension base="EpostVarselTekstString">
				<xsd:attribute name="lang" type="Spraakkode" use="required"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:simpleType name="EpostVarselTekstString">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1"/>
			<xsd:maxLength value="500"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="SmsVarselTekst">
		<xsd:simpleContent>
			<xsd:extension base="SmsVarselTekstString">
				<xsd:attribute name="lang" type="Spraakkode" use="required"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:simpleType name="SmsVarselTekstString">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1"/>
			<xsd:maxLength value="160"/>
		</xsd:restriction>
	</xsd:simpleType>

	<!-- typer nedenfor er for fysisk post -->

	<xsd:complexType name="FysiskPostInfo">
		<xsd:sequence>
			<xsd:element name="mottaker" type="FysiskPostadresse" minOccurs="1" maxOccurs="1" >
				<xsd:annotation>
					<xsd:documentation>
						Informasjon for å adressere fysisk post til mottakeren.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="posttype" type="FysiskPostType" minOccurs="0" maxOccurs="1" />
			<xsd:element name="utskriftsfarge" type="Utskriftsfarge" minOccurs="1" maxOccurs="1" />
			<xsd:element name="retur" type="FysiskPostRetur" minOccurs="1" maxOccurs="1" >
				<xsd:annotation>
					<xsd:documentation>
						Informasjon som brukes ved retur av post som av en eller annen grunn ikke kan levers til mottaker.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="printinstruksjoner" type="Printinstruksjoner" minOccurs="0" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation>
						Liste av instruksjoner knyttet til print. Gyldige verdier avtales mellom avsender og printleverandør.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
            <xsd:element name="maskinportentoken" type="xsd:string" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="FysiskPostadresse">
		<xsd:annotation>
			<xsd:documentation>
				En fysisk postadresse består av navnet på adressaten og enten en norsk eller utenlandsk postadresse.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="navn" type="Navn" minOccurs="1" maxOccurs="1"/>
			<xsd:choice>
				<xsd:element name="norskAdresse" type="NorskPostadresse" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="utenlandskAdresse" type="UtenlandskPostadresse" minOccurs="1" maxOccurs="1"/>
			</xsd:choice>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="FysiskPostRetur">
		<xsd:sequence>
			<xsd:element name="postHaandtering" type="FysiskPostReturhaandtering" minOccurs="1" maxOccurs="1" />
			<xsd:element name="mottaker" type="FysiskPostadresse" minOccurs="1" maxOccurs="1" >
				<xsd:annotation>
					<xsd:documentation>Returpost blir adressert hit.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:simpleType name="Utskriftsfarge">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="SORT_HVIT" />
			<xsd:enumeration value="FARGE" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="FysiskPostType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="A"/>
			<xsd:enumeration value="B"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="FysiskPostReturhaandtering">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="DIREKTE_RETUR"/>
			<xsd:enumeration value="MAKULERING_MED_MELDING"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="NorskPostadresse">
		<xsd:sequence>
			<xsd:element name="adresselinje1" type="Adresselinje" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="adresselinje2" type="Adresselinje" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="adresselinje3" type="Adresselinje" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="postnummer" type="NorskPostnummer" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="poststed" type="Poststed" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="UtenlandskPostadresse">
		<xsd:sequence>
			<xsd:element name="adresselinje1" type="Adresselinje" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="adresselinje2" type="Adresselinje" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="adresselinje3" type="Adresselinje" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="adresselinje4" type="Adresselinje" minOccurs="0" maxOccurs="1"/>
			<xsd:choice>
				<xsd:element name="land" type="Land" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="landkode" type="Landkode" minOccurs="1" maxOccurs="1"/>
			</xsd:choice>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:simpleType name="Navn">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="130"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="NorskPostnummer">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="\d{4}"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="Adresselinje">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="100"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="Poststed">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="80"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="Land">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="80"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="Landkode">
		<xsd:annotation>
			<xsd:documentation>
				To-bokstavs landkode ihht ISO 3166-1 alpha-2 standarden.
				(http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[a-zA-Z]{2}"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="Printinstruksjoner">
		<xsd:sequence>
			<xsd:element name="printinstruksjon" type="Printinstruksjon" minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="Printinstruksjon">
		<xsd:sequence>
			<xsd:element name="navn" type="xsd:string" minOccurs="1" maxOccurs="1" />
			<xsd:element name="verdi" type="xsd:string" minOccurs="1" maxOccurs="1" />
		</xsd:sequence>
	</xsd:complexType>

</xsd:schema>
