Skip to content

Commit 14c649a

Browse files
committed
Add schemas for eIDAS extensions, elements and attributes
Signed-off-by: Ivan Kanakarakis <[email protected]>
1 parent 0a030cb commit 14c649a

File tree

4 files changed

+310
-0
lines changed

4 files changed

+310
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<xsd:schema xmlns="http://eidas.europa.eu/attributes/legalperson" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://eidas.europa.eu/attributes/legalperson" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1">
3+
<xsd:attribute name="LatinScript" type="xsd:boolean" default="true"/>
4+
<!-- Mandatory attribute types for a legal person. -->
5+
<xsd:simpleType name="LegalPersonIdentifierType">
6+
<xsd:annotation>
7+
<xsd:documentation>Unique identifier for the legal person as defined by the eIDAS Regulation.</xsd:documentation>
8+
</xsd:annotation>
9+
<xsd:restriction base="xsd:string"/>
10+
</xsd:simpleType>
11+
<xsd:complexType name="LegalNameType">
12+
<xsd:annotation>
13+
<xsd:documentation>Current legal name for the legal person or organisation.</xsd:documentation>
14+
</xsd:annotation>
15+
<xsd:simpleContent>
16+
<xsd:extension base="xsd:string">
17+
<xsd:attribute ref="LatinScript"/>
18+
</xsd:extension>
19+
</xsd:simpleContent>
20+
</xsd:complexType>
21+
<!-- Optional attribute types for a legal person. -->
22+
<xsd:complexType name="LegalPersonAddressStructuredType">
23+
<xsd:annotation>
24+
<xsd:documentation>The address the legal person has registered with the MS authority or operating address if not registered. For a company this should be the registered address within the MS issuing the eID.</xsd:documentation>
25+
</xsd:annotation>
26+
<xsd:sequence>
27+
<xsd:element name="PoBox" type="xsd:string" minOccurs="0" maxOccurs="1"/>
28+
<xsd:element name="LocatorDesignator" type="xsd:string" minOccurs="0" maxOccurs="1"/>
29+
<xsd:element name="LocatorName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
30+
<xsd:element name="CvaddressArea" type="xsd:string" minOccurs="0" maxOccurs="1"/>
31+
<xsd:element name="Thoroughfare" type="xsd:string" minOccurs="0" maxOccurs="1"/>
32+
<xsd:element name="PostName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
33+
<xsd:element name="AdminunitFirstline" type="xsd:string" minOccurs="0" maxOccurs="1"/>
34+
<xsd:element name="AdminunitSecondline" type="xsd:string" minOccurs="0" maxOccurs="1"/>
35+
<xsd:element name="PostCode" type="xsd:string" minOccurs="0" maxOccurs="1"/>
36+
</xsd:sequence>
37+
</xsd:complexType>
38+
<xsd:simpleType name="LegalPersonAddressType">
39+
<xsd:annotation>
40+
<xsd:documentation>The address the legal person has registered with the MS authority or operating address if not registered. For a company this should be the registered address within the MS issuing the eID as a base64 encoded string.</xsd:documentation>
41+
</xsd:annotation>
42+
<xsd:restriction base="xsd:string"/>
43+
</xsd:simpleType>
44+
<xsd:simpleType name="VATRegistrationNumberType">
45+
<xsd:annotation>
46+
<xsd:documentation>VAT - VAT registration number</xsd:documentation>
47+
</xsd:annotation>
48+
<xsd:restriction base="xsd:string"/>
49+
</xsd:simpleType>
50+
<xsd:simpleType name="TaxReferenceType">
51+
<xsd:annotation>
52+
<xsd:documentation>TAX-Ref - tax reference number</xsd:documentation>
53+
</xsd:annotation>
54+
<xsd:restriction base="xsd:string"/>
55+
</xsd:simpleType>
56+
<xsd:simpleType name="D-2012-17-EUIdentifierType">
57+
<xsd:annotation>
58+
<xsd:documentation>D-2012/17/EU - the identifier used under Directive 2012/17/EU</xsd:documentation>
59+
</xsd:annotation>
60+
<xsd:restriction base="xsd:string"/>
61+
</xsd:simpleType>
62+
<xsd:simpleType name="LEIType">
63+
<xsd:annotation>
64+
<xsd:documentation>LEI - Legal Entity Identifier</xsd:documentation>
65+
</xsd:annotation>
66+
<xsd:restriction base="xsd:string"/>
67+
</xsd:simpleType>
68+
<xsd:simpleType name="EORIType">
69+
<xsd:annotation>
70+
<xsd:documentation>EORI - Economic Operator Registration and Identification</xsd:documentation>
71+
</xsd:annotation>
72+
<xsd:restriction base="xsd:string"/>
73+
</xsd:simpleType>
74+
<xsd:simpleType name="SEEDType">
75+
<xsd:annotation>
76+
<xsd:documentation>SEED - System for Exchange of Excise Data </xsd:documentation>
77+
</xsd:annotation>
78+
<xsd:restriction base="xsd:string"/>
79+
</xsd:simpleType>
80+
<xsd:simpleType name="SICType">
81+
<xsd:annotation>
82+
<xsd:documentation>SIC - Standard Industrial Classification</xsd:documentation>
83+
</xsd:annotation>
84+
<xsd:restriction base="xsd:string"/>
85+
</xsd:simpleType>
86+
</xsd:schema>
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<xsd:schema xmlns="http://eidas.europa.eu/attributes/naturalperson" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://eidas.europa.eu/attributes/naturalperson" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1">
3+
<xsd:attribute name="LatinScript" type="xsd:boolean" default="true"/>
4+
<!-- Mandatory attribute types for a natural person. -->
5+
<xsd:simpleType name="PersonIdentifierType">
6+
<xsd:annotation>
7+
<xsd:documentation>Unique identifier for the natural person as defined by the eIDAS Regulation.</xsd:documentation>
8+
</xsd:annotation>
9+
<xsd:restriction base="xsd:string"/>
10+
</xsd:simpleType>
11+
<xsd:complexType name="CurrentFamilyNameType">
12+
<xsd:annotation>
13+
<xsd:documentation>Current family name of the natural person.</xsd:documentation>
14+
</xsd:annotation>
15+
<xsd:simpleContent>
16+
<xsd:extension base="xsd:string">
17+
<xsd:attribute ref="LatinScript"/>
18+
</xsd:extension>
19+
</xsd:simpleContent>
20+
</xsd:complexType>
21+
<xsd:complexType name="CurrentGivenNameType">
22+
<xsd:annotation>
23+
<xsd:documentation>Current given names of the natural person.</xsd:documentation>
24+
</xsd:annotation>
25+
<xsd:simpleContent>
26+
<xsd:extension base="xsd:string">
27+
<xsd:attribute ref="LatinScript"/>
28+
</xsd:extension>
29+
</xsd:simpleContent>
30+
</xsd:complexType>
31+
<xsd:simpleType name="DateOfBirthType">
32+
<xsd:annotation>
33+
<xsd:documentation>Date of Birth for the Natural Person (Based on xsd:date i.e. YYYY-MM-DD format).</xsd:documentation>
34+
</xsd:annotation>
35+
<xsd:restriction base="xsd:date"/>
36+
</xsd:simpleType>
37+
<!-- Optional attribute types for a natural person. -->
38+
<xsd:complexType name="CurrentAddressStructuredType">
39+
<xsd:annotation>
40+
<xsd:documentation>Current address of the natural person.</xsd:documentation>
41+
</xsd:annotation>
42+
<xsd:sequence>
43+
<xsd:element name="PoBox" type="xsd:string" minOccurs="0" maxOccurs="1"/>
44+
<xsd:element name="LocatorDesignator" type="xsd:string" minOccurs="0" maxOccurs="1"/>
45+
<xsd:element name="LocatorName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
46+
<xsd:element name="CvaddressArea" type="xsd:string" minOccurs="0" maxOccurs="1"/>
47+
<xsd:element name="Thoroughfare" type="xsd:string" minOccurs="0" maxOccurs="1"/>
48+
<xsd:element name="PostName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
49+
<xsd:element name="AdminunitFirstline" type="xsd:string" minOccurs="0" maxOccurs="1"/>
50+
<xsd:element name="AdminunitSecondline" type="xsd:string" minOccurs="0" maxOccurs="1"/>
51+
<xsd:element name="PostCode" type="xsd:string" minOccurs="0" maxOccurs="1"/>
52+
</xsd:sequence>
53+
</xsd:complexType>
54+
<xsd:simpleType name="CurrentAddressType">
55+
<xsd:annotation>
56+
<xsd:documentation>Current address of the natural person as a base64 encoded string.</xsd:documentation>
57+
</xsd:annotation>
58+
<xsd:restriction base="xsd:string"/>
59+
</xsd:simpleType>
60+
<xsd:simpleType name="GenderType">
61+
<xsd:annotation>
62+
<xsd:documentation>Gender of the natural person.</xsd:documentation>
63+
</xsd:annotation>
64+
<xsd:restriction base="xsd:string">
65+
<xsd:enumeration value="Male"/>
66+
<xsd:enumeration value="Female"/>
67+
<xsd:enumeration value="Unspecified"/>
68+
</xsd:restriction>
69+
</xsd:simpleType>
70+
<xsd:complexType name="BirthNameType">
71+
<xsd:annotation>
72+
<xsd:documentation>First name(s) and family name(s) of the natural person at birth.</xsd:documentation>
73+
</xsd:annotation>
74+
<xsd:simpleContent>
75+
<xsd:extension base="xsd:string">
76+
<xsd:attribute ref="LatinScript"/>
77+
</xsd:extension>
78+
</xsd:simpleContent>
79+
</xsd:complexType>
80+
<xsd:complexType name="PlaceOfBirthType">
81+
<xsd:annotation>
82+
<xsd:documentation>Place of birth for a natural person.</xsd:documentation>
83+
</xsd:annotation>
84+
<xsd:simpleContent>
85+
<xsd:extension base="xsd:string"></xsd:extension>
86+
</xsd:simpleContent>
87+
</xsd:complexType>
88+
</xsd:schema>
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ser="http://eidas.europa.eu/metadata/servicelist" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" version="1.0" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://eidas.europa.eu/metadata/servicelist">
3+
<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"/>
4+
<xs:annotation>
5+
<xs:documentation>Document identifier: eidas-metadata-servicelist-1.0</xs:documentation>
6+
</xs:annotation>
7+
<xs:element name="MetadataServiceList" type="ser:MetadataServiceListType"/>
8+
<xs:complexType name="MetadataServiceListType">
9+
<xs:annotation>
10+
<xs:documentation>The MetadataServiceListType is the root type for representing a metadata service list. It holds scheme information, metadata locations for each member state and optionally distribution point(s).</xs:documentation>
11+
</xs:annotation>
12+
<xs:sequence>
13+
<xs:element name="SchemeInformation" type="ser:SchemeInformationType"/>
14+
<xs:element name="MetadataList" type="ser:MetadataSchemeEndpointListType" minOccurs="0" maxOccurs="unbounded"/>
15+
<xs:element name="DistributionPoints" type="ser:DistributionPointsType"/>
16+
<xs:element ref="ds:Signature" minOccurs="0"/>
17+
</xs:sequence>
18+
<xs:attribute name="Version" type="xs:string" use="required">
19+
<xs:annotation>
20+
<xs:documentation>The version of a metadata service list.</xs:documentation>
21+
</xs:annotation>
22+
</xs:attribute>
23+
<xs:attribute name="IssueDate" type="xs:dateTime" use="required">
24+
<xs:annotation>
25+
<xs:documentation>Issuance time for a metadata service list.</xs:documentation>
26+
</xs:annotation>
27+
</xs:attribute>
28+
<xs:attribute name="NextUpdate" type="xs:dateTime">
29+
<xs:annotation>
30+
<xs:documentation>Time when the next metadata service list will be published.</xs:documentation>
31+
</xs:annotation>
32+
</xs:attribute>
33+
<xs:attribute name="ID" type="xs:ID">
34+
<xs:annotation>
35+
<xs:documentation>The unique ID for a metadata service list.</xs:documentation>
36+
</xs:annotation>
37+
</xs:attribute>
38+
</xs:complexType>
39+
<xs:complexType name="SchemeInformationType">
40+
<xs:annotation>
41+
<xs:documentation>Scheme information about a published metadata service list, where the publisher and territory are included.</xs:documentation>
42+
</xs:annotation>
43+
<xs:sequence>
44+
<xs:element name="IssuerName" type="xs:string"/>
45+
<xs:element name="SchemeIdentifier" type="xs:anyURI"/>
46+
<xs:element name="SchemeTerritory" type="xs:string"/>
47+
</xs:sequence>
48+
</xs:complexType>
49+
<xs:complexType name="MetadataSchemeEndpointListType">
50+
<xs:annotation>
51+
<xs:documentation>Defines the metadata location(s) for a specific member state (territory).</xs:documentation>
52+
</xs:annotation>
53+
<xs:sequence>
54+
<xs:element type="ser:MetadataLocationType" name="MetadataLocation" minOccurs="0" maxOccurs="unbounded"/>
55+
</xs:sequence>
56+
<xs:attribute name="Territory" type="xs:string" use="required"/>
57+
<xs:anyAttribute namespace="##any" processContents="lax"/>
58+
</xs:complexType>
59+
<xs:complexType name="DistributionPointsType">
60+
<xs:annotation>
61+
<xs:documentation>A list of distribution points. URLs from where the metadata service list can be downloaded.</xs:documentation>
62+
</xs:annotation>
63+
<xs:sequence>
64+
<xs:element name="DistributionPoint" type="xs:anyURI" minOccurs="1" maxOccurs="unbounded"/>
65+
</xs:sequence>
66+
</xs:complexType>
67+
<xs:complexType name="MetadataLocationType">
68+
<xs:sequence>
69+
<xs:element name="Endpoint" type="ser:MsEndpointType" minOccurs="0" maxOccurs="unbounded">
70+
<xs:annotation>
71+
<xs:documentation>A list of eIDAS endpoints (nodes) for the current location.</xs:documentation>
72+
</xs:annotation>
73+
</xs:element>
74+
<xs:element ref="ds:KeyInfo" minOccurs="0">
75+
<xs:annotation>
76+
<xs:documentation>Key material (usually a certificate) that should be used to verify the signature of the downloaded metadata for this metadata location.</xs:documentation>
77+
</xs:annotation>
78+
</xs:element>
79+
</xs:sequence>
80+
<xs:attribute name="Location" type="xs:anyURI" use="required">
81+
<xs:annotation>
82+
<xs:documentation>The URL from where the metadata for the endpoint(s) can be obtained.</xs:documentation>
83+
</xs:annotation>
84+
</xs:attribute>
85+
<xs:anyAttribute namespace="##any" processContents="lax"/>
86+
</xs:complexType>
87+
<xs:complexType name="MsEndpointType">
88+
<xs:annotation>
89+
<xs:documentation>Defines a member state "endpoint" (eIDAS node).</xs:documentation>
90+
</xs:annotation>
91+
<xs:attribute name="EndpointType" type="xs:anyURI" use="required">
92+
<xs:annotation>
93+
<xs:documentation>The type of endpoint. Currently defined URI:s are: http://eidas.europa.eu/metadata/ept/ProxyService for an eIDAS Proxy Service, and, http://eidas.europa.eu/metadata/ept/Connector for an eIDAS Connector.</xs:documentation>
94+
</xs:annotation>
95+
</xs:attribute>
96+
<xs:attribute name="EntityID" type="xs:anyURI" use="required">
97+
<xs:annotation>
98+
<xs:documentation>The SAML entityID of the endpoint. For an eIDAS connector this is the entityID for the SP-part of the node, and for an eIDAS Proxy Service this is the entityID for the IdP-part of the node.</xs:documentation>
99+
</xs:annotation>
100+
</xs:attribute>
101+
<xs:anyAttribute namespace="##any" processContents="lax"/>
102+
</xs:complexType>
103+
</xs:schema>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<xsd:schema xmlns:eidas="http://eidas.europa.eu/saml-extensions" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://eidas.europa.eu/saml-extensions" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1">
3+
<xsd:element name="SPType" type="eidas:SPTypeType"/>
4+
<xsd:simpleType name="SPTypeType">
5+
<xsd:restriction base="xsd:string">
6+
<xsd:enumeration value="public"/>
7+
<xsd:enumeration value="private"/>
8+
</xsd:restriction>
9+
</xsd:simpleType>
10+
<xsd:element name="NodeCountry" type="eidas:NodeCountryType"/>
11+
<xsd:simpleType name="NodeCountryType">
12+
<xsd:restriction base="xsd:string">
13+
<xsd:pattern value="[A-Z][A-Z]"/>
14+
</xsd:restriction>
15+
</xsd:simpleType>
16+
<xsd:element name=" RequestedAttributes" type="eidas:RequestedAttributesType"/>
17+
<xsd:complexType name="RequestedAttributesType">
18+
<xsd:sequence>
19+
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="eidas:RequestedAttribute"/>
20+
</xsd:sequence>
21+
</xsd:complexType>
22+
<xsd:element name="RequestedAttribute" type="eidas:RequestedAttributeType"/>
23+
<xsd:complexType name="RequestedAttributeType">
24+
<xsd:sequence>
25+
<xsd:element name=" AttributeValue" type="xsd:anyType" minOccurs="0" maxOccurs="unbounded"/>
26+
</xsd:sequence>
27+
<xsd:attribute name="Name" type="xsd:string" use="required"/>
28+
<xsd:attribute name="NameFormat" type="xsd:anyURI" use="required"/>
29+
<xsd:attribute name="isRequired" type=" xsd:boolean" use="required"/>
30+
<xsd:attribute name="FriendlyName" type="xsd:string" use="optional"/>
31+
<xsd:anyAttribute namespace="##other" processContents="lax"/>
32+
</xsd:complexType>
33+
</xsd:schema>

0 commit comments

Comments
 (0)