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