Make connection string optional.
[shibboleth/sp.git] / schemas / shibboleth-targetconfig-1.0.xsd
1 <?xml version="1.0" encoding="US-ASCII"?>
2 <schema targetNamespace="urn:mace:shibboleth:target:config:1.0"
3         xmlns="http://www.w3.org/2001/XMLSchema"
4         xmlns:conf="urn:mace:shibboleth:target:config:1.0"
5         xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
6         xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
7         elementFormDefault="qualified"
8         attributeFormDefault="unqualified"
9         blockDefault="substitution"
10         version="1.1">
11
12         <import namespace="urn:oasis:names:tc:SAML:1.0:assertion" schemaLocation="cs-sstc-schema-assertion-1.1.xsd"/>
13         <import namespace="urn:oasis:names:tc:SAML:2.0:metadata" schemaLocation="saml-schema-metadata-2.0.xsd"/>
14
15         <annotation>
16                 <documentation>
17         1.0 schema for XML-based configuration of Shibboleth target libraries and modules.
18         First appearing in Shibboleth 1.2 release.
19         </documentation>
20     </annotation>
21
22         <complexType name="PluggableType">
23                 <sequence>
24                         <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
25                 </sequence>
26                 <attribute name="type" type="string" use="required"/>
27                 <attribute name="uri" type="anyURI" use="optional"/>
28                 <anyAttribute namespace="##any" processContents="lax"/>
29         </complexType>
30
31         <element name="ShibbolethTargetConfig" type="conf:SPConfigType"/>
32         <element name="SPConfig" type="conf:SPConfigType"/>
33         <complexType name="SPConfigType">
34                 <annotation>
35                         <documentation>Root element of configuration file</documentation>
36                 </annotation>
37                 <sequence>
38                         <element ref="conf:Extensions" minOccurs="0"/>
39                         <choice minOccurs="0">
40                                 <element name="OutOfProcess" type="conf:OutOfProcessType"/>
41                                 <element name="Global" type="conf:OutOfProcessType"/>
42                                 <element name="SHAR" type="conf:OutOfProcessType"/>
43                         </choice>
44                         <choice minOccurs="0">
45                                 <element name="InProcess" type="conf:InProcessType"/>
46                                 <element name="Local" type="conf:InProcessType"/>
47                                 <element name="SHIRE" type="conf:InProcessType"/>
48                         </choice>
49                         <element ref="conf:Applications"/>
50                         <element name="CredentialsProvider" type="conf:PluggableType" minOccurs="0" maxOccurs="unbounded"/>
51                         <element ref="conf:AttributeFactory" minOccurs="0" maxOccurs="unbounded"/>
52                 </sequence>
53                 <attribute name="logger" type="anyURI" use="optional"/>
54                 <attribute name="clockSkew" type="unsignedInt" use="optional"/>
55                 <anyAttribute namespace="##other" processContents="lax"/>
56         </complexType>
57
58         <element name="Extensions">
59                 <annotation>
60                         <documentation>Container for extension libraries and custom configuration</documentation>
61                 </annotation>
62                 <complexType>
63                         <sequence>
64                                 <element name="Library" minOccurs="0" maxOccurs="unbounded">
65                                         <complexType>
66                                                 <sequence>
67                                                         <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
68                                                 </sequence>
69                                                 <attribute name="path" type="anyURI" use="required"/>
70                                                 <attribute name="fatal" type="boolean" use="optional"/>
71                                                 <anyAttribute namespace="##other" processContents="lax"/>
72                                         </complexType>
73                                 </element>
74                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
75                         </sequence>
76                 </complexType>
77         </element>
78
79         <attributeGroup name="SessionCacheProperties">
80                 <attribute name="cleanupInterval" type="unsignedInt" use="optional" default="300"/>
81                 <attribute name="cacheTimeout" type="unsignedInt" use="optional" default="28800"/>
82                 <attribute name="AAConnectTimeout" type="unsignedInt" use="optional" default="15"/>
83                 <attribute name="AATimeout" type="unsignedInt" use="optional" default="30"/>
84                 <attribute name="defaultLifetime" type="unsignedInt" use="optional" default="1800"/>
85                 <attribute name="retryInterval" type="unsignedInt" use="optional" default="300"/>
86                 <attribute name="strictValidity" type="boolean" use="optional" default="true"/>
87                 <attribute name="propagateErrors" type="boolean" use="optional" default="false"/>
88                 <attribute name="writeThrough" type="boolean" use="optional" default="false"/>
89         </attributeGroup>
90         
91         <element name="MemorySessionCache">
92                 <complexType>
93                         <attributeGroup ref="conf:SessionCacheProperties"/>
94                         <anyAttribute namespace="##other" processContents="lax"/>
95                 </complexType>
96         </element>
97         <element name="ODBCSessionCache">
98                 <complexType>
99                         <sequence>
100                                 <element name="ConnectionString" type="string" minOccurs="0"/>
101                         </sequence>
102                         <attributeGroup ref="conf:SessionCacheProperties"/>
103                         <attribute name="odbcTimeout" type="unsignedInt" use="optional" default="14400"/>
104                         <attribute name="storeAttributes" type="boolean" use="optional" default="false"/>
105                         <anyAttribute namespace="##other" processContents="lax"/>
106                 </complexType>
107         </element>
108         <element name="MySQLSessionCache">
109                 <complexType>
110                         <sequence>
111                                 <element name="Argument" type="string" minOccurs="0" maxOccurs="unbounded"/>
112                         </sequence>
113                         <attributeGroup ref="conf:SessionCacheProperties"/>
114                         <attribute name="mysqlTimeout" type="unsignedInt" use="optional" default="14400"/>
115                         <attribute name="storeAttributes" type="boolean" use="optional" default="false"/>
116                         <anyAttribute namespace="##other" processContents="lax"/>
117                 </complexType>
118         </element>
119         <element name="SessionCache">
120                 <complexType>
121                         <complexContent>
122                                 <extension base="conf:PluggableType">
123                                         <attributeGroup ref="conf:SessionCacheProperties"/>
124                                 </extension>
125                         </complexContent>
126                 </complexType>
127         </element>
128         
129         <complexType name="OutOfProcessType">
130                 <annotation>
131                         <documentation>Container for global (server independent) configuration</documentation>
132                 </annotation>
133                 <sequence>
134                         <element ref="conf:Extensions" minOccurs="0"/>
135                         <choice>
136                                 <element name="UnixListener">
137                                         <complexType>
138                                                 <attribute name="address" type="string" use="required"/>
139                                         </complexType>
140                                 </element>
141                                 <element name="TCPListener">
142                                         <complexType>
143                                                 <attribute name="address" type="string" use="required"/>
144                                                 <attribute name="port" type="unsignedInt" use="required"/>
145                                                 <attribute name="acl" use="optional" default="127.0.0.1">
146                                                         <simpleType>
147                                                                 <list itemType="string"/>
148                                                         </simpleType>
149                                                 </attribute>
150                                         </complexType>
151                                 </element>
152                                 <element name="MemoryListener" type="conf:PluggableType"/>
153                                 <element name="Listener" type="conf:PluggableType"/>
154                         </choice>
155                         <choice>
156                                 <element ref="conf:MemorySessionCache"/>
157                                 <element ref="conf:ODBCSessionCache"/>
158                                 <element ref="conf:MySQLSessionCache"/>
159                                 <element ref="conf:SessionCache"/>
160                         </choice>
161                         <choice minOccurs="0">
162                                 <element name="ODBCReplayCache">
163                                         <complexType>
164                                                 <sequence>
165                                                         <element name="ConnectionString" type="string" minOccurs="0"/>
166                                                 </sequence>
167                                                 <anyAttribute namespace="##other" processContents="lax"/>
168                                         </complexType>
169                                 </element>
170                                 <element name="MySQLReplayCache">
171                                         <complexType>
172                                                 <sequence>
173                                                         <element name="Argument" type="string" minOccurs="0" maxOccurs="unbounded"/>
174                                                 </sequence>
175                                                 <anyAttribute namespace="##other" processContents="lax"/>
176                                         </complexType>
177                                 </element>
178                                 <element name="ReplayCache" type="conf:PluggableType"/>
179                         </choice>
180                         <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
181                 </sequence>
182                 <attribute name="logger" type="anyURI" use="optional"/>
183                 <anyAttribute namespace="##other" processContents="lax"/>
184         </complexType>
185
186         <complexType name="InProcessType">
187                 <annotation>
188                         <documentation>
189                         Container for configuration of locally integrated or platform-specific
190                         features (e.g. web server filters)
191                         </documentation>
192                 </annotation>
193                 <sequence>
194                         <element ref="conf:Extensions" minOccurs="0"/>
195                         <choice minOccurs="0">
196                                 <element ref="conf:MemorySessionCache"/>
197                                 <element ref="conf:SessionCache"/>
198                         </choice>
199                         <element name="RequestMapProvider" type="conf:PluggableType" minOccurs="0"/>
200                         <element name="Implementation" minOccurs="0">
201                                 <complexType>
202                                         <choice maxOccurs="unbounded">
203                                                 <element ref="conf:ISAPI"/>
204                                                 <any namespace="##other" processContents="lax"/>
205                                         </choice>
206                                 </complexType>
207                         </element>
208                         <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
209                 </sequence>
210                 <attribute name="logger" type="anyURI" use="optional"/>
211                 <attribute name="localRelayState" type="boolean" use="optional" default="false"/>
212                 <anyAttribute namespace="##other" processContents="lax"/>
213         </complexType>
214         
215         <element name="ISAPI">
216                 <complexType>
217                         <sequence>
218                                 <element name="Site" maxOccurs="unbounded">
219                                         <complexType>
220                                                 <sequence>
221                                                         <element name="Alias" type="string" minOccurs="0" maxOccurs="unbounded"/>
222                                                 </sequence>
223                                                 <attribute name="id" type="unsignedInt" use="required"/>
224                                                 <attribute name="name" type="string" use="required"/>
225                                                 <attribute name="port" type="unsignedInt" use="optional"/>
226                                                 <attribute name="sslport" type="unsignedInt" use="optional"/>
227                                                 <attribute name="scheme" type="string" use="optional"/>
228                                         </complexType>
229                                 </element>
230                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
231                         </sequence>
232                         <attribute name="normalizeRequest" type="boolean" use="optional"/>
233                         <anyAttribute namespace="##other" processContents="lax"/>
234                 </complexType>
235         </element>
236         <element name="NSAPI" type="anyType"/>
237         <element name="Java" type="anyType"/>
238
239         <element name="AccessControl" type="conf:UniOperatorType">
240                 <annotation>
241                         <documentation>
242                         A simple example access policy language extension that supersedes Apache .htaccess
243                         </documentation>
244                 </annotation>
245         </element>
246         <element name="OR" type="conf:MultiOperatorType"/>
247         <element name="AND" type="conf:MultiOperatorType"/>
248         <element name="NOT" type="conf:UniOperatorType"/>
249         <complexType name="UniOperatorType">
250                 <choice>
251                         <element ref="conf:AND"/>
252                         <element ref="conf:OR"/>
253                         <element ref="conf:NOT"/>
254                         <element ref="conf:Rule"/>
255                 </choice>
256         </complexType>
257         <complexType name="MultiOperatorType">
258                 <choice minOccurs="2" maxOccurs="unbounded">
259                         <element ref="conf:AND"/>
260                         <element ref="conf:OR"/>
261                         <element ref="conf:NOT"/>
262                         <element ref="conf:Rule"/>
263                 </choice>
264         </complexType>
265         <element name="Rule">
266                 <complexType>
267                         <simpleContent>
268                                 <extension base="conf:listOfStrings">
269                                         <attribute name="require" type="string" use="required"/>
270                                 </extension>
271                         </simpleContent>
272                 </complexType>
273         </element>
274         <simpleType name="listOfStrings">
275                 <list itemType="string"/>
276         </simpleType>
277         
278         <attributeGroup name="ContentSettings">
279                 <attribute name="authType" type="string" use="optional"/>
280                 <attribute name="requireSession" type="boolean" use="optional"/>
281                 <attribute name="requireSessionWith" type="string" use="optional"/>
282                 <attribute name="exportAssertion" type="boolean" use="optional"/>
283                 <anyAttribute namespace="##other" processContents="lax"/>
284         </attributeGroup>
285         <element name="AccessControlProvider" type="conf:PluggableType"/>
286         <element name="htaccess" type="conf:PluggableType"/>
287
288     <element name="RequestMap">
289                 <annotation>
290                         <documentation>
291                         Built-in request mapping syntax, decomposes URLs into Host/Path/Path/...
292                         </documentation>
293                 </annotation>
294         <complexType>
295             <sequence>
296                 <choice minOccurs="0">
297                         <element ref="conf:htaccess"/>
298                                         <element ref="conf:AccessControl"/>
299                         <element ref="conf:AccessControlProvider"/>
300                     </choice>
301                 <element ref="conf:Host" minOccurs="0" maxOccurs="unbounded"/>
302             </sequence>
303             <attribute name="applicationId" type="string" fixed="default"/>
304                 <attributeGroup ref="conf:ContentSettings"/>
305         </complexType>
306     </element>
307
308     <element name="Host">
309         <complexType>
310                 <sequence>
311                 <choice minOccurs="0">
312                         <element ref="conf:htaccess"/>
313                                         <element ref="conf:AccessControl"/>
314                         <element ref="conf:AccessControlProvider"/>
315                     </choice>
316                         <element ref="conf:Path" minOccurs="0" maxOccurs="unbounded"/>
317                 </sequence>
318                 <attribute name="scheme" use="optional">
319                             <simpleType>
320                                 <restriction base="string">
321                                     <enumeration value="http"/>
322                                     <enumeration value="https"/>
323                                     <enumeration value="ftp"/>
324                                     <enumeration value="ldap"/>
325                                     <enumeration value="ldaps"/>
326                                 </restriction>
327                             </simpleType>
328                 </attribute>
329                 <attribute name="name" type="string" use="required"/>
330                 <attribute name="port" type="unsignedInt" use="optional"/>
331                 <attribute name="applicationId" type="string" use="optional"/>
332                 <attributeGroup ref="conf:ContentSettings"/>
333         </complexType>
334     </element>
335
336     <element name="Path">
337         <complexType>
338                 <sequence>
339                 <choice minOccurs="0">
340                         <element ref="conf:htaccess"/>
341                                         <element ref="conf:AccessControl"/>
342                         <element ref="conf:AccessControlProvider"/>
343                     </choice>
344                         <element ref="conf:Path" minOccurs="0" maxOccurs="unbounded"/>
345                 </sequence>
346                 <attribute name="name" type="string" use="required"/>
347                 <attribute name="applicationId" type="string" use="optional"/>
348                 <attributeGroup ref="conf:ContentSettings"/>
349         </complexType>
350     </element>
351
352         <element name="Applications">
353                 <annotation>
354                         <documentation>Container for global target settings and application-specific overrides</documentation>
355                 </annotation>
356                 <complexType>
357                         <sequence>
358                                 <element ref="conf:Sessions"/>
359                                 <element ref="conf:Errors"/>
360                                 <element ref="conf:CredentialUse" minOccurs="0"/>
361                                 <choice minOccurs="0" maxOccurs="unbounded">
362                     <element ref="saml:AttributeDesignator"/>
363                     <element ref="saml:Audience"/>
364                     <element name="AAPProvider" type="conf:PluggableType"/>
365                     <!-- deprecated --> <element name="FederationProvider" type="conf:PluggableType"/>
366                     <element name="MetadataProvider" type="conf:PluggableType"/>
367                     <element name="TrustProvider" type="conf:PluggableType"/>
368                                 </choice>
369                                 <element ref="conf:Application" minOccurs="0" maxOccurs="unbounded"/>
370                         </sequence>
371                         <attribute name="id" type="string" fixed="default"/>
372                         <attribute name="providerId" type="anyURI" use="required"/>
373                         <attribute name="homeURL" type="anyURI" use="optional"/>
374                 <anyAttribute namespace="##other" processContents="lax"/>
375                 </complexType>
376         </element>
377         
378         <element name="Application">
379                 <annotation>
380                         <documentation>Container for application-specific overrides</documentation>
381                 </annotation>
382                 <complexType>
383                         <sequence>
384                                 <element ref="conf:Sessions" minOccurs="0"/>
385                                 <element ref="conf:Errors" minOccurs="0"/>
386                                 <element ref="conf:CredentialUse" minOccurs="0"/>
387                                 <choice minOccurs="0" maxOccurs="unbounded">
388                     <element ref="saml:AttributeDesignator"/>
389                     <element ref="saml:Audience"/>
390                     <element name="AAPProvider" type="conf:PluggableType"/>
391                     <!-- deprecated --> <element name="FederationProvider" type="conf:PluggableType"/>
392                     <element name="MetadataProvider" type="conf:PluggableType"/>
393                     <element name="TrustProvider" type="conf:PluggableType"/>
394                                 </choice>
395                         </sequence>
396                         <attribute name="id" type="string" use="required"/>
397                         <attribute name="providerId" type="anyURI" use="optional"/>
398                         <attribute name="homeURL" type="anyURI" use="optional"/>
399                 <anyAttribute namespace="##other" processContents="lax"/>
400                 </complexType>
401         </element>
402
403         <element name="KeyInfoResolver" type="conf:PluggableType">
404                 <annotation>
405                         <documentation>
406                         Custom plug-in that resolves ds:KeyInfo elements into public keys, used in
407                         TrustProvider elements.
408                         </documentation>
409                 </annotation>
410         </element>
411
412         <element name="Sessions">
413                 <annotation>
414                         <documentation>Container for specifying app session establishment and policy</documentation>
415                 </annotation>
416                 <complexType>
417                         <choice minOccurs="0" maxOccurs="unbounded">
418                                 <element ref="conf:SessionInitiator"/>
419                                 <element ref="md:AssertionConsumerService"/>
420                                 <element ref="md:SingleLogoutService"/>
421                                 <element ref="conf:DiagnosticService"/>
422                                 <element name="ExtensionService" type="conf:PluggableType"/>
423                         </choice>
424                         <!-- deprecated --> <attribute name="wayfURL" type="anyURI" use="optional"/>
425                         <!-- deprecated --> <attribute name="shireURL" type="anyURI" use="optional"/>
426                         <!-- deprecated --> <attribute name="shireSSL" type="boolean" use="optional"/>
427                         <attribute name="handlerURL" type="anyURI" use="optional"/>
428                         <attribute name="handlerSSL" type="boolean" use="optional" default="true"/>
429                         <attribute name="cookieName" type="string" use="optional"/>
430                         <attribute name="cookieProps" type="string" use="optional"/>
431                         <attribute name="idpHistory" type="boolean" use="optional" default="true"/>
432                         <attribute name="idpHistoryDays" type="unsignedInt" use="optional"/>
433                         <attribute name="lifetime" type="unsignedInt" use="optional"/>
434                         <attribute name="timeout" type="unsignedInt" use="optional"/>
435                         <attribute name="checkAddress" type="boolean" use="optional"/>
436                         <attribute name="consistentAddress" type="boolean" use="optional" default="true"/>
437                         <attribute name="checkReplay" type="boolean" use="optional" default="true"/>
438                         <anyAttribute namespace="##other" processContents="lax"/>
439                 </complexType>
440         </element>
441         <element name="SessionInitiator">
442                 <annotation>
443                         <documentation>Used to specify WAYF/Discovery services (external or internal)</documentation>
444                 </annotation>
445                 <complexType>
446                         <sequence>
447                                 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
448                         </sequence>
449                         <attribute name="Location" type="anyURI" use="required"/>
450                         <attribute name="Binding" type="anyURI" use="required"/>
451                         <attribute name="wayfURL" type="anyURI" use="optional"/>
452                         <attribute name="wayfBinding" type="anyURI" use="optional"/>
453                         <attribute name="checkCDC" type="anyURI" use="optional"/>
454                         <attribute name="isDefault" type="boolean" use="optional"/>
455                         <attribute name="id" type="string" use="optional"/>
456                         <anyAttribute namespace="##any" processContents="lax"/>
457                 </complexType>
458         </element>
459         <element name="DiagnosticService">
460                 <annotation>
461                         <documentation>Used to specify internal diagnostic capabilities</documentation>
462                 </annotation>
463                 <complexType>
464                         <sequence>
465                                 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
466                         </sequence>
467                         <attribute name="Location" type="anyURI" use="required"/>
468                         <attribute name="Binding" type="anyURI" use="required"/>
469                         <attribute name="echo" type="boolean" use="optional"/>
470                         <attribute name="log" type="boolean" use="optional"/>
471                         <attribute name="config" type="boolean" use="optional"/>
472                         <attribute name="acl" use="optional">
473                                 <simpleType>
474                                         <list itemType="string"/>
475                                 </simpleType>
476                         </attribute>
477                         <anyAttribute namespace="##any" processContents="lax"/>
478                 </complexType>
479         </element>
480
481         <element name="Errors">
482                 <annotation>
483                         <documentation>Container for error templates and associated details</documentation>
484                 </annotation>
485                 <complexType>
486                         <sequence>
487                                 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
488                         </sequence>
489                         <!-- deprecated --> <attribute name="shire" type="anyURI" use="optional"/>
490                         <attribute name="session" type="anyURI" use="optional"/>
491                         <attribute name="metadata" type="anyURI" use="optional"/>
492                         <attribute name="rm" type="anyURI" use="required"/>
493                         <attribute name="access" type="anyURI" use="optional"/>
494                         <attribute name="supportContact" type="string" use="optional"/>
495                         <attribute name="logoLocation" type="anyURI" use="optional"/>
496                         <attribute name="styleSheet" type="anyURI" use="optional"/>
497                         <anyAttribute namespace="##any" processContents="lax"/>
498                 </complexType>
499         </element>
500
501         <attributeGroup name="CredentialUseGroup">
502                 <attribute name="TLS" type="string" use="optional"/>
503                 <attribute name="Signing" type="string" use="optional"/>
504                 <attribute name="signRequest" type="boolean" use="optional" default="false"/>
505                 <attribute name="signatureAlg" type="anyURI" use="optional"/>
506                 <attribute name="digestAlg" type="anyURI" use="optional"/>
507                 <attribute name="signedResponse" type="boolean" use="optional" default="false"/>
508                 <attribute name="signedAssertions" type="boolean" use="optional" default="false"/>
509                 <attribute name="authType" use="optional">
510                         <simpleType>
511                                 <restriction base="string">
512                                         <enumeration value="basic"/>
513                                         <enumeration value="digest"/>
514                                         <enumeration value="ntlm"/>
515                                         <enumeration value="gss"/>
516                                 </restriction>
517                         </simpleType>
518                 </attribute>
519                 <attribute name="authUsername" use="optional"/>
520                 <attribute name="authPassword" use="optional"/>
521         </attributeGroup>
522
523         <element name="CredentialUse">
524                 <annotation>
525                         <documentation>Container for specifying credentials to use</documentation>
526                 </annotation>
527                 <complexType>
528                         <sequence>
529                                 <element name="RelyingParty" minOccurs="0" maxOccurs="unbounded">
530                                         <complexType>
531                                                 <sequence>
532                                                         <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
533                                                 </sequence>
534                                                 <attribute name="Name" type="string" use="required"/>
535                                                 <attributeGroup ref="conf:CredentialUseGroup"/>
536                                                 <anyAttribute namespace="##other" processContents="lax"/>
537                                         </complexType>
538                                 </element>
539                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
540                         </sequence>
541                         <attributeGroup ref="conf:CredentialUseGroup"/>
542                 <anyAttribute namespace="##other" processContents="lax"/>
543                 </complexType>
544         </element>
545         
546         <element name="AttributeFactory">
547                 <annotation>
548                         <documentation>Specifies a plugin that implements a specialized SAML attribute</documentation>
549                 </annotation>
550                 <complexType>
551                         <sequence>
552                                 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
553                         </sequence>
554                         <attribute name="type" type="string" use="required"/>
555                         <attribute name="AttributeName" type="string" use="required"/>
556                 <anyAttribute namespace="##other" processContents="lax"/>
557                 </complexType>
558         </element>
559         
560 </schema>
561