4b48bef2b5cb7fc5b73a6da46aebb401b7f63e95
[shibboleth/cpp-sp.git] / schemas / shibboleth-2.0-native-sp-config.xsd
1 <?xml version="1.0" encoding="US-ASCII"?>
2 <schema targetNamespace="urn:mace:shibboleth:2.0:native:sp:config"
3         xmlns="http://www.w3.org/2001/XMLSchema"
4         xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config"
5         xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
6         xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
7         xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
8         elementFormDefault="qualified"
9         attributeFormDefault="unqualified"
10         blockDefault="substitution"
11         version="2.4">
12
13         <import namespace="urn:oasis:names:tc:SAML:2.0:assertion" schemaLocation="saml-schema-assertion-2.0.xsd"/>
14         <import namespace="urn:oasis:names:tc:SAML:2.0:protocol" schemaLocation="saml-schema-protocol-2.0.xsd"/>
15         <import namespace="urn:oasis:names:tc:SAML:2.0:metadata" schemaLocation="saml-schema-metadata-2.0.xsd"/>
16
17         <annotation>
18                 <documentation>
19                 2.0 schema for XML-based configuration of Shibboleth Native SP instances.
20                 First appearing in Shibboleth 2.0 release.
21                 </documentation>
22         </annotation>
23
24         <simpleType name="string">
25                 <restriction base="string">
26                         <minLength value="1"/>
27                 </restriction>
28         </simpleType>
29
30         <simpleType name="listOfStrings">
31                 <list itemType="conf:string"/>
32         </simpleType>
33
34         <simpleType name="listOfURIs">
35                 <list itemType="anyURI"/>
36         </simpleType>
37
38         <simpleType name="bindingBoolean">
39                 <restriction base="string">
40                         <enumeration value="true"/>
41                         <enumeration value="false"/>
42                         <enumeration value="front"/>
43                         <enumeration value="back"/>
44                 </restriction>
45         </simpleType>
46         
47         <complexType name="PluggableType">
48                 <sequence>
49                         <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
50                 </sequence>
51                 <attribute name="type" type="conf:string" use="required"/>
52                 <anyAttribute namespace="##any" processContents="skip"/>
53         </complexType>
54
55         <element name="SPConfig">
56                 <complexType>
57                         <annotation>
58                                 <documentation>Root of configuration</documentation>
59                         </annotation>
60                         <sequence>
61                                 <element ref="conf:Extensions" minOccurs="0"/>
62                                 <element ref="conf:OutOfProcess"/>
63                                 <element ref="conf:InProcess"/>
64                 <choice minOccurs="0">
65                     <element name="UnixListener">
66                         <complexType>
67                             <attribute name="address" type="conf:string" use="required"/>
68                             <attribute name="stackSize" type="unsignedInt"/>
69                         </complexType>
70                     </element>
71                     <element name="TCPListener">
72                         <complexType>
73                             <attribute name="address" type="conf:string" use="required"/>
74                             <attribute name="port" type="unsignedInt" use="required"/>
75                             <attribute name="acl" type="conf:listOfStrings"/>
76                             <attribute name="stackSize" type="unsignedInt"/>
77                         </complexType>
78                     </element>
79                     <element name="Listener" type="conf:PluggableType"/>
80                 </choice>
81                 <element ref="conf:StorageService" minOccurs="0" maxOccurs="unbounded"/>
82                 <element ref="conf:SessionCache" minOccurs="0"/>
83                 <element ref="conf:ReplayCache" minOccurs="0"/>
84                 <element ref="conf:ArtifactMap" minOccurs="0"/>
85                 <element name="RequestMapper" type="conf:PluggableType" minOccurs="0"/>
86                                 <element ref="conf:ApplicationDefaults"/>
87                                 <element ref="conf:SecurityPolicies"/>
88                 <element ref="conf:TransportOption" minOccurs="0" maxOccurs="unbounded"/>
89                         </sequence>
90                         <attribute name="logger" type="anyURI"/>
91                         <attribute name="clockSkew" type="unsignedInt"/>
92             <attribute name="unsafeChars" type="conf:string"/>
93             <attribute name="allowedSchemes" type="conf:listOfStrings"/>
94                         <anyAttribute namespace="##other" processContents="lax"/>
95                 </complexType>
96         </element>
97
98         <element name="Extensions">
99                 <annotation>
100                         <documentation>Container for extension libraries and custom configuration</documentation>
101                 </annotation>
102                 <complexType>
103                         <sequence>
104                                 <element name="Library" minOccurs="0" maxOccurs="unbounded">
105                                         <complexType>
106                                                 <sequence>
107                                                         <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
108                                                 </sequence>
109                                                 <attribute name="path" type="anyURI" use="required"/>
110                                                 <attribute name="fatal" type="boolean"/>
111                                                 <anyAttribute namespace="##any" processContents="skip"/>
112                                         </complexType>
113                                 </element>
114                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
115                         </sequence>
116                 </complexType>
117         </element>
118
119         <element name="StorageService">
120                 <annotation>
121                         <documentation>References StorageService plugins</documentation>
122                 </annotation>
123                 <complexType>
124                         <complexContent>
125                                 <restriction base="conf:PluggableType">
126                                         <sequence>
127                                                 <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
128                                         </sequence>
129                                         <attribute name="id" type="ID" use="required"/>
130                                         <attribute name="cleanupInterval" type="unsignedInt"/>
131                                         <anyAttribute namespace="##any" processContents="skip"/>
132                                 </restriction>
133                         </complexContent>
134                 </complexType>
135         </element>
136
137         <element name="SessionCache">
138                 <annotation>
139                         <documentation>References SessionCache plugins</documentation>
140                 </annotation>
141                 <complexType>
142                         <complexContent>
143                                 <restriction base="conf:PluggableType">
144                                         <sequence>
145                                                 <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
146                                         </sequence>
147                                         <attribute name="StorageService" type="IDREF"/>
148                                         <attribute name="cacheTimeout" type="unsignedInt"/>
149                                         <anyAttribute namespace="##any" processContents="skip"/>
150                                 </restriction>
151                         </complexContent>
152                 </complexType>
153         </element>
154         
155         <element name="ReplayCache">
156                 <annotation>
157                         <documentation>Ties ReplayCache to a custom StorageService</documentation>
158                 </annotation>
159                 <complexType>
160                         <sequence/>
161                         <attribute name="StorageService" type="IDREF" use="required"/>
162                 </complexType>
163         </element>
164         
165         <element name="ArtifactMap">
166                 <annotation>
167                         <documentation>Customizes an ArtifactMap</documentation>
168                 </annotation>
169                 <complexType>
170                         <sequence/>
171                         <attribute name="StorageService" type="IDREF"/>
172                         <attribute name="context" type="conf:string"/>
173                         <attribute name="artifactTTL" type="unsignedInt"/>
174                 </complexType>
175         </element>
176         
177         <element name="OutOfProcess">
178                 <annotation>
179                         <documentation>Container for out-of-process (shibd) configuration</documentation>
180                 </annotation>
181                 <complexType>
182                         <sequence>
183                                 <element ref="conf:Extensions" minOccurs="0"/>
184                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
185                         </sequence>
186                         <attribute name="logger" type="anyURI"/>
187                     <attribute name="catchAll" type="boolean"/>
188                         <anyAttribute namespace="##other" processContents="lax"/>
189                 </complexType>
190         </element>
191
192         <element name="InProcess">
193                 <annotation>
194                         <documentation>
195                         Container for configuration of locally integrated or platform-specific
196                         features (e.g. web server filters)
197                         </documentation>
198                 </annotation>
199                 <complexType>
200                         <sequence>
201                                 <element ref="conf:Extensions" minOccurs="0"/>
202                                 <element ref="conf:ISAPI" minOccurs="0"/>
203                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
204                         </sequence>
205                         <attribute name="logger" type="anyURI"/>
206                         <attribute name="unsetHeaderValue" type="conf:string"/>
207                         <attribute name="checkSpoofing" type="boolean"/>
208                         <attribute name="spoofKey" type="conf:string"/>
209                         <attribute name="catchAll" type="boolean"/>
210                         <anyAttribute namespace="##other" processContents="lax"/>
211                 </complexType>
212         </element>
213         
214         <element name="ISAPI">
215                 <complexType>
216                         <sequence>
217                                 <element name="Site" maxOccurs="unbounded">
218                                         <complexType>
219                                                 <sequence>
220                                                         <element name="Alias" type="string" minOccurs="0" maxOccurs="unbounded"/>
221                                                 </sequence>
222                                                 <attribute name="id" type="unsignedInt" use="required"/>
223                                                 <attribute name="name" type="conf:string" use="required"/>
224                                                 <attribute name="port" type="unsignedInt"/>
225                                                 <attribute name="sslport" type="unsignedInt"/>
226                                                 <attribute name="scheme" type="conf:string"/>
227                                         </complexType>
228                                 </element>
229                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
230                         </sequence>
231                         <attribute name="normalizeRequest" type="boolean"/>
232                         <attribute name="safeHeaderNames" type="boolean"/>
233                         <anyAttribute namespace="##other" processContents="lax"/>
234                 </complexType>
235         </element>
236
237         <element name="AccessControl" type="conf:UniOperatorType">
238                 <annotation>
239                         <documentation>
240                         A simple example access policy language extension that supersedes Apache .htaccess
241                         </documentation>
242                 </annotation>
243         </element>
244         <element name="OR" type="conf:MultiOperatorType"/>
245         <element name="AND" type="conf:MultiOperatorType"/>
246         <element name="NOT" type="conf:UniOperatorType"/>
247         <complexType name="UniOperatorType">
248                 <choice>
249                         <element ref="conf:AND"/>
250                         <element ref="conf:OR"/>
251                         <element ref="conf:NOT"/>
252                         <element ref="conf:Rule"/>
253                     <element ref="conf:RuleRegex"/>
254                 </choice>
255         </complexType>
256         <complexType name="MultiOperatorType">
257                 <choice minOccurs="2" maxOccurs="unbounded">
258                         <element ref="conf:AND"/>
259                         <element ref="conf:OR"/>
260                         <element ref="conf:NOT"/>
261                         <element ref="conf:Rule"/>
262                     <element ref="conf:RuleRegex"/>
263                 </choice>
264         </complexType>
265         <element name="Rule">
266                 <complexType>
267                         <simpleContent>
268                                 <extension base="conf:listOfStrings">
269                                         <attribute name="require" type="conf:string" use="required"/>
270                                     <attribute name="list" type="boolean"/>
271                                 </extension>
272                         </simpleContent>
273                 </complexType>
274         </element>
275     <element name="RuleRegex">
276         <complexType>
277             <simpleContent>
278                 <extension base="conf:string">
279                     <attribute name="require" type="conf:string" use="required"/>
280                     <attribute name="ignoreCase" type="boolean"/>
281                 </extension>
282             </simpleContent>
283         </complexType>
284     </element>
285         
286         <attributeGroup name="ContentSettings">
287                 <attribute name="authType" type="conf:string"/>
288                 <attribute name="requireSession" type="boolean"/>
289                 <attribute name="requireSessionWith" type="conf:string"/>
290                 <attribute name="exportAssertion" type="boolean"/>
291                 <attribute name="redirectToSSL" type="unsignedInt"/>
292                 <attribute name="entityID" type="anyURI"/>
293         <attribute name="discoveryURL" type="anyURI"/>
294                 <attribute name="isPassive" type="boolean"/>
295         <attribute name="returnOnError" type="boolean"/>
296                 <attribute name="forceAuthn" type="boolean"/>
297                 <attribute name="authnContextClassRef" type="anyURI"/>
298                 <attribute name="authnContextComparison" type="samlp:AuthnContextComparisonType"/>
299         <attribute name="NameIDFormat" type="anyURI"/>
300         <attribute name="SPNameQualifier" type="conf:string"/>
301         <attribute name="redirectErrors" type="anyURI"/>
302                 <attribute name="sessionError" type="anyURI"/>
303                 <attribute name="metadataError" type="anyURI"/>
304                 <attribute name="accessError" type="anyURI"/>
305                 <attribute name="sslError" type="anyURI"/>
306         <attribute name="REMOTE_ADDR" type="conf:string"/>
307                 <anyAttribute namespace="##other" processContents="lax"/>
308         </attributeGroup>
309         <element name="AccessControlProvider" type="conf:PluggableType"/>
310         <element name="htaccess" type="conf:PluggableType"/>
311
312     <element name="RequestMap">
313                 <annotation>
314                         <documentation>
315                         Built-in request mapping syntax, decomposes URLs into Host/Path/Path/...
316                         </documentation>
317                 </annotation>
318         <complexType>
319             <sequence>
320                 <choice minOccurs="0">
321                         <element ref="conf:htaccess"/>
322                                         <element ref="conf:AccessControl"/>
323                         <element ref="conf:AccessControlProvider"/>
324                     </choice>
325                 <choice minOccurs="0" maxOccurs="unbounded">
326                                         <element ref="conf:Host"/>
327                         <element ref="conf:HostRegex"/>
328                 </choice>
329             </sequence>
330             <attribute name="applicationId" type="conf:string" fixed="default"/>
331                 <attributeGroup ref="conf:ContentSettings"/>
332         </complexType>
333     </element>
334
335     <element name="Host">
336         <complexType>
337                 <sequence>
338                 <choice minOccurs="0">
339                         <element ref="conf:htaccess"/>
340                                         <element ref="conf:AccessControl"/>
341                         <element ref="conf:AccessControlProvider"/>
342                     </choice>
343                         <choice minOccurs="0" maxOccurs="unbounded">
344                                 <element ref="conf:Path"/>
345                                 <element ref="conf:PathRegex"/>
346                                 <element ref="conf:Query"/>
347                         </choice>
348                 </sequence>
349                 <attribute name="scheme">
350                             <simpleType>
351                                 <restriction base="conf:string">
352                                     <enumeration value="http"/>
353                                     <enumeration value="https"/>
354                                     <enumeration value="ftp"/>
355                                     <enumeration value="ldap"/>
356                                     <enumeration value="ldaps"/>
357                                 </restriction>
358                             </simpleType>
359                 </attribute>
360                 <attribute name="name" type="conf:string" use="required"/>
361                 <attribute name="port" type="unsignedInt"/>
362                         <attribute name="applicationId" type="conf:string"/>
363                 <attributeGroup ref="conf:ContentSettings"/>
364         </complexType>
365     </element>
366         
367         <element name="HostRegex">
368                 <complexType>
369                         <sequence>
370                                 <choice minOccurs="0">
371                                         <element ref="conf:htaccess"/>
372                                         <element ref="conf:AccessControl"/>
373                                         <element ref="conf:AccessControlProvider"/>
374                                 </choice>
375                                 <choice minOccurs="0" maxOccurs="unbounded">
376                                         <element ref="conf:Path"/>
377                                         <element ref="conf:PathRegex"/>
378                                         <element ref="conf:Query"/>
379                                 </choice>
380                         </sequence>
381                         <attribute name="regex" type="conf:string" use="required"/>
382                         <attribute name="ignoreCase" type="boolean"/>
383                         <attribute name="applicationId" type="conf:string"/>
384                         <attributeGroup ref="conf:ContentSettings"/>
385                 </complexType>
386         </element>
387
388     <element name="Path">
389         <complexType>
390                 <sequence>
391                 <choice minOccurs="0">
392                         <element ref="conf:htaccess"/>
393                                         <element ref="conf:AccessControl"/>
394                         <element ref="conf:AccessControlProvider"/>
395                     </choice>
396                         <choice minOccurs="0" maxOccurs="unbounded">
397                                 <element ref="conf:Path"/>
398                                 <element ref="conf:PathRegex"/>
399                                 <element ref="conf:Query"/>
400                         </choice>
401                 </sequence>
402                         <attribute name="name" type="conf:string" use="required"/>
403                         <attribute name="applicationId" type="conf:string"/>
404                         <attributeGroup ref="conf:ContentSettings"/>
405         </complexType>
406     </element>
407
408         <element name="PathRegex">
409                 <complexType>
410                         <sequence>
411                                 <choice minOccurs="0">
412                                         <element ref="conf:htaccess"/>
413                                         <element ref="conf:AccessControl"/>
414                                         <element ref="conf:AccessControlProvider"/>
415                                 </choice>
416                                 <element ref="conf:Query" minOccurs="0" maxOccurs="unbounded"/>
417                         </sequence>
418                         <attribute name="regex" type="conf:string" use="required"/>
419                         <attribute name="ignoreCase" type="boolean"/>
420                         <attribute name="applicationId" type="conf:string"/>
421                         <attributeGroup ref="conf:ContentSettings"/>
422                 </complexType>
423         </element>
424         
425         <element name="Query">
426                 <complexType>
427                         <sequence>
428                                 <choice minOccurs="0">
429                                         <element ref="conf:htaccess"/>
430                                         <element ref="conf:AccessControl"/>
431                                         <element ref="conf:AccessControlProvider"/>
432                                 </choice>
433                                 <element ref="conf:Query" minOccurs="0" maxOccurs="unbounded"/>
434                         </sequence>
435                         <attribute name="name" type="conf:string" use="required"/>
436                         <attribute name="regex" type="conf:string"/>
437                         <attributeGroup ref="conf:ContentSettings"/>
438                 </complexType>
439         </element>
440         
441         <element name="ApplicationDefaults">
442                 <annotation>
443                         <documentation>Container for default settings and application-specific overrides</documentation>
444                 </annotation>
445                 <complexType>
446                         <sequence>
447                                 <element ref="conf:Sessions"/>
448                                 <element ref="conf:Errors" minOccurs="0"/>
449                                 <element ref="conf:RelyingParty" minOccurs="0" maxOccurs="unbounded"/>
450                                 <element ref="conf:Notify" minOccurs="0" maxOccurs="unbounded"/>
451                                 <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
452                 <element name="MetadataProvider" type="conf:PluggableType"/>
453                                 <element name="TrustEngine" type="conf:PluggableType"/>
454                                 <element name="AttributeExtractor" type="conf:PluggableType" minOccurs="0"/>
455                                 <element name="AttributeResolver" type="conf:PluggableType" minOccurs="0"/>
456                                 <element name="AttributeFilter" type="conf:PluggableType" minOccurs="0"/>
457                                 <element name="CredentialResolver" type="conf:PluggableType" minOccurs="0"/>
458                                 <element ref="conf:ApplicationOverride" minOccurs="0" maxOccurs="unbounded"/>
459                         </sequence>
460                         <attribute name="id" type="conf:string" fixed="default"/>
461                         <attribute name="entityID" type="anyURI" use="required"/>
462                         <attribute name="policyId" type="conf:string" use="required"/>
463                         <attributeGroup ref="conf:ApplicationGroup"/>
464                     <attributeGroup ref="conf:RelyingPartyGroup"/>
465                         <anyAttribute namespace="##other" processContents="lax"/>
466                 </complexType>
467         </element>
468         
469         <element name="ApplicationOverride">
470                 <annotation>
471                         <documentation>Container for application-specific overrides</documentation>
472                 </annotation>
473                 <complexType>
474                         <sequence>
475                                 <element ref="conf:Sessions" minOccurs="0"/>
476                                 <element ref="conf:Errors" minOccurs="0"/>
477                                 <element ref="conf:RelyingParty" minOccurs="0" maxOccurs="unbounded"/>
478                                 <element ref="conf:Notify" minOccurs="0" maxOccurs="unbounded"/>
479                                 <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
480                                 <element name="MetadataProvider" type="conf:PluggableType" minOccurs="0"/>
481                                 <element name="TrustEngine" type="conf:PluggableType" minOccurs="0"/>
482                                 <element name="AttributeExtractor" type="conf:PluggableType" minOccurs="0"/>
483                                 <element name="AttributeResolver" type="conf:PluggableType" minOccurs="0"/>
484                                 <element name="AttributeFilter" type="conf:PluggableType" minOccurs="0"/>
485                                 <element name="CredentialResolver" type="conf:PluggableType" minOccurs="0"/>
486                         </sequence>
487                         <attribute name="id" type="conf:string" use="required"/>
488                         <attribute name="entityID" type="anyURI"/>
489                         <attribute name="policyId" type="conf:string"/>
490                         <attributeGroup ref="conf:ApplicationGroup"/>
491                     <attributeGroup ref="conf:RelyingPartyGroup"/>
492                         <anyAttribute namespace="##other" processContents="lax"/>
493                 </complexType>
494         </element>
495
496         <attributeGroup name="ApplicationGroup">
497                 <attribute name="homeURL" type="anyURI"/>
498                 <attribute name="REMOTE_USER" type="conf:listOfStrings"/>
499                 <attribute name="unsetHeaders" type="conf:listOfStrings"/>
500                 <attribute name="metadataAttributePrefix" type="conf:string"/>
501             <attribute name="attributePrefix" type="conf:string"/>
502         </attributeGroup>
503
504     <attributeGroup name="RelyingPartyGroup">
505         <attribute name="authType" type="conf:string"/>
506         <attribute name="authUsername" type="conf:string"/>
507         <attribute name="authPassword" type="conf:string"/>
508         <attribute name="signing" type="conf:bindingBoolean"/>
509         <attribute name="signingAlg" type="anyURI"/>
510         <attribute name="digestAlg" type="anyURI"/>
511         <attribute name="encryption" type="conf:bindingBoolean"/>
512         <attribute name="encryptionAlg" type="anyURI"/>
513         <attribute name="keyName" type="conf:string"/>
514         <attribute name="artifactEndpointIndex" type="unsignedShort"/>
515         <attribute name="chunkedEncoding" type="boolean"/>
516         <attribute name="connectTimeout" type="unsignedShort"/>
517         <attribute name="timeout" type="unsignedShort"/>
518         <attribute name="requireConfidentiality" type="boolean"/>
519         <attribute name="requireTransportAuth" type="boolean"/>
520         <attribute name="requireSignedAssertions" type="boolean"/>
521     </attributeGroup>
522     
523         <element name="Sessions">
524                 <annotation>
525                         <documentation>Container for specifying protocol handlers and session policy</documentation>
526                 </annotation>
527                 <complexType>
528                         <choice minOccurs="0" maxOccurs="unbounded">
529                                 <element ref="conf:SessionInitiator"/>
530                                 <element ref="conf:LogoutInitiator"/>
531                                 <element ref="md:AssertionConsumerService"/>
532                                 <element ref="md:ArtifactResolutionService"/>
533                                 <element ref="md:SingleLogoutService"/>
534                                 <element ref="md:ManageNameIDService"/>
535                                 <element name="Handler">
536                                         <complexType>
537                                                 <complexContent>
538                                                         <restriction base="conf:PluggableType">
539                                                                 <sequence>
540                                                                         <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
541                                                                 </sequence>
542                                                                 <attribute name="Location" type="anyURI" use="required"/>
543                                                             <attribute name="acl" type="conf:listOfStrings"/>
544                                                                 <anyAttribute namespace="##any" processContents="skip"/>
545                                                         </restriction>
546                                                 </complexContent>
547                                         </complexType>
548                                 </element>
549                         </choice>
550                         <attribute name="handlerURL" type="anyURI" use="required"/>
551                         <attribute name="handlerSSL" type="boolean"/>
552                         <attribute name="exportLocation" type="conf:string"/>
553                         <attribute name="exportACL" type="conf:listOfStrings"/>
554                         <attribute name="cookieName" type="conf:string"/>
555                         <attribute name="cookieProps" type="conf:string"/>
556             <attribute name="cookieLifetime" type="unsignedInt"/>
557                         <attribute name="idpHistory" type="boolean"/>
558                         <attribute name="idpHistoryDays" type="unsignedInt"/>
559                         <attribute name="lifetime" type="unsignedInt"/>
560                         <attribute name="timeout" type="unsignedInt"/>
561                     <attribute name="maxTimeSinceAuthn" type="unsignedInt"/>
562                         <attribute name="checkAddress" type="boolean"/>
563                         <attribute name="consistentAddress" type="boolean"/>
564                         <attribute name="postData" type="conf:string"/>
565             <attribute name="postLimit" type="positiveInteger"/>
566                         <attribute name="postTemplate" type="conf:string"/>
567             <attribute name="postExpire" type="boolean"/>
568                         <anyAttribute namespace="##other" processContents="lax"/>
569                 </complexType>
570         </element>
571
572         <attribute name="policyId" type="conf:string">
573                 <annotation>
574                         <documentation>Used to reference Policy elements from profile endpoints.</documentation>
575                 </annotation>
576         </attribute>
577
578         <element name="SessionInitiator">
579                 <annotation>
580                         <documentation>Used to specify handlers that can issue AuthnRequests or perform discovery</documentation>
581                 </annotation>
582                 <complexType>
583                         <complexContent>
584                                 <restriction base="conf:PluggableType">
585                                         <sequence>
586                                                 <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
587                                         </sequence>
588                                         <attribute name="Location" type="anyURI"/>
589                                         <attribute name="id" type="conf:string"/>
590                                         <attribute name="isDefault" type="boolean"/>
591                                         <attribute name="relayState" type="conf:string"/>
592                                         <attribute name="entityIDParam" type="conf:string"/>
593                                         <attribute name="entityID" type="anyURI"/>
594                                         <attribute name="URL" type="anyURI"/>
595                                         <attribute name="outgoingBindings" type="conf:listOfURIs"/>
596                                         <attribute name="template" type="anyURI"/>
597                                         <attribute name="postArtifact" type="boolean"/>
598                                         <attribute name="acsByIndex" type="boolean"/>
599                     <attribute name="acsIndex" type="unsignedShort"/>
600                                         <attribute name="defaultACSIndex" type="unsignedShort"/>   <!-- deprecated -->
601                     <attribute name="isPassive" type="boolean"/>
602                     <attribute name="returnOnError" type="boolean"/>
603                     <attribute name="forceAuthn" type="boolean"/>
604                     <attribute name="authnContextClassRef" type="anyURI"/>
605                     <attribute name="authnContextComparison" type="samlp:AuthnContextComparisonType"/>
606                     <attribute name="NameIDFormat" type="anyURI"/>
607                     <attribute name="SPNameQualifier" type="conf:string"/>
608                     <attribute name="requestDelegation" type="boolean"/>
609                                         <anyAttribute namespace="##any" processContents="skip"/>
610                                 </restriction>
611                         </complexContent>
612                 </complexType>
613         </element>
614
615         <element name="LogoutInitiator">
616                 <annotation>
617                         <documentation>Used to specify handlers that can issue LogoutRequests</documentation>
618                 </annotation>
619                 <complexType>
620                         <complexContent>
621                                 <restriction base="conf:PluggableType">
622                                         <sequence>
623                                                 <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
624                                         </sequence>
625                                         <attribute name="Location" type="anyURI"/>
626                                     <attribute name="relayState" type="conf:string"/>
627                                         <attribute name="outgoingBindings" type="conf:listOfURIs"/>
628                                         <attribute name="template" type="anyURI"/>
629                                         <attribute name="postArtifact" type="boolean"/>
630                                         <anyAttribute namespace="##any" processContents="skip"/>
631                                 </restriction>
632                         </complexContent>
633                 </complexType>
634         </element>
635         
636         <element name="Errors">
637                 <annotation>
638                         <documentation>Container for error templates and associated details</documentation>
639                 </annotation>
640                 <complexType>
641                         <sequence>
642                                 <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
643                         </sequence>
644             <attribute name="redirectErrors" type="anyURI"/>
645                         <attribute name="session" type="anyURI"/>
646                         <attribute name="metadata" type="anyURI"/>
647                         <attribute name="access" type="anyURI"/>
648                         <attribute name="ssl" type="anyURI"/>
649             <attribute name="localLogout" type="anyURI"/>
650             <attribute name="globalLogout" type="anyURI"/>
651             <attribute name="partialLogout" type="anyURI"/>
652                         <attribute name="supportContact" type="conf:string"/>
653                         <attribute name="logoLocation" type="anyURI"/>
654                         <attribute name="styleSheet" type="anyURI"/>
655                         <anyAttribute namespace="##any" processContents="skip"/>
656                 </complexType>
657         </element>
658
659     <element name="RelyingParty">
660         <annotation>
661             <documentation>Container for specifying settings to use with particular peers</documentation>
662         </annotation>
663         <complexType>
664             <sequence/>
665             <attribute name="Name" type="conf:string" use="required"/>
666             <attributeGroup ref="conf:RelyingPartyGroup"/>
667             <attribute name="entityID" type="anyURI"/>
668             <anyAttribute namespace="##other" processContents="lax"/>
669         </complexType>
670     </element>
671     
672         <element name="Notify">
673                 <annotation>
674                         <documentation>Used to specify locations to receive application notifications</documentation>
675                 </annotation>
676                 <complexType>
677                         <sequence/>
678                         <attribute name="Channel" use="required">
679                                 <simpleType>
680                                         <restriction base="string">
681                                                 <enumeration value="front"/>
682                                                 <enumeration value="back"/>
683                                         </restriction>
684                                 </simpleType>
685                         </attribute>
686                         <attribute name="Location" type="anyURI" use="required"/>
687                         <anyAttribute namespace="##any" processContents="skip"/>
688                 </complexType>
689         </element>
690         
691         <element name="SecurityPolicies">
692                 <annotation>
693                         <documentation>Container for specifying sets of policy rules to apply to incoming messages</documentation>
694                 </annotation>
695                 <complexType>
696                         <sequence>
697                                 <element name="Policy" minOccurs="1" maxOccurs="unbounded">
698                                         <annotation>
699                                                 <documentation>Specifies a set of SecurityPolicyRule plugins</documentation>
700                                         </annotation>
701                                         <complexType>
702                                                 <choice>
703                                                         <element name="Rule" type="conf:PluggableType" minOccurs="1" maxOccurs="unbounded"/>
704                             <element name="PolicyRule" type="conf:PluggableType" minOccurs="1" maxOccurs="unbounded"/>
705                                                 </choice>
706                                                 <attribute name="id" type="conf:string" use="required"/>
707                                                 <attribute name="validate" type="boolean"/>
708                                                 <anyAttribute namespace="##any" processContents="skip"/>
709                                         </complexType>
710                                 </element>
711                         </sequence>
712                 </complexType>
713         </element>
714
715         <element name="TransportOption">
716                 <annotation>
717                         <documentation>Implementation-specific option to pass to SOAPTransport provider.</documentation>
718                 </annotation>
719                 <complexType>
720                         <simpleContent>
721                                 <extension base="anySimpleType">
722                                         <attribute name="provider" type="conf:string" use="required"/>
723                                         <attribute name="option" type="conf:string" use="required"/>
724                                 </extension>
725                         </simpleContent>
726                 </complexType>
727         </element>
728         
729 </schema>