<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="urn:digst:samtykke:samtykkedatatyper:2025-01"
    targetNamespace="urn:digst:samtykke:samtykkedatatyper:2025-01"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">
    <xs:complexType name="MedbetjeningsType">
        <xs:sequence>
            <xs:element name="Medarbejder" type="MedarbejderType"/>
            <xs:choice>
                <xs:element name="Underskrift" type="UnderskriftType">
                    <xs:annotation>
                        <xs:documentation> Borgeren var tilstede og har underskrevet handlingen udført af medarbejderen. </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="VerbalGodkendelse"/>
            </xs:choice>
            <xs:element name="Note" type="IkkeTomStrengMultiline" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Eventuel note fra medarbejderen i forbindelse med godkendelse blev givet. </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="UnderskriftType">
        <xs:sequence>
            <xs:element name="Format" type="BilledFormatType"/>
            <xs:element name="Data" type="xs:base64Binary"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="BilledFormatType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="png"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="MedarbejderType">
        <xs:sequence>
            <xs:element name="Navn" type="IkkeTomStreng">
                <xs:annotation>
                    <xs:documentation> Medarbejderens navn </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="LoginId" type="IkkeTomStreng">
                <xs:annotation>
                    <xs:documentation>Medarbejderens login id. Bør identificere både authentication provider og login nøgle, ex: "FKA:https://data.gov.dk/model/core/eid/professional/uuid/FDFFE8F1-D92C-4838-B46D-B3DD558E700E"</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="AdresseType">
        <xs:sequence>
            <xs:element name="Vejnavn" type="IkkeTomStreng"/>
            <xs:element name="Husnummer" type="IkkeTomStreng"/>
            <xs:element name="Etagebetegnelse " type="xs:string" minOccurs="0"/>
            <xs:element name="Doerbetegnelse " type="xs:string" minOccurs="0"/>
            <xs:element name="SupplerendeBynavn" type="xs:string" minOccurs="0"/>
            <xs:element name="Postnummer">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="[0-9]{4}"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="Postdistrikt" type="IkkeTomStreng"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="Adresse" type="AdresseType"/>
    <xs:simpleType name="UuidType">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="UriType">
        <xs:restriction base="xs:anyURI">
            <xs:pattern value="https://.*"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="SkabelonReferenceType">
        <xs:annotation>
            <xs:documentation>Her beskrives referencen til en skabelon et objekt er baseret på.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="SkabelonUUID" type="UuidType">
                <xs:annotation>
                    <xs:documentation>Her angives den unikke nøgle, der identificerer skabelonen. Denne nøgle kan bruges til at lave tværgående søgninger for at finde alle objekter, der er baseret på den samme skabelon.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TekstType">
        <xs:sequence>
            <xs:element ref="Tekst" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="Tekst">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="sprog" type="xs:language"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="HtmlTekstType">
        <xs:sequence>
            <xs:element ref="HtmlTekst" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="HtmlTekst">
        <xs:complexType mixed="true">
            <xs:sequence>
                <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="sprog" type="xs:language"/>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="IkkeTomStreng">
        <xs:restriction base="xs:string">
            <xs:pattern value=".*\S.*"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="IkkeTomStrengMultiline">
        <xs:restriction base="xs:string">
            <xs:pattern value="[\s]*\S+[\S\s]*"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="BegraensetTekstType">
		<xs:choice>
			<xs:element name="Tekst" type="BegraensetTekst"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="BegraensetTekst">
		<xs:simpleContent>
			<xs:extension base="max120">
				<xs:attribute name="sprog" type="xs:language"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="max120">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="120"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>