Add an include path to Eclipse project file.
[shibboleth/cpp-opensaml.git] / schemas / saml-schema-metadata-2.0.xsd
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <schema\r
3     targetNamespace="urn:oasis:names:tc:SAML:2.0:metadata"\r
4     xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"\r
5     xmlns:ds="http://www.w3.org/2000/09/xmldsig#"\r
6     xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"\r
7     xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"\r
8     xmlns="http://www.w3.org/2001/XMLSchema"\r
9     elementFormDefault="unqualified"\r
10     attributeFormDefault="unqualified"\r
11     blockDefault="substitution"\r
12     version="2.0">\r
13     <import namespace="http://www.w3.org/2000/09/xmldsig#"\r
14         schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>\r
15     <import namespace="http://www.w3.org/2001/04/xmlenc#"\r
16         schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>\r
17     <import namespace="urn:oasis:names:tc:SAML:2.0:assertion"\r
18         schemaLocation="saml-schema-assertion-2.0.xsd"/>\r
19     <import namespace="http://www.w3.org/XML/1998/namespace"\r
20         schemaLocation="http://www.w3.org/2001/xml.xsd"/>\r
21     <annotation>\r
22         <documentation>\r
23             Document identifier: saml-schema-metadata-2.0\r
24             Location: http://docs.oasis-open.org/security/saml/v2.0/\r
25             Revision history:\r
26               V2.0 (March, 2005):\r
27                 Schema for SAML metadata, first published in SAML 2.0.\r
28         </documentation>\r
29     </annotation>\r
30 \r
31     <simpleType name="entityIDType">\r
32         <restriction base="anyURI">\r
33             <maxLength value="1024"/>\r
34         </restriction>\r
35     </simpleType>\r
36     <complexType name="localizedNameType">\r
37         <simpleContent>\r
38             <extension base="string">\r
39                 <attribute ref="xml:lang" use="required"/>\r
40             </extension>\r
41         </simpleContent>\r
42     </complexType>\r
43     <complexType name="localizedURIType">\r
44         <simpleContent>\r
45             <extension base="anyURI">\r
46                 <attribute ref="xml:lang" use="required"/>\r
47             </extension>\r
48         </simpleContent>\r
49     </complexType>\r
50     \r
51     <element name="Extensions" type="md:ExtensionsType"/>\r
52     <complexType final="#all" name="ExtensionsType">\r
53         <sequence>\r
54             <any namespace="##other" processContents="lax" maxOccurs="unbounded"/>\r
55         </sequence>\r
56     </complexType>\r
57     \r
58     <complexType name="EndpointType">\r
59         <sequence>\r
60             <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
61         </sequence>\r
62         <attribute name="Binding" type="anyURI" use="required"/>\r
63         <attribute name="Location" type="anyURI" use="required"/>\r
64         <attribute name="ResponseLocation" type="anyURI" use="optional"/>\r
65         <anyAttribute namespace="##other" processContents="lax"/>\r
66     </complexType>\r
67     \r
68     <complexType name="IndexedEndpointType">\r
69         <complexContent>\r
70             <extension base="md:EndpointType">\r
71                 <attribute name="index" type="unsignedShort" use="required"/>\r
72                 <attribute name="isDefault" type="boolean" use="optional"/>\r
73             </extension>\r
74         </complexContent>\r
75     </complexType>\r
76     \r
77     <element name="EntitiesDescriptor" type="md:EntitiesDescriptorType"/>\r
78     <complexType name="EntitiesDescriptorType">\r
79         <sequence>\r
80             <element ref="ds:Signature" minOccurs="0"/>\r
81             <element ref="md:Extensions" minOccurs="0"/>\r
82             <choice minOccurs="1" maxOccurs="unbounded">\r
83                 <element ref="md:EntityDescriptor"/>\r
84                 <element ref="md:EntitiesDescriptor"/>\r
85             </choice>\r
86         </sequence>\r
87         <attribute name="validUntil" type="dateTime" use="optional"/>\r
88         <attribute name="cacheDuration" type="duration" use="optional"/>\r
89         <attribute name="ID" type="ID" use="optional"/>\r
90         <attribute name="Name" type="string" use="optional"/>\r
91     </complexType>\r
92 \r
93     <element name="EntityDescriptor" type="md:EntityDescriptorType"/>\r
94     <complexType name="EntityDescriptorType">\r
95         <sequence>\r
96             <element ref="ds:Signature" minOccurs="0"/>\r
97             <element ref="md:Extensions" minOccurs="0"/>\r
98             <choice>\r
99                 <choice maxOccurs="unbounded">\r
100                     <element ref="md:RoleDescriptor"/>\r
101                     <element ref="md:IDPSSODescriptor"/>\r
102                     <element ref="md:SPSSODescriptor"/>\r
103                     <element ref="md:AuthnAuthorityDescriptor"/>\r
104                     <element ref="md:AttributeAuthorityDescriptor"/>\r
105                     <element ref="md:PDPDescriptor"/>\r
106                 </choice>\r
107                 <element ref="md:AffiliationDescriptor"/>\r
108             </choice>\r
109             <element ref="md:Organization" minOccurs="0"/>\r
110             <element ref="md:ContactPerson" minOccurs="0" maxOccurs="unbounded"/>\r
111             <element ref="md:AdditionalMetadataLocation" minOccurs="0" maxOccurs="unbounded"/>\r
112         </sequence>\r
113         <attribute name="entityID" type="md:entityIDType" use="required"/>\r
114         <attribute name="validUntil" type="dateTime" use="optional"/>\r
115         <attribute name="cacheDuration" type="duration" use="optional"/>\r
116         <attribute name="ID" type="ID" use="optional"/>\r
117         <anyAttribute namespace="##other" processContents="lax"/>\r
118     </complexType>\r
119     \r
120     <element name="Organization" type="md:OrganizationType"/>\r
121     <complexType name="OrganizationType">\r
122         <sequence>\r
123             <element ref="md:Extensions" minOccurs="0"/>\r
124             <element ref="md:OrganizationName" maxOccurs="unbounded"/>\r
125             <element ref="md:OrganizationDisplayName" maxOccurs="unbounded"/>\r
126             <element ref="md:OrganizationURL" maxOccurs="unbounded"/>\r
127         </sequence>\r
128         <anyAttribute namespace="##other" processContents="lax"/>\r
129     </complexType>\r
130     <element name="OrganizationName" type="md:localizedNameType"/>\r
131     <element name="OrganizationDisplayName" type="md:localizedNameType"/>\r
132     <element name="OrganizationURL" type="md:localizedURIType"/>\r
133     <element name="ContactPerson" type="md:ContactType"/>\r
134     <complexType name="ContactType">\r
135         <sequence>\r
136             <element ref="md:Extensions" minOccurs="0"/>\r
137             <element ref="md:Company" minOccurs="0"/>\r
138             <element ref="md:GivenName" minOccurs="0"/>\r
139             <element ref="md:SurName" minOccurs="0"/>\r
140             <element ref="md:EmailAddress" minOccurs="0" maxOccurs="unbounded"/>\r
141             <element ref="md:TelephoneNumber" minOccurs="0" maxOccurs="unbounded"/>\r
142         </sequence>\r
143         <attribute name="contactType" type="md:ContactTypeType" use="required"/>\r
144         <anyAttribute namespace="##other" processContents="lax"/>\r
145     </complexType>\r
146     <element name="Company" type="string"/>\r
147     <element name="GivenName" type="string"/>\r
148     <element name="SurName" type="string"/>\r
149     <element name="EmailAddress" type="anyURI"/>\r
150     <element name="TelephoneNumber" type="string"/>\r
151     <simpleType name="ContactTypeType">\r
152         <restriction base="string">\r
153             <enumeration value="technical"/>\r
154             <enumeration value="support"/>\r
155             <enumeration value="administrative"/>\r
156             <enumeration value="billing"/>\r
157             <enumeration value="other"/>\r
158         </restriction>\r
159     </simpleType>\r
160 \r
161     <element name="AdditionalMetadataLocation" type="md:AdditionalMetadataLocationType"/>\r
162     <complexType name="AdditionalMetadataLocationType">\r
163         <simpleContent>\r
164             <extension base="anyURI">\r
165                 <attribute name="namespace" type="anyURI" use="required"/>\r
166             </extension>\r
167         </simpleContent>\r
168     </complexType>\r
169 \r
170     <element name="RoleDescriptor" type="md:RoleDescriptorType"/>\r
171     <complexType name="RoleDescriptorType" abstract="true">\r
172         <sequence>\r
173             <element ref="ds:Signature" minOccurs="0"/>\r
174             <element ref="md:Extensions" minOccurs="0"/>\r
175             <element ref="md:KeyDescriptor" minOccurs="0" maxOccurs="unbounded"/>\r
176             <element ref="md:Organization" minOccurs="0"/>\r
177             <element ref="md:ContactPerson" minOccurs="0" maxOccurs="unbounded"/>\r
178         </sequence>\r
179         <attribute name="ID" type="ID" use="optional"/>\r
180         <attribute name="validUntil" type="dateTime" use="optional"/>\r
181         <attribute name="cacheDuration" type="duration" use="optional"/>\r
182         <attribute name="protocolSupportEnumeration" type="md:anyURIListType" use="required"/>\r
183         <attribute name="errorURL" type="anyURI" use="optional"/>\r
184         <anyAttribute namespace="##other" processContents="lax"/>\r
185     </complexType>\r
186     <simpleType name="anyURIListType">\r
187         <list itemType="anyURI"/>\r
188     </simpleType>\r
189 \r
190     <element name="KeyDescriptor" type="md:KeyDescriptorType"/>\r
191     <complexType name="KeyDescriptorType">\r
192         <sequence>\r
193             <element ref="ds:KeyInfo"/>\r
194             <element ref="md:EncryptionMethod" minOccurs="0" maxOccurs="unbounded"/>\r
195         </sequence>\r
196         <attribute name="use" type="md:KeyTypes" use="optional"/>\r
197     </complexType>\r
198     <simpleType name="KeyTypes">\r
199         <restriction base="string">\r
200             <enumeration value="encryption"/>\r
201             <enumeration value="signing"/>\r
202         </restriction>\r
203     </simpleType>\r
204     <element name="EncryptionMethod" type="xenc:EncryptionMethodType"/>\r
205     \r
206     <complexType name="SSODescriptorType" abstract="true">\r
207         <complexContent>\r
208             <extension base="md:RoleDescriptorType">\r
209                 <sequence>\r
210                     <element ref="md:ArtifactResolutionService" minOccurs="0" maxOccurs="unbounded"/>\r
211                     <element ref="md:SingleLogoutService" minOccurs="0" maxOccurs="unbounded"/>\r
212                     <element ref="md:ManageNameIDService" minOccurs="0" maxOccurs="unbounded"/>\r
213                     <element ref="md:NameIDFormat" minOccurs="0" maxOccurs="unbounded"/>\r
214                 </sequence>\r
215             </extension>\r
216         </complexContent>\r
217     </complexType>\r
218     <element name="ArtifactResolutionService" type="md:IndexedEndpointType"/>\r
219     <element name="SingleLogoutService" type="md:EndpointType"/>\r
220     <element name="ManageNameIDService" type="md:EndpointType"/>\r
221     <element name="NameIDFormat" type="anyURI"/>\r
222 \r
223     <element name="IDPSSODescriptor" type="md:IDPSSODescriptorType"/>\r
224     <complexType name="IDPSSODescriptorType">\r
225         <complexContent>\r
226             <extension base="md:SSODescriptorType">\r
227                 <sequence>\r
228                     <element ref="md:SingleSignOnService" maxOccurs="unbounded"/>\r
229                     <element ref="md:NameIDMappingService" minOccurs="0" maxOccurs="unbounded"/>\r
230                     <element ref="md:AssertionIDRequestService" minOccurs="0" maxOccurs="unbounded"/>\r
231                     <element ref="md:AttributeProfile" minOccurs="0" maxOccurs="unbounded"/>\r
232                     <element ref="saml:Attribute" minOccurs="0" maxOccurs="unbounded"/>\r
233                 </sequence>\r
234                 <attribute name="WantAuthnRequestsSigned" type="boolean" use="optional"/>\r
235             </extension>\r
236         </complexContent>\r
237     </complexType>\r
238     <element name="SingleSignOnService" type="md:EndpointType"/>\r
239     <element name="NameIDMappingService" type="md:EndpointType"/>\r
240     <element name="AssertionIDRequestService" type="md:EndpointType"/>\r
241     <element name="AttributeProfile" type="anyURI"/>\r
242     \r
243     <element name="SPSSODescriptor" type="md:SPSSODescriptorType"/>\r
244     <complexType name="SPSSODescriptorType">\r
245         <complexContent>\r
246             <extension base="md:SSODescriptorType">\r
247                 <sequence>\r
248                     <element ref="md:AssertionConsumerService" maxOccurs="unbounded"/>\r
249                     <element ref="md:AttributeConsumingService" minOccurs="0" maxOccurs="unbounded"/>\r
250                 </sequence>\r
251                 <attribute name="AuthnRequestsSigned" type="boolean" use="optional"/>\r
252                 <attribute name="WantAssertionsSigned" type="boolean" use="optional"/>\r
253             </extension>\r
254         </complexContent>\r
255     </complexType>\r
256     <element name="AssertionConsumerService" type="md:IndexedEndpointType"/>\r
257     <element name="AttributeConsumingService" type="md:AttributeConsumingServiceType"/>\r
258     <complexType name="AttributeConsumingServiceType">\r
259         <sequence>\r
260             <element ref="md:ServiceName" maxOccurs="unbounded"/>\r
261             <element ref="md:ServiceDescription" minOccurs="0" maxOccurs="unbounded"/>\r
262             <element ref="md:RequestedAttribute" maxOccurs="unbounded"/>\r
263         </sequence>\r
264         <attribute name="index" type="unsignedShort" use="required"/>\r
265         <attribute name="isDefault" type="boolean" use="optional"/>\r
266     </complexType>\r
267     <element name="ServiceName" type="md:localizedNameType"/>\r
268     <element name="ServiceDescription" type="md:localizedNameType"/>\r
269     <element name="RequestedAttribute" type="md:RequestedAttributeType"/>\r
270     <complexType name="RequestedAttributeType">\r
271         <complexContent>\r
272             <extension base="saml:AttributeType">\r
273                 <attribute name="isRequired" type="boolean" use="optional"/>\r
274             </extension>\r
275         </complexContent>\r
276     </complexType>\r
277   \r
278     <element name="AuthnAuthorityDescriptor" type="md:AuthnAuthorityDescriptorType"/>\r
279     <complexType name="AuthnAuthorityDescriptorType">\r
280         <complexContent>\r
281             <extension base="md:RoleDescriptorType">\r
282                 <sequence>\r
283                     <element ref="md:AuthnQueryService" maxOccurs="unbounded"/>\r
284                     <element ref="md:AssertionIDRequestService" minOccurs="0" maxOccurs="unbounded"/>\r
285                     <element ref="md:NameIDFormat" minOccurs="0" maxOccurs="unbounded"/>\r
286                 </sequence>\r
287             </extension>\r
288         </complexContent>\r
289     </complexType>\r
290     <element name="AuthnQueryService" type="md:EndpointType"/>\r
291 \r
292     <element name="PDPDescriptor" type="md:PDPDescriptorType"/>\r
293     <complexType name="PDPDescriptorType">\r
294         <complexContent>\r
295             <extension base="md:RoleDescriptorType">\r
296                 <sequence>\r
297                     <element ref="md:AuthzService" maxOccurs="unbounded"/>\r
298                     <element ref="md:AssertionIDRequestService" minOccurs="0" maxOccurs="unbounded"/>\r
299                     <element ref="md:NameIDFormat" minOccurs="0" maxOccurs="unbounded"/>\r
300                 </sequence>\r
301             </extension>\r
302         </complexContent>\r
303     </complexType>\r
304     <element name="AuthzService" type="md:EndpointType"/>\r
305 \r
306     <element name="AttributeAuthorityDescriptor" type="md:AttributeAuthorityDescriptorType"/>\r
307     <complexType name="AttributeAuthorityDescriptorType">\r
308         <complexContent>\r
309             <extension base="md:RoleDescriptorType">\r
310                 <sequence>\r
311                     <element ref="md:AttributeService" maxOccurs="unbounded"/>\r
312                     <element ref="md:AssertionIDRequestService" minOccurs="0" maxOccurs="unbounded"/>\r
313                     <element ref="md:NameIDFormat" minOccurs="0" maxOccurs="unbounded"/>\r
314                     <element ref="md:AttributeProfile" minOccurs="0" maxOccurs="unbounded"/>\r
315                     <element ref="saml:Attribute" minOccurs="0" maxOccurs="unbounded"/>\r
316                 </sequence>\r
317             </extension>\r
318         </complexContent>\r
319     </complexType>\r
320     <element name="AttributeService" type="md:EndpointType"/>\r
321    \r
322     <element name="AffiliationDescriptor" type="md:AffiliationDescriptorType"/>\r
323     <complexType name="AffiliationDescriptorType">\r
324         <sequence>\r
325             <element ref="ds:Signature" minOccurs="0"/>\r
326             <element ref="md:Extensions" minOccurs="0"/>\r
327             <element ref="md:AffiliateMember" maxOccurs="unbounded"/>\r
328             <element ref="md:KeyDescriptor" minOccurs="0" maxOccurs="unbounded"/>\r
329         </sequence>\r
330         <attribute name="affiliationOwnerID" type="md:entityIDType" use="required"/>\r
331         <attribute name="validUntil" type="dateTime" use="optional"/>\r
332         <attribute name="cacheDuration" type="duration" use="optional"/>\r
333         <attribute name="ID" type="ID" use="optional"/>\r
334         <anyAttribute namespace="##other" processContents="lax"/>\r
335     </complexType>\r
336     <element name="AffiliateMember" type="md:entityIDType"/>\r
337 </schema>\r