310505e89ad393db4b0fe0872c9d56eab0248753
[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="forceAuthn" type="boolean"/>
296                 <attribute name="authnContextClassRef" type="anyURI"/>
297                 <attribute name="authnContextComparison" type="samlp:AuthnContextComparisonType"/>
298         <attribute name="NameIDFormat" type="anyURI"/>
299         <attribute name="SPNameQualifier" type="conf:string"/>
300         <attribute name="redirectErrors" type="anyURI"/>
301                 <attribute name="sessionError" type="anyURI"/>
302                 <attribute name="metadataError" type="anyURI"/>
303                 <attribute name="accessError" type="anyURI"/>
304                 <attribute name="sslError" type="anyURI"/>
305         <attribute name="REMOTE_ADDR" type="conf:string"/>
306                 <anyAttribute namespace="##other" processContents="lax"/>
307         </attributeGroup>
308         <element name="AccessControlProvider" type="conf:PluggableType"/>
309         <element name="htaccess" type="conf:PluggableType"/>
310
311     <element name="RequestMap">
312                 <annotation>
313                         <documentation>
314                         Built-in request mapping syntax, decomposes URLs into Host/Path/Path/...
315                         </documentation>
316                 </annotation>
317         <complexType>
318             <sequence>
319                 <choice minOccurs="0">
320                         <element ref="conf:htaccess"/>
321                                         <element ref="conf:AccessControl"/>
322                         <element ref="conf:AccessControlProvider"/>
323                     </choice>
324                 <choice minOccurs="0" maxOccurs="unbounded">
325                                         <element ref="conf:Host"/>
326                         <element ref="conf:HostRegex"/>
327                 </choice>
328             </sequence>
329             <attribute name="applicationId" type="conf:string" fixed="default"/>
330                 <attributeGroup ref="conf:ContentSettings"/>
331         </complexType>
332     </element>
333
334     <element name="Host">
335         <complexType>
336                 <sequence>
337                 <choice minOccurs="0">
338                         <element ref="conf:htaccess"/>
339                                         <element ref="conf:AccessControl"/>
340                         <element ref="conf:AccessControlProvider"/>
341                     </choice>
342                         <choice minOccurs="0" maxOccurs="unbounded">
343                                 <element ref="conf:Path"/>
344                                 <element ref="conf:PathRegex"/>
345                                 <element ref="conf:Query"/>
346                         </choice>
347                 </sequence>
348                 <attribute name="scheme">
349                             <simpleType>
350                                 <restriction base="conf:string">
351                                     <enumeration value="http"/>
352                                     <enumeration value="https"/>
353                                     <enumeration value="ftp"/>
354                                     <enumeration value="ldap"/>
355                                     <enumeration value="ldaps"/>
356                                 </restriction>
357                             </simpleType>
358                 </attribute>
359                 <attribute name="name" type="conf:string" use="required"/>
360                 <attribute name="port" type="unsignedInt"/>
361                         <attribute name="applicationId" type="conf:string"/>
362                 <attributeGroup ref="conf:ContentSettings"/>
363         </complexType>
364     </element>
365         
366         <element name="HostRegex">
367                 <complexType>
368                         <sequence>
369                                 <choice minOccurs="0">
370                                         <element ref="conf:htaccess"/>
371                                         <element ref="conf:AccessControl"/>
372                                         <element ref="conf:AccessControlProvider"/>
373                                 </choice>
374                                 <choice minOccurs="0" maxOccurs="unbounded">
375                                         <element ref="conf:Path"/>
376                                         <element ref="conf:PathRegex"/>
377                                         <element ref="conf:Query"/>
378                                 </choice>
379                         </sequence>
380                         <attribute name="regex" type="conf:string" use="required"/>
381                         <attribute name="ignoreCase" type="boolean"/>
382                         <attribute name="applicationId" type="conf:string"/>
383                         <attributeGroup ref="conf:ContentSettings"/>
384                 </complexType>
385         </element>
386
387     <element name="Path">
388         <complexType>
389                 <sequence>
390                 <choice minOccurs="0">
391                         <element ref="conf:htaccess"/>
392                                         <element ref="conf:AccessControl"/>
393                         <element ref="conf:AccessControlProvider"/>
394                     </choice>
395                         <choice minOccurs="0" maxOccurs="unbounded">
396                                 <element ref="conf:Path"/>
397                                 <element ref="conf:PathRegex"/>
398                                 <element ref="conf:Query"/>
399                         </choice>
400                 </sequence>
401                         <attribute name="name" type="conf:string" use="required"/>
402                         <attribute name="applicationId" type="conf:string"/>
403                         <attributeGroup ref="conf:ContentSettings"/>
404         </complexType>
405     </element>
406
407         <element name="PathRegex">
408                 <complexType>
409                         <sequence>
410                                 <choice minOccurs="0">
411                                         <element ref="conf:htaccess"/>
412                                         <element ref="conf:AccessControl"/>
413                                         <element ref="conf:AccessControlProvider"/>
414                                 </choice>
415                                 <element ref="conf:Query" minOccurs="0" maxOccurs="unbounded"/>
416                         </sequence>
417                         <attribute name="regex" type="conf:string" use="required"/>
418                         <attribute name="ignoreCase" type="boolean"/>
419                         <attribute name="applicationId" type="conf:string"/>
420                         <attributeGroup ref="conf:ContentSettings"/>
421                 </complexType>
422         </element>
423         
424         <element name="Query">
425                 <complexType>
426                         <sequence>
427                                 <choice minOccurs="0">
428                                         <element ref="conf:htaccess"/>
429                                         <element ref="conf:AccessControl"/>
430                                         <element ref="conf:AccessControlProvider"/>
431                                 </choice>
432                                 <element ref="conf:Query" minOccurs="0" maxOccurs="unbounded"/>
433                         </sequence>
434                         <attribute name="name" type="conf:string" use="required"/>
435                         <attribute name="regex" type="conf:string"/>
436                         <attributeGroup ref="conf:ContentSettings"/>
437                 </complexType>
438         </element>
439         
440         <element name="ApplicationDefaults">
441                 <annotation>
442                         <documentation>Container for default settings and application-specific overrides</documentation>
443                 </annotation>
444                 <complexType>
445                         <sequence>
446                                 <element ref="conf:Sessions"/>
447                                 <element ref="conf:Errors" minOccurs="0"/>
448                                 <element ref="conf:RelyingParty" minOccurs="0" maxOccurs="unbounded"/>
449                                 <element ref="conf:Notify" minOccurs="0" maxOccurs="unbounded"/>
450                                 <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
451                 <element name="MetadataProvider" type="conf:PluggableType"/>
452                                 <element name="TrustEngine" type="conf:PluggableType"/>
453                                 <element name="AttributeExtractor" type="conf:PluggableType" minOccurs="0"/>
454                                 <element name="AttributeResolver" type="conf:PluggableType" minOccurs="0"/>
455                                 <element name="AttributeFilter" type="conf:PluggableType" minOccurs="0"/>
456                                 <element name="CredentialResolver" type="conf:PluggableType" minOccurs="0"/>
457                                 <element ref="conf:ApplicationOverride" minOccurs="0" maxOccurs="unbounded"/>
458                         </sequence>
459                         <attribute name="id" type="conf:string" fixed="default"/>
460                         <attribute name="entityID" type="anyURI" use="required"/>
461                         <attribute name="policyId" type="conf:string" use="required"/>
462                         <attributeGroup ref="conf:ApplicationGroup"/>
463                     <attributeGroup ref="conf:RelyingPartyGroup"/>
464                         <anyAttribute namespace="##other" processContents="lax"/>
465                 </complexType>
466         </element>
467         
468         <element name="ApplicationOverride">
469                 <annotation>
470                         <documentation>Container for application-specific overrides</documentation>
471                 </annotation>
472                 <complexType>
473                         <sequence>
474                                 <element ref="conf:Sessions" minOccurs="0"/>
475                                 <element ref="conf:Errors" minOccurs="0"/>
476                                 <element ref="conf:RelyingParty" minOccurs="0" maxOccurs="unbounded"/>
477                                 <element ref="conf:Notify" minOccurs="0" maxOccurs="unbounded"/>
478                                 <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
479                                 <element name="MetadataProvider" type="conf:PluggableType" minOccurs="0"/>
480                                 <element name="TrustEngine" type="conf:PluggableType" minOccurs="0"/>
481                                 <element name="AttributeExtractor" type="conf:PluggableType" minOccurs="0"/>
482                                 <element name="AttributeResolver" type="conf:PluggableType" minOccurs="0"/>
483                                 <element name="AttributeFilter" type="conf:PluggableType" minOccurs="0"/>
484                                 <element name="CredentialResolver" type="conf:PluggableType" minOccurs="0"/>
485                         </sequence>
486                         <attribute name="id" type="conf:string" use="required"/>
487                         <attribute name="entityID" type="anyURI"/>
488                         <attribute name="policyId" type="conf:string"/>
489                         <attributeGroup ref="conf:ApplicationGroup"/>
490                     <attributeGroup ref="conf:RelyingPartyGroup"/>
491                         <anyAttribute namespace="##other" processContents="lax"/>
492                 </complexType>
493         </element>
494
495         <attributeGroup name="ApplicationGroup">
496                 <attribute name="homeURL" type="anyURI"/>
497                 <attribute name="REMOTE_USER" type="conf:listOfStrings"/>
498                 <attribute name="unsetHeaders" type="conf:listOfStrings"/>
499                 <attribute name="metadataAttributePrefix" type="conf:string"/>
500             <attribute name="attributePrefix" type="conf:string"/>
501         </attributeGroup>
502
503     <attributeGroup name="RelyingPartyGroup">
504         <attribute name="authType" type="conf:string"/>
505         <attribute name="authUsername" type="conf:string"/>
506         <attribute name="authPassword" type="conf:string"/>
507         <attribute name="signing" type="conf:bindingBoolean"/>
508         <attribute name="signingAlg" type="anyURI"/>
509         <attribute name="digestAlg" type="anyURI"/>
510         <attribute name="encryption" type="conf:bindingBoolean"/>
511         <attribute name="encryptionAlg" type="anyURI"/>
512         <attribute name="keyName" type="conf:string"/>
513         <attribute name="artifactEndpointIndex" type="unsignedShort"/>
514         <attribute name="chunkedEncoding" type="boolean"/>
515         <attribute name="connectTimeout" type="unsignedShort"/>
516         <attribute name="timeout" type="unsignedShort"/>
517         <attribute name="requireConfidentiality" type="boolean"/>
518         <attribute name="requireTransportAuth" type="boolean"/>
519         <attribute name="requireSignedAssertions" type="boolean"/>
520     </attributeGroup>
521     
522         <element name="Sessions">
523                 <annotation>
524                         <documentation>Container for specifying protocol handlers and session policy</documentation>
525                 </annotation>
526                 <complexType>
527                         <choice minOccurs="0" maxOccurs="unbounded">
528                                 <element ref="conf:SessionInitiator"/>
529                                 <element ref="conf:LogoutInitiator"/>
530                                 <element ref="md:AssertionConsumerService"/>
531                                 <element ref="md:ArtifactResolutionService"/>
532                                 <element ref="md:SingleLogoutService"/>
533                                 <element ref="md:ManageNameIDService"/>
534                                 <element name="Handler">
535                                         <complexType>
536                                                 <complexContent>
537                                                         <restriction base="conf:PluggableType">
538                                                                 <sequence>
539                                                                         <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
540                                                                 </sequence>
541                                                                 <attribute name="Location" type="anyURI" use="required"/>
542                                                             <attribute name="acl" type="conf:listOfStrings"/>
543                                                                 <anyAttribute namespace="##any" processContents="skip"/>
544                                                         </restriction>
545                                                 </complexContent>
546                                         </complexType>
547                                 </element>
548                         </choice>
549                         <attribute name="handlerURL" type="anyURI" use="required"/>
550                         <attribute name="handlerSSL" type="boolean"/>
551                         <attribute name="exportLocation" type="conf:string"/>
552                         <attribute name="exportACL" type="conf:listOfStrings"/>
553                         <attribute name="cookieName" type="conf:string"/>
554                         <attribute name="cookieProps" type="conf:string"/>
555             <attribute name="cookieLifetime" type="unsignedInt"/>
556                         <attribute name="idpHistory" type="boolean"/>
557                         <attribute name="idpHistoryDays" type="unsignedInt"/>
558                         <attribute name="lifetime" type="unsignedInt"/>
559                         <attribute name="timeout" type="unsignedInt"/>
560                     <attribute name="maxTimeSinceAuthn" type="unsignedInt"/>
561                         <attribute name="checkAddress" type="boolean"/>
562                         <attribute name="consistentAddress" type="boolean"/>
563                         <attribute name="postData" type="conf:string"/>
564             <attribute name="postLimit" type="positiveInteger"/>
565                         <attribute name="postTemplate" type="conf:string"/>
566             <attribute name="postExpire" type="boolean"/>
567                         <anyAttribute namespace="##other" processContents="lax"/>
568                 </complexType>
569         </element>
570
571         <attribute name="policyId" type="conf:string">
572                 <annotation>
573                         <documentation>Used to reference Policy elements from profile endpoints.</documentation>
574                 </annotation>
575         </attribute>
576
577         <element name="SessionInitiator">
578                 <annotation>
579                         <documentation>Used to specify handlers that can issue AuthnRequests or perform discovery</documentation>
580                 </annotation>
581                 <complexType>
582                         <complexContent>
583                                 <restriction base="conf:PluggableType">
584                                         <sequence>
585                                                 <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
586                                         </sequence>
587                                         <attribute name="Location" type="anyURI"/>
588                                         <attribute name="id" type="conf:string"/>
589                                         <attribute name="isDefault" type="boolean"/>
590                                         <attribute name="relayState" type="conf:string"/>
591                                         <attribute name="entityIDParam" type="conf:string"/>
592                                         <attribute name="entityID" type="anyURI"/>
593                                         <attribute name="URL" type="anyURI"/>
594                                         <attribute name="outgoingBindings" type="conf:listOfURIs"/>
595                                         <attribute name="template" type="anyURI"/>
596                                         <attribute name="postArtifact" type="boolean"/>
597                                         <attribute name="acsByIndex" type="boolean"/>
598                     <attribute name="acsIndex" type="unsignedShort"/>
599                                         <attribute name="defaultACSIndex" type="unsignedShort"/>   <!-- deprecated -->
600                     <attribute name="isPassive" type="boolean"/>
601                     <attribute name="forceAuthn" type="boolean"/>
602                     <attribute name="authnContextClassRef" type="anyURI"/>
603                     <attribute name="authnContextComparison" type="samlp:AuthnContextComparisonType"/>
604                     <attribute name="NameIDFormat" type="anyURI"/>
605                     <attribute name="SPNameQualifier" type="conf:string"/>
606                     <attribute name="requestDelegation" type="boolean"/>
607                                         <anyAttribute namespace="##any" processContents="skip"/>
608                                 </restriction>
609                         </complexContent>
610                 </complexType>
611         </element>
612
613         <element name="LogoutInitiator">
614                 <annotation>
615                         <documentation>Used to specify handlers that can issue LogoutRequests</documentation>
616                 </annotation>
617                 <complexType>
618                         <complexContent>
619                                 <restriction base="conf:PluggableType">
620                                         <sequence>
621                                                 <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
622                                         </sequence>
623                                         <attribute name="Location" type="anyURI"/>
624                                     <attribute name="relayState" type="conf:string"/>
625                                         <attribute name="outgoingBindings" type="conf:listOfURIs"/>
626                                         <attribute name="template" type="anyURI"/>
627                                         <attribute name="postArtifact" type="boolean"/>
628                                         <anyAttribute namespace="##any" processContents="skip"/>
629                                 </restriction>
630                         </complexContent>
631                 </complexType>
632         </element>
633         
634         <element name="Errors">
635                 <annotation>
636                         <documentation>Container for error templates and associated details</documentation>
637                 </annotation>
638                 <complexType>
639                         <sequence>
640                                 <any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
641                         </sequence>
642             <attribute name="redirectErrors" type="anyURI"/>
643                         <attribute name="session" type="anyURI"/>
644                         <attribute name="metadata" type="anyURI"/>
645                         <attribute name="access" type="anyURI"/>
646                         <attribute name="ssl" type="anyURI"/>
647             <attribute name="localLogout" type="anyURI"/>
648             <attribute name="globalLogout" type="anyURI"/>
649             <attribute name="partialLogout" type="anyURI"/>
650                         <attribute name="supportContact" type="conf:string"/>
651                         <attribute name="logoLocation" type="anyURI"/>
652                         <attribute name="styleSheet" type="anyURI"/>
653                         <anyAttribute namespace="##any" processContents="skip"/>
654                 </complexType>
655         </element>
656
657     <element name="RelyingParty">
658         <annotation>
659             <documentation>Container for specifying settings to use with particular peers</documentation>
660         </annotation>
661         <complexType>
662             <sequence/>
663             <attribute name="Name" type="conf:string" use="required"/>
664             <attributeGroup ref="conf:RelyingPartyGroup"/>
665             <attribute name="entityID" type="anyURI"/>
666             <anyAttribute namespace="##other" processContents="lax"/>
667         </complexType>
668     </element>
669     
670         <element name="Notify">
671                 <annotation>
672                         <documentation>Used to specify locations to receive application notifications</documentation>
673                 </annotation>
674                 <complexType>
675                         <sequence/>
676                         <attribute name="Channel" use="required">
677                                 <simpleType>
678                                         <restriction base="string">
679                                                 <enumeration value="front"/>
680                                                 <enumeration value="back"/>
681                                         </restriction>
682                                 </simpleType>
683                         </attribute>
684                         <attribute name="Location" type="anyURI" use="required"/>
685                         <anyAttribute namespace="##any" processContents="skip"/>
686                 </complexType>
687         </element>
688         
689         <element name="SecurityPolicies">
690                 <annotation>
691                         <documentation>Container for specifying sets of policy rules to apply to incoming messages</documentation>
692                 </annotation>
693                 <complexType>
694                         <sequence>
695                                 <element name="Policy" minOccurs="1" maxOccurs="unbounded">
696                                         <annotation>
697                                                 <documentation>Specifies a set of SecurityPolicyRule plugins</documentation>
698                                         </annotation>
699                                         <complexType>
700                                                 <choice>
701                                                         <element name="Rule" type="conf:PluggableType" minOccurs="1" maxOccurs="unbounded"/>
702                             <element name="PolicyRule" type="conf:PluggableType" minOccurs="1" maxOccurs="unbounded"/>
703                                                 </choice>
704                                                 <attribute name="id" type="conf:string" use="required"/>
705                                                 <attribute name="validate" type="boolean"/>
706                                                 <anyAttribute namespace="##any" processContents="skip"/>
707                                         </complexType>
708                                 </element>
709                         </sequence>
710                 </complexType>
711         </element>
712
713         <element name="TransportOption">
714                 <annotation>
715                         <documentation>Implementation-specific option to pass to SOAPTransport provider.</documentation>
716                 </annotation>
717                 <complexType>
718                         <simpleContent>
719                                 <extension base="anySimpleType">
720                                         <attribute name="provider" type="conf:string" use="required"/>
721                                         <attribute name="option" type="conf:string" use="required"/>
722                                 </extension>
723                         </simpleContent>
724                 </complexType>
725         </element>
726         
727 </schema>