Factor entityID into SessionInitiator subinterface, move WAYF logic out of Shib handler.
[shibboleth/sp.git] / schemas / shibboleth-spconfig-2.0.xsd
1 <?xml version="1.0" encoding="US-ASCII"?>\r
2 <schema targetNamespace="urn:mace:shibboleth:sp:config:2.0"\r
3         xmlns="http://www.w3.org/2001/XMLSchema"\r
4         xmlns:conf="urn:mace:shibboleth:sp:config:2.0"\r
5         xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"\r
6         xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"\r
7         elementFormDefault="qualified"\r
8         attributeFormDefault="unqualified"\r
9         blockDefault="substitution"\r
10         version="2.0">\r
11 \r
12         <import namespace="urn:oasis:names:tc:SAML:2.0:assertion" schemaLocation="saml-schema-assertion-2.0.xsd"/>\r
13         <import namespace="urn:oasis:names:tc:SAML:2.0:metadata" schemaLocation="saml-schema-metadata-2.0.xsd"/>\r
14 \r
15         <annotation>\r
16                 <documentation>\r
17         2.0 schema for XML-based configuration of Shibboleth SP instances.\r
18         First appearing in Shibboleth 2.0 release.\r
19         </documentation>\r
20     </annotation>\r
21 \r
22         <simpleType name="string">
23                 <restriction base="string">
24                         <minLength value="1"/>\r
25                 </restriction>
26         </simpleType>\r
27 \r
28         <simpleType name="listOfStrings">\r
29                 <list itemType="conf:string"/>\r
30         </simpleType>\r
31         \r
32         <complexType name="PluggableType">\r
33                 <sequence>\r
34                         <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
35                 </sequence>\r
36                 <attribute name="type" type="conf:string" use="required"/>\r
37                 <anyAttribute namespace="##any" processContents="lax"/>\r
38         </complexType>\r
39 \r
40         <element name="SPConfig">\r
41                 <complexType>
42                         <annotation>
43                                 <documentation>Root of configuration</documentation>
44                         </annotation>
45                         <sequence>
46                                 <element ref="conf:Extensions" minOccurs="0"/>
47                                 <element ref="conf:OutOfProcess"/>
48                                 <element ref="conf:InProcess"/>
49                                 <element ref="conf:Applications"/>
50                                 <element ref="conf:SecurityPolicies"/>
51                         </sequence>
52                         <attribute name="logger" type="anyURI"/>
53                         <attribute name="clockSkew" type="unsignedInt"/>
54                         <anyAttribute namespace="##other" processContents="lax"/>
55                 </complexType>\r
56         </element>\r
57 \r
58         <element name="Extensions">\r
59                 <annotation>\r
60                         <documentation>Container for extension libraries and custom configuration</documentation>\r
61                 </annotation>\r
62                 <complexType>\r
63                         <sequence>\r
64                                 <element name="Library" minOccurs="0" maxOccurs="unbounded">\r
65                                         <complexType>\r
66                                                 <complexContent>\r
67                                                         <restriction base="conf:PluggableType">\r
68                                                                 <sequence>\r
69                                                                         <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
70                                                                 </sequence>\r
71                                                                 <attribute name="path" type="anyURI" use="required"/>\r
72                                                                 <attribute name="fatal" type="boolean" default="true"/>\r
73                                                         </restriction>\r
74                                                 </complexContent>\r
75                                         </complexType>\r
76                                 </element>\r
77                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
78                         </sequence>\r
79                 </complexType>\r
80         </element>\r
81 \r
82         <element name="StorageService">\r
83                 <annotation>\r
84                         <documentation>References StorageService plugins</documentation>\r
85                 </annotation>\r
86                 <complexType>\r
87                         <complexContent>\r
88                                 <restriction base="conf:PluggableType">\r
89                                         <sequence>\r
90                                                 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
91                                         </sequence>\r
92                                         <attribute name="id" type="ID" use="required"/>\r
93                                         <attribute name="cleanupInterval" type="unsignedInt" default="900"/>\r
94                                         <anyAttribute namespace="##any" processContents="lax"/>\r
95                                 </restriction>\r
96                         </complexContent>\r
97                 </complexType>\r
98         </element>\r
99 \r
100         <element name="SessionCache">\r
101                 <annotation>\r
102                         <documentation>References SessionCache plugins</documentation>\r
103                 </annotation>\r
104                 <complexType>\r
105                         <complexContent>\r
106                                 <restriction base="conf:PluggableType">\r
107                                         <sequence>\r
108                                                 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
109                                         </sequence>\r
110                                         <attribute name="StorageService" type="IDREF"/>\r
111                                         <attribute name="cacheTimeout" type="unsignedInt" default="28800"/>\r
112                                         <anyAttribute namespace="##any" processContents="lax"/>\r
113                                 </restriction>\r
114                         </complexContent>\r
115                 </complexType>\r
116         </element>\r
117         \r
118         <element name="ReplayCache">
119                 <annotation>\r
120                         <documentation>Ties ReplayCache to a custom StorageService</documentation>\r
121                 </annotation>\r
122                 <complexType>\r
123                         <sequence/>
124                         <attribute name="StorageService" type="IDREF" use="required"/>\r
125                 </complexType>\r
126         </element>
127         \r
128         <element name="ArtifactMap">
129                 <annotation>\r
130                         <documentation>Customizes an ArtifactMap</documentation>\r
131                 </annotation>\r
132                 <complexType>\r
133                         <sequence/>
134                         <attribute name="StorageService" type="IDREF"/>
135                         <attribute name="context" type="conf:string"/>
136                         <attribute name="artifactTTL" type="unsignedInt" default="180"/>\r
137                 </complexType>
138         </element>\r
139         \r
140         <element name="OutOfProcess">\r
141                 <annotation>\r
142                         <documentation>Container for shibd out-of-process configuration</documentation>\r
143                 </annotation>\r
144                 <complexType>\r
145                         <sequence>
146                                 <element ref="conf:Extensions" minOccurs="0"/>
147                                 <choice>
148                                         <element name="UnixListener">
149                                                 <complexType>
150                                                         <attribute name="address" type="conf:string" use="required"/>
151                                                 </complexType>
152                                         </element>
153                                         <element name="TCPListener">
154                                                 <complexType>
155                                                         <attribute name="address" type="conf:string" use="required"/>
156                                                         <attribute name="port" type="unsignedInt" use="required"/>
157                                                         <attribute name="acl" type="conf:listOfStrings" default="127.0.0.1"/>
158                                                 </complexType>
159                                         </element>
160                                         <element name="Listener" type="conf:PluggableType"/>
161                                 </choice>
162                                 <element ref="conf:StorageService" minOccurs="0" maxOccurs="unbounded"/>
163                                 <element ref="conf:SessionCache" minOccurs="0"/>
164                                 <element ref="conf:ReplayCache" minOccurs="0"/>\r
165                                 <element ref="conf:ArtifactMap" minOccurs="0"/>
166                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
167                         </sequence>
168                         <attribute name="logger" type="anyURI"/>
169                         <anyAttribute namespace="##other" processContents="lax"/>\r
170                 </complexType>\r
171         </element>\r
172 \r
173         <element name="InProcess">\r
174                 <annotation>\r
175                         <documentation>\r
176                         Container for configuration of locally integrated or platform-specific\r
177                         features (e.g. web server filters)\r
178                         </documentation>\r
179                 </annotation>\r
180                 <complexType>\r
181                         <sequence>
182                                 <element ref="conf:Extensions" minOccurs="0"/>
183                                 <element ref="conf:SessionCache" minOccurs="0"/>\r
184                                 <element name="RequestMapper" type="conf:PluggableType"/>
185                                 <element name="Implementation" minOccurs="0">
186                                         <complexType>
187                                                 <sequence>
188                                                         <element ref="conf:ISAPI" minOccurs="0"/>
189                                                         <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
190                                                 </sequence>
191                                         </complexType>
192                                 </element>
193                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
194                         </sequence>
195                         <attribute name="logger" type="anyURI"/>
196                         <anyAttribute namespace="##other" processContents="lax"/>\r
197                 </complexType>\r
198         </element>\r
199         \r
200         <element name="ISAPI">\r
201                 <complexType>\r
202                         <sequence>\r
203                                 <element name="Site" maxOccurs="unbounded">\r
204                                         <complexType>\r
205                                                 <sequence>\r
206                                                         <element name="Alias" type="string" minOccurs="0" maxOccurs="unbounded"/>\r
207                                                 </sequence>\r
208                                                 <attribute name="id" type="unsignedInt" use="required"/>\r
209                                                 <attribute name="name" type="conf:string" use="required"/>\r
210                                                 <attribute name="port" type="unsignedInt"/>\r
211                                                 <attribute name="sslport" type="unsignedInt"/>\r
212                                                 <attribute name="scheme" type="conf:string"/>\r
213                                         </complexType>\r
214                                 </element>\r
215                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
216                         </sequence>\r
217                         <attribute name="normalizeRequest" type="boolean" default="true"/>\r
218                         <anyAttribute namespace="##other" processContents="lax"/>\r
219                 </complexType>\r
220         </element>\r
221 \r
222         <element name="AccessControl" type="conf:UniOperatorType">\r
223                 <annotation>\r
224                         <documentation>\r
225                         A simple example access policy language extension that supersedes Apache .htaccess\r
226                         </documentation>\r
227                 </annotation>\r
228         </element>\r
229         <element name="OR" type="conf:MultiOperatorType"/>\r
230         <element name="AND" type="conf:MultiOperatorType"/>\r
231         <element name="NOT" type="conf:UniOperatorType"/>\r
232         <complexType name="UniOperatorType">\r
233                 <choice>\r
234                         <element ref="conf:AND"/>\r
235                         <element ref="conf:OR"/>\r
236                         <element ref="conf:NOT"/>\r
237                         <element ref="conf:Rule"/>\r
238                 </choice>\r
239         </complexType>\r
240         <complexType name="MultiOperatorType">\r
241                 <choice minOccurs="2" maxOccurs="unbounded">\r
242                         <element ref="conf:AND"/>\r
243                         <element ref="conf:OR"/>\r
244                         <element ref="conf:NOT"/>\r
245                         <element ref="conf:Rule"/>\r
246                 </choice>\r
247         </complexType>\r
248         <element name="Rule">\r
249                 <complexType>\r
250                         <simpleContent>\r
251                                 <extension base="conf:listOfStrings">\r
252                                         <attribute name="require" type="conf:string" use="required"/>\r
253                                 </extension>\r
254                         </simpleContent>\r
255                 </complexType>\r
256         </element>\r
257         \r
258         <attributeGroup name="ContentSettings">\r
259                 <attribute name="authType" type="conf:string"/>\r
260                 <attribute name="requireSession" type="boolean"/>\r
261                 <attribute name="requireSessionWith" type="conf:string"/>\r
262                 <attribute name="exportAssertion" type="boolean"/>\r
263                 <attribute name="redirectToSSL" type="unsignedInt"/>\r
264                 <attribute name="isPassive" type="boolean"/>\r
265                 <attribute name="forceAuthn" type="boolean"/>\r
266                 <attribute name="authnContextClassRef" type="anyURI"/>\r
267                 <attribute name="authnContextDeclRef" type="anyURI"/>\r
268                 <attribute name="authnContextComparison" type="conf:string"/>\r
269                 <anyAttribute namespace="##other" processContents="lax"/>\r
270         </attributeGroup>\r
271         <element name="AccessControlProvider" type="conf:PluggableType"/>\r
272         <element name="htaccess" type="conf:PluggableType"/>\r
273 \r
274     <element name="RequestMap">\r
275                 <annotation>\r
276                         <documentation>\r
277                         Built-in request mapping syntax, decomposes URLs into Host/Path/Path/...\r
278                         </documentation>\r
279                 </annotation>\r
280         <complexType>\r
281             <sequence>\r
282                 <choice minOccurs="0">\r
283                         <element ref="conf:htaccess"/>\r
284                                         <element ref="conf:AccessControl"/>\r
285                         <element ref="conf:AccessControlProvider"/>\r
286                     </choice>\r
287                 <element ref="conf:Host" minOccurs="0" maxOccurs="unbounded"/>\r
288             </sequence>\r
289             <attribute name="applicationId" type="conf:string" fixed="default"/>\r
290                 <attributeGroup ref="conf:ContentSettings"/>\r
291         </complexType>\r
292     </element>\r
293 \r
294     <element name="Host">\r
295         <complexType>\r
296                 <sequence>\r
297                 <choice minOccurs="0">\r
298                         <element ref="conf:htaccess"/>\r
299                                         <element ref="conf:AccessControl"/>\r
300                         <element ref="conf:AccessControlProvider"/>\r
301                     </choice>\r
302                         <element ref="conf:Path" minOccurs="0" maxOccurs="unbounded"/>\r
303                 </sequence>\r
304                 <attribute name="scheme">\r
305                             <simpleType>\r
306                                 <restriction base="conf:string">\r
307                                     <enumeration value="http"/>\r
308                                     <enumeration value="https"/>\r
309                                     <enumeration value="ftp"/>\r
310                                     <enumeration value="ldap"/>\r
311                                     <enumeration value="ldaps"/>\r
312                                 </restriction>\r
313                             </simpleType>\r
314                 </attribute>\r
315                 <attribute name="name" type="conf:string" use="required"/>\r
316                 <attribute name="port" type="unsignedInt"/>\r
317                 <attribute name="applicationId" type="conf:string"/>\r
318                 <attributeGroup ref="conf:ContentSettings"/>\r
319         </complexType>\r
320     </element>\r
321 \r
322     <element name="Path">\r
323         <complexType>\r
324                 <sequence>\r
325                 <choice minOccurs="0">\r
326                         <element ref="conf:htaccess"/>\r
327                                         <element ref="conf:AccessControl"/>\r
328                         <element ref="conf:AccessControlProvider"/>\r
329                     </choice>\r
330                         <element ref="conf:Path" minOccurs="0" maxOccurs="unbounded"/>\r
331                 </sequence>\r
332                 <attribute name="name" type="conf:string" use="required"/>\r
333                 <attribute name="applicationId" type="conf:string"/>\r
334                 <attributeGroup ref="conf:ContentSettings"/>\r
335         </complexType>\r
336     </element>\r
337 \r
338         <element name="Applications">\r
339                 <annotation>\r
340                         <documentation>Container for global settings and application-specific overrides</documentation>\r
341                 </annotation>\r
342                 <complexType>\r
343                         <sequence>\r
344                                 <element ref="conf:Sessions"/>\r
345                                 <element ref="conf:Errors"/>\r
346                                 <element ref="conf:DefaultRelyingParty"/>\r
347                                 <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
348                 <element name="MetadataProvider" type="conf:PluggableType"/>
349                                 <element name="TrustEngine" type="conf:PluggableType"/>\r
350                                 <element name="AttributeResolver" type="conf:PluggableType"/>\r
351                                 <element name="CredentialResolver" type="conf:PluggableType" minOccurs="0"/>\r
352                                 <element ref="conf:Application" minOccurs="0" maxOccurs="unbounded"/>\r
353                         </sequence>\r
354                         <attribute name="id" type="conf:string" fixed="default"/>\r
355                         <attribute name="entityID" type="anyURI" use="required"/>\r
356                         <attribute name="policyId" type="conf:string" use="required"/>\r
357                         <attribute name="homeURL" type="anyURI" default="/"/>\r
358                         <attribute name="attributeIds" type="conf:listOfStrings"/>\r
359                 <anyAttribute namespace="##other" processContents="lax"/>\r
360                 </complexType>\r
361         </element>\r
362         \r
363         <element name="Application">\r
364                 <annotation>\r
365                         <documentation>Container for application-specific overrides</documentation>\r
366                 </annotation>\r
367                 <complexType>\r
368                         <sequence>\r
369                                 <element ref="conf:Sessions" minOccurs="0"/>\r
370                                 <element ref="conf:Errors" minOccurs="0"/>\r
371                                 <element ref="conf:DefaultRelyingParty" minOccurs="0"/>\r
372                                 <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>\r
373                                 <element name="MetadataProvider" type="conf:PluggableType" minOccurs="0"/>\r
374                                 <element name="TrustEngine" type="conf:PluggableType" minOccurs="0"/>\r
375                                 <element name="AttributeResolver" type="conf:PluggableType" minOccurs="0"/>\r
376                                 <element name="CredentialResolver" type="conf:PluggableType" minOccurs="0"/>\r
377                         </sequence>\r
378                         <attribute name="id" type="conf:string" use="required"/>\r
379                         <attribute name="entityID" type="anyURI"/>\r
380                         <attribute name="policyId" type="conf:string"/>\r
381                         <attribute name="homeURL" type="anyURI" default="/"/>\r
382                         <attribute name="attributeIds" type="conf:listOfStrings"/>\r
383                         <anyAttribute namespace="##other" processContents="lax"/>\r
384                 </complexType>\r
385         </element>\r
386 \r
387         <element name="Sessions">\r
388                 <annotation>\r
389                         <documentation>Container for specifying protocol handlers and session policy</documentation>\r
390                 </annotation>\r
391                 <complexType>\r
392                         <choice maxOccurs="unbounded">\r
393                                 <element ref="conf:SessionInitiator"/>\r
394                                 <element ref="md:AssertionConsumerService"/>\r
395                                 <element ref="md:SingleLogoutService"/>\r
396                                 <element ref="md:ManageNameIDService"/>\r
397                                 <element name="Handler">
398                                         <complexType>\r
399                                                 <complexContent>\r
400                                                         <restriction base="conf:PluggableType">\r
401                                                                 <sequence>\r
402                                                                         <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
403                                                                 </sequence>\r
404                                                                 <attribute name="Location" type="anyURI" use="required"/>\r
405                                                         </restriction>\r
406                                                 </complexContent>\r
407                                         </complexType>\r
408                                 </element>\r
409                         </choice>\r
410                         <attribute name="handlerURL" type="anyURI"/>\r
411                         <attribute name="handlerSSL" type="boolean" default="true"/>\r
412                         <attribute name="redirectErrors" type="anyURI"/>\r
413                         <attribute name="cookieName" type="conf:string"/>\r
414                         <attribute name="cookieProps" type="conf:string"/>\r
415                         <attribute name="idpHistory" type="boolean" default="true"/>\r
416                         <attribute name="idpHistoryDays" type="unsignedInt"/>\r
417                         <attribute name="lifetime" type="unsignedInt" default="28800"/>\r
418                         <attribute name="timeout" type="unsignedInt" default="3600"/>\r
419                         <attribute name="checkAddress" type="boolean" default="true"/>\r
420                         <attribute name="consistentAddress" type="boolean" default="true"/>\r
421                         <anyAttribute namespace="##other" processContents="lax"/>\r
422                 </complexType>\r
423         </element>\r
424         \r
425         <attribute name="policyId" type="conf:string">
426                 <annotation>
427                         <documentation>Used to reference Policy elements from profile endpoints.</documentation>
428                 </annotation>
429         </attribute>\r
430 \r
431         <element name="SessionInitiator">\r
432                 <annotation>\r
433                         <documentation>Used to specify handlers that can issue AuthnRequests or perform discovery</documentation>\r
434                 </annotation>\r
435                 <complexType>\r
436                         <complexContent>\r
437                                 <restriction base="conf:PluggableType">\r
438                                         <sequence>\r
439                                                 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
440                                         </sequence>\r
441                                         <attribute name="Location" type="anyURI"/>\r
442                                         <attribute name="id" type="conf:string"/>\r
443                                         <attribute name="isDefault" type="boolean"/>\r
444                                         <attribute name="relayState" type="conf:string"/>\r
445                                         <attribute name="entityIDParam" type="conf:string"/>\r
446                                         <attribute name="entityID" type="anyURI"/>\r
447                                         <attribute name="URL" type="anyURI"/>\r
448                                         <anyAttribute namespace="##any" processContents="lax"/>\r
449                                 </restriction>\r
450                         </complexContent>\r
451                 </complexType>\r
452         </element>\r
453         \r
454         <element name="Errors">\r
455                 <annotation>\r
456                         <documentation>Container for error templates and associated details</documentation>\r
457                 </annotation>\r
458                 <complexType>\r
459                         <sequence>\r
460                                 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
461                         </sequence>\r
462                         <attribute name="session" type="anyURI" use="required"/>\r
463                         <attribute name="metadata" type="anyURI"/>\r
464                         <attribute name="rm" type="anyURI"/>\r
465                         <attribute name="access" type="anyURI"/>\r
466                         <attribute name="ssl" type="anyURI"/>\r
467                         <attribute name="supportContact" type="conf:string"/>\r
468                         <attribute name="logoLocation" type="anyURI"/>\r
469                         <attribute name="styleSheet" type="anyURI"/>\r
470                         <anyAttribute namespace="##any" processContents="lax"/>\r
471                 </complexType>\r
472         </element>\r
473 \r
474         <element name="DefaultRelyingParty">\r
475                 <annotation>\r
476                         <documentation>Container for specifying security methods to use with particular peers</documentation>\r
477                 </annotation>\r
478                 <complexType>\r
479                         <sequence>\r
480                                 <element name="RelyingParty" minOccurs="0" maxOccurs="unbounded">\r
481                                         <complexType>\r
482                                                 <sequence/>\r
483                                                 <attribute name="Name" type="conf:string" use="required"/>\r
484                                                 <attributeGroup ref="conf:RelyingPartyGroup"/>\r
485                                                 <anyAttribute namespace="##other" processContents="lax"/>\r
486                                         </complexType>\r
487                                 </element>\r
488                         </sequence>\r
489                         <attributeGroup ref="conf:RelyingPartyGroup"/>\r
490                 <anyAttribute namespace="##other" processContents="lax"/>\r
491                 </complexType>\r
492         </element>\r
493         \r
494         <attributeGroup name="RelyingPartyGroup">\r
495                 <attribute name="authType" type="conf:string" default="TLS"/>\r
496                 <attribute name="authUsername" type="conf:string"/>\r
497                 <attribute name="authPassword" type="conf:string"/>\r
498                 <attribute name="signRequests" type="boolean" default="false"/>
499                 <attribute name="signatureAlg" type="anyURI"/>\r
500                 <attribute name="encryptRequests" type="boolean" default="true"/>\r
501         </attributeGroup>\r
502         \r
503         <element name="SecurityPolicies">
504                 <annotation>\r
505                         <documentation>Container for specifying sets of policy rules to apply to incoming messages</documentation>\r
506                 </annotation>\r
507                 <complexType>\r
508                         <sequence>\r
509                                 <element name="Policy" minOccurs="1" maxOccurs="unbounded">\r
510                                         <annotation>\r
511                                                 <documentation>Specifies a set of SecurityPolicyRule plugins</documentation>\r
512                                         </annotation>\r
513                                         <complexType>\r
514                                                 <sequence>
515                                                         <element name="Rule" type="conf:PluggableType" minOccurs="1" maxOccurs="unbounded"/>
516                                                 </sequence>
517                                                 <attribute name="id" type="conf:string" use="required"/>\r
518                                                 <attribute name="validate" type="boolean" default="false"/>\r
519                                                 <attribute name="signedAssertions" type="boolean" default="false"/>\r
520                                                 <attribute name="requireConfidentiality" type="boolean" default="true"/>\r
521                                                 <attribute name="requireTransportAuth" type="boolean" default="true"/>\r
522                                                 <attribute name="chunkedEncoding" type="boolean" default="true"/>\r
523                                                 <attribute name="connectTimeout" type="unsignedShort" default="15"/>\r
524                                                 <attribute name="timeout" type="unsignedShort" default="30"/>\r
525                                                 <anyAttribute namespace="##any" processContents="lax"/>\r
526                                         </complexType>\r
527                                 </element>\r
528                         </sequence>\r
529                 </complexType>\r
530         </element>\r
531         \r
532 </schema>\r