<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
	xmlns="https://pub.ants.gouv.fr/2D-DOC/V2/QLF/05_XSD/6_ISO22376/EXTENSIONS/"
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:cev="https://pub.ants.gouv.fr/2D-DOC/V2/QLF/05_XSD/6_ISO22376/" targetNamespace="https://pub.ants.gouv.fr/2D-DOC/V2/QLF/05_XSD/6_ISO22376/EXTENSIONS/">

	<xs:import namespace="https://pub.ants.gouv.fr/2D-DOC/V2/QLF/05_XSD/6_ISO22376/" schemaLocation="http://pub.ants.gouv.fr/2D-DOC/V2/QLF/05_XSD/6_ISO22376/XSD_MANIFEST_ISO22376_ANTS.xsd"/>
	<xs:import namespace="http://www.w3.org/XML/1998/namespace"/>

	<!-- Visibility extension -->
	<xs:complexType name="VisibilityExtensionType">
		<xs:complexContent>
			<xs:extension base="cev:FieldExtensionType">
				<xs:sequence>
					<xs:element type="ConditionType" name="Condition" minOccurs="1" maxOccurs="unbounded" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="ConditionType" abstract="true"/>
	<xs:complexType name="ApplicationConditionType">
		<xs:annotation>
			<xs:documentation>Condition defined by the application.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ConditionType">
				<xs:sequence>
					<xs:element name="Value" type="ConditionValueType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:simpleType name="ConditionValueType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Always">
				<xs:annotation>
					<xs:documentation>The condition is always satisfied.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Never">
				<xs:annotation>
					<xs:documentation>The condition is never satisfied.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="VdsSignatureValidated">
				<xs:annotation>
					<xs:documentation>The VDS signature is valid.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="VdsNotExpired">
				<xs:annotation>
					<xs:documentation>The VDS signature is valid and the VDS is not expired.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="VdsOwnerConsentGiven">
				<xs:annotation>
					<xs:documentation>The VDS owner has given his consent.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="VdsOwnerAuthenticated">
				<xs:annotation>
					<xs:documentation>The VDS owner has been successfully authenticated.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<!-- Abbreviation extension -->
	<xs:complexType name="AbbreviationExtensionType">
		<xs:complexContent>
			<xs:extension base="cev:FieldExtensionType">
				<xs:sequence>
					<xs:element name="Dictionary" maxOccurs="1" minOccurs="1"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- Dictionaries extension -->
	<xs:complexType name="DictionariesExtensionType">
		<xs:complexContent>
			<xs:extension base="cev:ExtensionType">
				<xs:sequence>
					<xs:element type="DictionaryType" name="Dictionary" maxOccurs="unbounded" minOccurs="1"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="DictionaryType">
		<xs:sequence>
			<xs:element type="DictionaryEntryType" name="Entry" maxOccurs="unbounded" minOccurs="0" />
		</xs:sequence>
		<xs:attribute name="name" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="DictionaryEntryType">
		<xs:sequence>
			<xs:element type="cev:ValueType" name="Value" maxOccurs="unbounded" minOccurs="1" />
		</xs:sequence>
		<xs:attribute name="key" type="xs:string" use="required"/>
	</xs:complexType>

	<!-- Ciphertext extension -->
	<xs:complexType name="CiphertextExtensionType">
		<xs:complexContent>
			<xs:extension base="cev:FieldExtensionType">
				<xs:sequence>
					<xs:element name="Type" type="xs:string"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<!-- Image extension -->
	<xs:complexType name="ImageExtensionType">
		<xs:complexContent>
			<xs:extension base="cev:FieldExtensionType">
				<xs:sequence>
					<xs:element name="Format" type="ImageFormatType" />
					<xs:element name="Height" type="xs:integer" minOccurs="0" />
					<xs:element name="Width" type="xs:integer" minOccurs="0" />
					<xs:element name="MaxHeight" type="xs:integer" minOccurs="0" />
					<xs:element name="MaxWidth" type="xs:integer" minOccurs="0" />
					<xs:element name="MinHeight" type="xs:integer" minOccurs="0" />
					<xs:element name="MinWidth" type="xs:integer" minOccurs="0" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- Portrait extension -->
	<xs:complexType name="PortraitExtensionType">
		<xs:complexContent>
			<xs:extension base="cev:FieldExtensionType">
				<xs:sequence>
					<xs:element name="Format" type="ImageFormatType" />
					<xs:element name="Height" type="xs:integer" />
					<xs:element name="Width" type="xs:integer" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ImageFormatType -->
	<xs:simpleType name="ImageFormatType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="WebP"/>
			<xs:enumeration value="Jpeg"/>
			<xs:enumeration value="Jpeg2000"/>
		</xs:restriction>
	</xs:simpleType>

	<!-- Policies -->
	<xs:complexType name="PoliciesExtensionType">
		<xs:complexContent>
			<xs:extension base="cev:ExtensionType">
				<xs:sequence>
					<xs:element type="cev:AuthorizedUsageType" name="AuthorizedUsage" minOccurs="0" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<!-- Signature Format -->
	<xs:complexType name="SignatureFormatExtensionType">
		<xs:complexContent>
			<xs:extension base="cev:ExtensionType">
				<xs:sequence>
					<xs:element name="Value" minOccurs="1" maxOccurs="1">
						<xs:complexType>
							<xs:simpleContent>
								<xs:extension base="SignatureFormatType">
									<xs:attribute ref="xml:lang"/>
								</xs:extension>
							</xs:simpleContent>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	
	<!-- SignatureFormatType -->
	<xs:simpleType name="SignatureFormatType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="2D-DOC"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>