Commit a22c0ecb authored by Antoine Burckard's avatar Antoine Burckard
Browse files

Upload New File

parent 82280dca
Loading
Loading
Loading
Loading

19478-pid-schema.xsd

0 → 100644
+107 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified"
    attributeFormDefault="unqualified" targetNamespace="http://uri.etsi.org/19478/v1.1.1#"
    xmlns:pid="http://uri.etsi.org/19478/v1.1.1#" vc:minVersion="1.1">

    <!-- 
        XML schema representation of the PID defined in CIR (EU) 2024/2977
        
        COMMISSION IMPLEMENTING REGULATION (EU) 2024/2977 laying down rules for the application of Regulation (EU) 
        No 910/2014 of the European Parliament and of the Council as regards person identification data and 
        electronic attestations of attributes issued to European Digital Identity Wallets
    -->

    <xs:element name="Person" type="pid:PersonType" abstract="true"/>

    <xs:complexType name="PersonType" abstract="true"/>

    <xs:element name="NaturalPerson" type="pid:NaturalPersonType"/>


    <xs:complexType name="NaturalPersonType">
        <xs:complexContent>
            <xs:extension base="pid:PersonType">
                <xs:sequence>
                    <xs:element name="family_name" type="xs:string"/>
                    <xs:element name="given_name" type="xs:string"/>
                    <xs:element name="birth_date" type="xs:string"/>
                    <xs:element name="birth_place" type="xs:string"/>
                    <xs:element name="nationality" type="xs:string"/>


                    <xs:element name="resident_address" type="xs:string" minOccurs="0"/>
                    <xs:element name="resident_country" type="xs:string" minOccurs="0"/>
                    <xs:element name="resident_state" type="xs:string" minOccurs="0"/>
                    <xs:element name="resident_city" type="xs:string" minOccurs="0"/>
                    <xs:element name="resident_postal_code" type="xs:string" minOccurs="0"/>
                    <xs:element name="resident_street" type="xs:string" minOccurs="0"/>
                    <xs:element name="resident_house_number" type="xs:string" minOccurs="0"/>
                    <xs:element name="personal_administrative_number" type="xs:string" minOccurs="0"/>
                    <xs:element name="family_name_birth" type="xs:string" minOccurs="0"/>
                    <xs:element name="given_name_birth" type="xs:string" minOccurs="0"/>
                    <xs:element name="sex" type="xs:string" minOccurs="0"/>
                    <xs:element name="email_address" type="xs:string" minOccurs="0"/>
                    <xs:element name="mobile_phone_number" type="xs:string" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:element name="LegalPerson" type="pid:LegalPersonType"/>

    <xs:complexType name="LegalPersonType">
        <xs:complexContent>
            <xs:extension base="pid:PersonType">
                <xs:sequence>
                    <xs:element name="current_legal_name" type="xs:string"/>
                    <xs:element name="unique_identifier" type="xs:string" minOccurs="0"/>
                    
                    <xs:element name="current_address" minOccurs="0"/>
                    <xs:element name="vat_registration_number" minOccurs="0"/>
                    <xs:element name="tax_reference_number" minOccurs="0"/>
                    <xs:element name="european_unique_identifier" minOccurs="0"/>
                    <xs:element name="legal_entity_identifier" minOccurs="0"/>
                    <xs:element name="eori_no" minOccurs="0"/>
                    <xs:element name="excise_number" minOccurs="0"/>
                </xs:sequence>

            </xs:extension>
        </xs:complexContent>
    </xs:complexType>


    <xs:element name="NaturalPersonRepresentingNaturalPerson"
        type="pid:NaturalPersonRepresentingNaturalPersonType"/>


    <xs:complexType name="NaturalPersonRepresentingNaturalPersonType">
        <xs:complexContent>
            <xs:extension base="pid:PersonType">
                <xs:sequence>
                    <xs:element name="RepresentativeNaturalPerson" minOccurs="1"
                        type="pid:NaturalPersonType"/>
                    <xs:element name="NaturalPerson"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:element name="NaturalPersonRepresentingLegalPerson"
        type="pid:NaturalPersonRepresentingLegalPersonType"/>

    <xs:complexType name="NaturalPersonRepresentingLegalPersonType">
        <xs:complexContent>
            <xs:extension base="pid:PersonType">
                <xs:sequence>
                    <xs:element name="RepresentativeNaturalPerson" minOccurs="1"
                        type="pid:NaturalPersonType"/>
                    <xs:element name="LegalPerson"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

</xs:schema>