<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="https://cev.gouv.mc/cev/schemas/kmc/me/manifest_extensions.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:cev="https://cev.gouv.mc/cev/schemas/kmc/me/manifest.xsd"
    targetNamespace="https://cev.gouv.mc/cev/schemas/kmc/me/manifest_extensions.xsd"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">

    <xs:import namespace="http://www.w3.org/XML/1998/namespace"
        schemaLocation="http://www.w3.org/2009/01/xml.xsd" />
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
        schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" />
    <xs:import namespace="https://cev.gouv.mc/cev/schemas/kmc/me/manifest.xsd" schemaLocation="manifest.xsd" />

    <xs:complexType name="Portrait">
        <xs:complexContent>
            <xs:extension base="cev:FieldExtensionType">
                <xs:sequence>
                    <xs:element name="Format" type="ImageFormat" />
                    <xs:element name="InputWidth" type="xs:integer" minOccurs="0" />
                    <xs:element name="InputHeight" type="xs:integer" minOccurs="0" />
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:simpleType name="ImageFormat">
        <xs:restriction base="xs:string">
            <xs:enumeration value="WEBP" />
        </xs:restriction>
    </xs:simpleType>

    <!-- 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>
</xs:schema>
