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