<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="urn:digst:samtykke:samtykkeerklaeringskabelon:2025-03" xmlns:tns="urn:digst:samtykke:samtykkeerklaeringskabelon:2025-03" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:digst:samtykke:samtykkeerklaeringskabelon:2025-03" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="SamtykkeErklaeringsSkabelon">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Navn">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="Tekst"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="Metadata" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="Klassificeringer" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Klassificering" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:attribute name="navn" type="xs:string" use="required"/>
									<xs:attribute name="vaerdi" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="Afsendere">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Afsender" minOccurs="1" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Navn" type="xs:string">
											<xs:annotation>
												<xs:documentation>Hvis afsendernavn og den tilknyttede myndigheds navn er identiske, så vises navnet kun én gang. Er de forskellige, så vises begge dele. </xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Adresse" type="AdresseType" minOccurs="0" maxOccurs="1"/>
										<xs:element name="Telefonnummer" type="xs:string" minOccurs="0" maxOccurs="1"/>
										<xs:element name="DigitalPostKontaktPunktId" minOccurs="0" maxOccurs="1">
											<xs:simpleType>
												<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:element>
										<xs:element name="Webadresse" minOccurs="0" maxOccurs="1">
											<xs:simpleType>
												<xs:restriction base="xs:anyURI">
													<xs:pattern value="https://.*"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="afsenderUUID" type="tns:guidType" use="required"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
					<xs:unique name="UnikAfsenderId">
						<xs:selector xpath="tns:Afsender"/>
						<xs:field xpath="@afsenderUUID"/>
					</xs:unique>
				</xs:element>
				<xs:element name="Sagskontekst" minOccurs="0">
					<xs:complexType>
						<xs:attribute name="sagsnummerkontekst" type="sagsnummerkontekstType" use="required"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="SamtykkegivervendtBeskrivelse" type="HtmlTekstType"/>
				<xs:element name="OplysningsErklaering" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="HtmlTekst"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="Trin">
					<xs:complexType>
						<xs:sequence>
							<xs:choice maxOccurs="unbounded">
								<xs:element name="SamtykkeSkabelonTrin">
									<xs:complexType>
										<xs:sequence>
											<xs:choice>
												<xs:element ref="SamtykkeSkabelon"/>
											</xs:choice>
										</xs:sequence>
										<xs:attribute name="samtykkeSkabelonTrinUUID" type="tns:guidType" use="required"/>
										<xs:attribute name="forhaandsvalgt" type="xs:boolean"/>
									</xs:complexType>
								</xs:element>
							</xs:choice>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="samtykkeErklaeringsSkabelonUUID" use="required">
				<xs:simpleType>
					<xs:restriction base="guidType"/>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="tilladFlereGivere" type="xs:boolean"/>
			<xs:attribute name="tilladFlereSubjekter" type="xs:boolean"/>
		</xs:complexType>
		<xs:unique name="UnikSamtykkeSkabelonUUID">
			<xs:selector xpath="tns:Trin/tns:SamtykkeSkabelonTrin/tns:SamtykkeSkabelon"/>
			<xs:field xpath="@samtykkeSkabelonUUID"/>
		</xs:unique>
		<xs:unique name="UnikTrinUUID">
			<xs:selector xpath="tns:Trin/tns:SamtykkeSkabelonTrin"/>
			<xs:field xpath="@samtykkeSkabelonTrinUUID"/>
		</xs:unique>
	</xs:element>
	<xs:element name="AfvisningKonsekvensTekst" type="HtmlTekstType"/>
	<xs:element name="VilkaarTekst" type="HtmlTekstType"/>
	<xs:element name="TilbagekaldKonsekvensTekst" type="HtmlTekstType"/>
	<xs:element name="ValgfriTekster" type="ValgfriTekster"/>
	<xs:complexType name="SamtykkeSkabelonType">
		<xs:sequence>
			<xs:element name="Navn" type="TekstType"/>
			<xs:element name="Gyldighedsperiode" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>Gyldighedsperioden angiver, hvor længe samtykket er gyldigt, efter det er blevet afgivet. </xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:choice>
						<xs:element name="Dage">
							<xs:annotation>
								<xs:documentation>Antal dage samtykket er gyldigt. </xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:int">
									<xs:minInclusive value="1"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="NotifikationDageIndenUdloeb" type="xs:integer" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Her angives antal dage forud for samtykkets udløb, hvorved der skal udsendes en notifikation til fagsystemet. Bemærk, at fravær af elementet betyder, der ikke skal sendes en notifikation</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="RegistrerAfvisteOgIkkeValgte" type="xs:boolean">
				<xs:annotation>
					<xs:documentation>Angiver om afviste samtykker og ikke-valgte listeelementer skal registreres i den endelige samtykkeerklæring. </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Udsagn" type="HtmlTekstType"/>
			<xs:element name="MaskinlaesbartSamtykkeSkabelon" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:any namespace="##other" processContents="skip"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Afgiv">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="SvarTekst" type="TekstType"/>
						<xs:element name="Valgmuligheder" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Valgmulighed" minOccurs="1" maxOccurs="unbounded">
										<xs:complexType>
											<xs:sequence>
												<xs:element name="Navn" type="BegraensetTekstType"/>
												<xs:element name="NavnForPraecisering" type="TekstType" minOccurs="0" maxOccurs="1"/>
												<xs:element name="Formular" type="FormularType" minOccurs="0"/>
												<xs:element name="BrugervendtTekst" type="BrugervendtTekstType"/>
												<xs:element name="MaskinlaesbartSamtykkeSkabelon" minOccurs="0">
													<xs:complexType>
														<xs:sequence>
															<xs:any namespace="##other" processContents="skip"/>
														</xs:sequence>
													</xs:complexType>
												</xs:element>
											</xs:sequence>
											<xs:attribute name="valgmulighedId" use="required">
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="50"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:attribute>
										</xs:complexType>
										<xs:unique name="UnikFormularId">
											<xs:selector xpath="tns:Formular"/>
											<xs:field xpath="@formularId"/>
										</xs:unique>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
							<xs:unique name="UnikValgmulighedId">
								<xs:selector xpath="tns:Valgmulighed"/>
								<xs:field xpath="@valgmulighedId"/>
							</xs:unique>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Afvis">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="SvarTekst" type="TekstType"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="AfvisningKonsekvensTekst" type="HtmlTekstType"/>
			<xs:element name="VilkaarTekst" type="HtmlTekstType"/>
			<xs:element name="TilbagekaldKonsekvensTekst" type="HtmlTekstType"/>
			<xs:element ref="ValgfriTekster" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
		<xs:attribute name="samtykkeSkabelonUUID" use="required">
			<xs:simpleType>
				<xs:restriction base="guidType"/>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="SamtykkeSkabelon" type="SamtykkeSkabelonType"/>
	<xs:complexType name="FormularType">
		<xs:sequence>
			<xs:element name="Felter">
				<xs:annotation>
					<xs:documentation>En formular definerer ét eller flere felter som kan udfyldes.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:choice minOccurs="1" maxOccurs="unbounded">
						<xs:element name="Felt">
							<xs:annotation>
								<xs:documentation>Hvert felt beskrives med feltnavn.</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:attribute name="navn" type="xs:string" use="required"/>
								<xs:attribute name="feltId" use="required">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:maxLength value="50"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:attribute>
							</xs:complexType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
				<xs:unique name="UnikFeltId">
					<xs:selector xpath="tns:Felt"/>
					<xs:field xpath="@feltId"/>
				</xs:unique>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="gentagbar" type="xs:boolean" use="optional">
			<xs:annotation>
				<xs:documentation>Et optionel boolean flag angiver om brugeren kan tilføje flere forekomster af formularen</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="formularId" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:maxLength value="50"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="AdresseType">
		<xs:sequence>
			<xs:element name="Vejnavn" type="xs:string"/>
			<xs:element name="Husnummer" type="xs:string"/>
			<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="xs:string"/>
		</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: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:complexType name="ValgfriTekster">
		<xs:sequence>
			<xs:element name="ValgfriTekst" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Overskrift" type="TekstType"/>
						<xs:element name="Indhold" type="HtmlTekstType"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="HtmlTekstType">
		<xs:choice>
			<xs:element ref="HtmlTekst"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="TekstType">
		<xs:choice>
			<xs:element ref="Tekst"/>
		</xs:choice>
	</xs:complexType>
	<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:complexType name="BrugervendtTekstType">
		<xs:sequence>
			<xs:element name="Overskrift" type="BegraensetTekstType"/>
			<xs:element name="Indhold" type="HtmlTekstType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="offentligIdType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="120"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="navnType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="120"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="supplerendeTekstNavnType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="120"/>
			<xs:pattern value="^(?!.*\b(ConsequenceOfRevocation|ConsequenceOfRejection|TermsOfConditionsText)\b)[A-Za-z0-9 ]*$"/>
			<xs:pattern value="(?!Hvad sker der, hvis jeg ikke giver samtykke|Vilkår for samtykket|Hvad er konsekvensen ved at tilbagekalde samtykket?).*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="sagsnummerkontekstType">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="30"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="guidType">
		<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:schema>