summaryrefslogtreecommitdiff
path: root/src/saml2/data/schemas/eidas-schema-metadata-servicelist.xsd
blob: 376b01c4e39f4b1c0736eb1350eecbaa248ed120 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?xml version="1.0" encoding="UTF-8"?>
<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">
  <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:annotation>
    <xs:documentation>Document identifier: eidas-metadata-servicelist-1.0</xs:documentation>
  </xs:annotation>
  <xs:element name="MetadataServiceList" type="ser:MetadataServiceListType"/>
  <xs:complexType name="MetadataServiceListType">
    <xs:annotation>
      <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>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SchemeInformation" type="ser:SchemeInformationType"/>
      <xs:element name="MetadataList" type="ser:MetadataSchemeEndpointListType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="DistributionPoints" type="ser:DistributionPointsType"/>
      <xs:element ref="ds:Signature" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="Version" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>The version of a metadata service list.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="IssueDate" type="xs:dateTime" use="required">
      <xs:annotation>
        <xs:documentation>Issuance time for a metadata service list.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="NextUpdate" type="xs:dateTime">
      <xs:annotation>
        <xs:documentation>Time when the next metadata service list will be published.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ID" type="xs:ID">
      <xs:annotation>
        <xs:documentation>The unique ID for a metadata service list.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="SchemeInformationType">
    <xs:annotation>
      <xs:documentation>Scheme information about a published metadata service list, where the publisher and territory are included.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="IssuerName" type="xs:string"/>
      <xs:element name="SchemeIdentifier" type="xs:anyURI"/>
      <xs:element name="SchemeTerritory" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MetadataSchemeEndpointListType">
    <xs:annotation>
      <xs:documentation>Defines the metadata location(s) for a specific member state (territory).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element type="ser:MetadataLocationType" name="MetadataLocation" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Territory" type="xs:string" use="required"/>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="DistributionPointsType">
    <xs:annotation>
      <xs:documentation>A list of distribution points. URLs from where the metadata service list can be downloaded.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="DistributionPoint" type="xs:anyURI" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MetadataLocationType">
    <xs:sequence>
      <xs:element name="Endpoint" type="ser:MsEndpointType" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A list of eIDAS endpoints (nodes) for the current location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="ds:KeyInfo" minOccurs="0">
        <xs:annotation>
          <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>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Location" type="xs:anyURI" use="required">
      <xs:annotation>
        <xs:documentation>The URL from where the metadata for the endpoint(s) can be obtained.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="MsEndpointType">
    <xs:annotation>
      <xs:documentation>Defines a member state "endpoint" (eIDAS node).</xs:documentation>
    </xs:annotation>
    <xs:attribute name="EndpointType" type="xs:anyURI" use="required">
      <xs:annotation>
        <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>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="EntityID" type="xs:anyURI" use="required">
      <xs:annotation>
        <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>
      </xs:annotation>
    </xs:attribute>
    <xs:anyAttribute namespace="##any" processContents="lax"/>
  </xs:complexType>
</xs:schema>