Pulled old credential schema.
[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="2.0">
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                 <attribute name="redirectToSSL" type="unsignedInt" use="optional"/>
284                 <anyAttribute namespace="##other" processContents="lax"/>
285         </attributeGroup>
286         <element name="AccessControlProvider" type="conf:PluggableType"/>
287         <element name="htaccess" type="conf:PluggableType"/>
288
289     <element name="RequestMap">
290                 <annotation>
291                         <documentation>
292                         Built-in request mapping syntax, decomposes URLs into Host/Path/Path/...
293                         </documentation>
294                 </annotation>
295         <complexType>
296             <sequence>
297                 <choice minOccurs="0">
298                         <element ref="conf:htaccess"/>
299                                         <element ref="conf:AccessControl"/>
300                         <element ref="conf:AccessControlProvider"/>
301                     </choice>
302                 <element ref="conf:Host" minOccurs="0" maxOccurs="unbounded"/>
303             </sequence>
304             <attribute name="applicationId" type="string" fixed="default"/>
305                 <attributeGroup ref="conf:ContentSettings"/>
306         </complexType>
307     </element>
308
309     <element name="Host">
310         <complexType>
311                 <sequence>
312                 <choice minOccurs="0">
313                         <element ref="conf:htaccess"/>
314                                         <element ref="conf:AccessControl"/>
315                         <element ref="conf:AccessControlProvider"/>
316                     </choice>
317                         <element ref="conf:Path" minOccurs="0" maxOccurs="unbounded"/>
318                 </sequence>
319                 <attribute name="scheme" use="optional">
320                             <simpleType>
321                                 <restriction base="string">
322                                     <enumeration value="http"/>
323                                     <enumeration value="https"/>
324                                     <enumeration value="ftp"/>
325                                     <enumeration value="ldap"/>
326                                     <enumeration value="ldaps"/>
327                                 </restriction>
328                             </simpleType>
329                 </attribute>
330                 <attribute name="name" type="string" use="required"/>
331                 <attribute name="port" type="unsignedInt" use="optional"/>
332                 <attribute name="applicationId" type="string" use="optional"/>
333                 <attributeGroup ref="conf:ContentSettings"/>
334         </complexType>
335     </element>
336
337     <element name="Path">
338         <complexType>
339                 <sequence>
340                 <choice minOccurs="0">
341                         <element ref="conf:htaccess"/>
342                                         <element ref="conf:AccessControl"/>
343                         <element ref="conf:AccessControlProvider"/>
344                     </choice>
345                         <element ref="conf:Path" minOccurs="0" maxOccurs="unbounded"/>
346                 </sequence>
347                 <attribute name="name" type="string" use="required"/>
348                 <attribute name="applicationId" type="string" use="optional"/>
349                 <attributeGroup ref="conf:ContentSettings"/>
350         </complexType>
351     </element>
352
353         <element name="Applications">
354                 <annotation>
355                         <documentation>Container for global target settings and application-specific overrides</documentation>
356                 </annotation>
357                 <complexType>
358                         <sequence>
359                                 <element ref="conf:Sessions"/>
360                                 <element ref="conf:Errors"/>
361                                 <element ref="conf:CredentialUse" minOccurs="0"/>
362                                 <choice minOccurs="0" maxOccurs="unbounded">
363                     <element ref="saml:AttributeDesignator"/>
364                     <element ref="saml:Audience"/>
365                     <element name="AAPProvider" 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="ssl" type="anyURI" use="optional"/>
495                         <attribute name="supportContact" type="string" use="optional"/>
496                         <attribute name="logoLocation" type="anyURI" use="optional"/>
497                         <attribute name="styleSheet" type="anyURI" use="optional"/>
498                         <anyAttribute namespace="##any" processContents="lax"/>
499                 </complexType>
500         </element>
501
502         <attributeGroup name="CredentialUseGroup">
503                 <attribute name="TLS" type="string" use="optional"/>
504                 <attribute name="Signing" type="string" use="optional"/>
505                 <attribute name="signRequest" type="boolean" use="optional" default="false"/>
506                 <attribute name="signatureAlg" type="anyURI" use="optional"/>
507                 <attribute name="digestAlg" type="anyURI" use="optional"/>
508                 <attribute name="signedResponse" type="boolean" use="optional" default="false"/>
509                 <attribute name="signedAssertions" type="boolean" use="optional" default="false"/>
510                 <attribute name="authType" use="optional">
511                         <simpleType>
512                                 <restriction base="string">
513                                         <enumeration value="basic"/>
514                                         <enumeration value="digest"/>
515                                         <enumeration value="ntlm"/>
516                                         <enumeration value="gss"/>
517                                 </restriction>
518                         </simpleType>
519                 </attribute>
520                 <attribute name="authUsername" use="optional"/>
521                 <attribute name="authPassword" use="optional"/>
522         </attributeGroup>
523
524         <element name="CredentialUse">
525                 <annotation>
526                         <documentation>Container for specifying credentials to use</documentation>
527                 </annotation>
528                 <complexType>
529                         <sequence>
530                                 <element name="RelyingParty" minOccurs="0" maxOccurs="unbounded">
531                                         <complexType>
532                                                 <sequence>
533                                                         <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
534                                                 </sequence>
535                                                 <attribute name="Name" type="string" use="required"/>
536                                                 <attributeGroup ref="conf:CredentialUseGroup"/>
537                                                 <anyAttribute namespace="##other" processContents="lax"/>
538                                         </complexType>
539                                 </element>
540                                 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
541                         </sequence>
542                         <attributeGroup ref="conf:CredentialUseGroup"/>
543                 <anyAttribute namespace="##other" processContents="lax"/>
544                 </complexType>
545         </element>
546         
547         <element name="AttributeFactory">
548                 <annotation>
549                         <documentation>Specifies a plugin that implements a specialized SAML attribute</documentation>
550                 </annotation>
551                 <complexType>
552                         <sequence>
553                                 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
554                         </sequence>
555                         <attribute name="type" type="string" use="required"/>
556                         <attribute name="AttributeName" type="string" use="required"/>
557                 <anyAttribute namespace="##other" processContents="lax"/>
558                 </complexType>
559         </element>
560         
561 </schema>
562