Added support for starttls and sasl EXTERNAL authentication. Hooked the existing...
[java-idp.git] / src / schemas / shibboleth-resolver-1.0.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema targetNamespace="urn:mace:shibboleth:resolver:1.0" 
3         xmlns:xs="http://www.w3.org/2001/XMLSchema" 
4         xmlns:resolver="urn:mace:shibboleth:resolver:1.0" 
5         xmlns:credentials="urn:mace:shibboleth:credentials:1.0" 
6         elementFormDefault="qualified" attributeFormDefault="unqualified">
7         <xs:import namespace="urn:mace:shibboleth:credentials:1.0" 
8                 schemaLocation="credentials.xsd"/>
9         <xs:element name="AttributeResolver">
10                 <xs:complexType>
11                         <xs:choice minOccurs="1" maxOccurs="unbounded">
12                                 <xs:element name="SimpleAttributeDefinition" minOccurs="0" 
13                                         maxOccurs="unbounded">
14                                         <xs:complexType>
15                                                 <xs:complexContent>
16                                                         <xs:extension 
17                                                                 base="resolver:BaseAttributeDefinition">
18                                                                 <xs:attribute name="sourceName" 
19                                                                         type="xs:string" use="optional"/>
20                                                                 <xs:attribute name="smartScope" 
21                                                                         type="xs:string" use="optional"/>
22                                                                 <xs:attribute name="valueHandler" 
23                                                                         type="xs:string" use="optional"/>
24                                                                 <xs:attribute name="allowEmpty" 
25                                                                         type="xs:boolean" use="optional"/>
26                                                                 <xs:attribute name="downCase" type="xs:boolean" 
27                                                                         use="optional"/>
28                                                         </xs:extension>
29                                                 </xs:complexContent>
30                                         </xs:complexType>
31                                 </xs:element>
32                                 <xs:element name="PersistentIDAttributeDefinition" 
33                                         minOccurs="0" maxOccurs="unbounded">
34                                         <xs:complexType>
35                                                 <xs:complexContent>
36                                                         <xs:extension 
37                                                                 base="resolver:BaseAttributeDefinition">
38                                                                 <xs:sequence>
39                                                                         <xs:element name="Salt">
40                                                                                 <xs:complexType>
41                                                                                         <xs:simpleContent>
42                                                                                                 <xs:extension base="xs:string">
43                                                                                                         <xs:attribute 
44                                                                                                                 name="keyStorePath" 
45                                                                                                                 type="xs:string" 
46                                                                                                                 use="optional"/>
47                                                                                                         <xs:attribute 
48                                                                                                                 name="keyStoreKeyAlias" 
49                                                                                                                 type="xs:string" 
50                                                                                                                 use="optional"/>
51                                                                                                         <xs:attribute 
52                                                                                                                 name="keyStorePassword" 
53                                                                                                                 type="xs:string" 
54                                                                                                                 use="optional"/>
55                                                                                                         <xs:attribute 
56                                                                                                                 name="keyStoreKeyPassword" 
57                                                                                                                 type="xs:string" 
58                                                                                                                 use="optional"/>
59                                                                                                 </xs:extension>
60                                                                                         </xs:simpleContent>
61                                                                                 </xs:complexType>
62                                                                         </xs:element>
63                                                                 </xs:sequence>
64                                                                 <xs:attribute name="sourceName" 
65                                                                         type="xs:string" use="optional"/>
66                                                                 <xs:attribute name="scope" type="xs:string" 
67                                                                         use="required"/>
68                                                         </xs:extension>
69                                                 </xs:complexContent>
70                                         </xs:complexType>
71                                 </xs:element>
72                                 <xs:element name="CustomAttributeDefinition" minOccurs="0" 
73                                         maxOccurs="unbounded">
74                                         <xs:complexType>
75                                                 <xs:complexContent>
76                                                         <xs:extension 
77                                                                 base="resolver:BaseAttributeDefinition">
78                                                                 <xs:sequence minOccurs="0" 
79                                                                         maxOccurs="unbounded">
80                                                                         <xs:any namespace="##any" 
81                                                                                 processContents="lax" minOccurs="0" 
82                                                                                 maxOccurs="unbounded"/>
83                                                                 </xs:sequence>
84                                                                 <xs:attribute name="class" type="xs:string" 
85                                                                         use="required"/>
86                                                                 <xs:anyAttribute namespace="##any" 
87                                                                         processContents="lax"/>
88                                                         </xs:extension>
89                                                 </xs:complexContent>
90                                         </xs:complexType>
91                                 </xs:element>
92                                 <xs:element name="CustomDataConnector" minOccurs="0" 
93                                         maxOccurs="unbounded">
94                                         <xs:complexType>
95                                                 <xs:complexContent>
96                                                         <xs:extension base="resolver:BaseDataConnector">
97                                                                 <xs:sequence>
98                                                                         <xs:any namespace="##any" 
99                                                                                 processContents="lax" minOccurs="0" 
100                                                                                 maxOccurs="unbounded"/>
101                                                                 </xs:sequence>
102                                                                 <xs:attribute name="class" type="xs:string" 
103                                                                         use="required"/>
104                                                                 <xs:anyAttribute namespace="##any" 
105                                                                         processContents="lax"/>
106                                                         </xs:extension>
107                                                 </xs:complexContent>
108                                         </xs:complexType>
109                                 </xs:element>
110                                 <xs:element name="JNDIDirectoryDataConnector" minOccurs="0" 
111                                         maxOccurs="unbounded">
112                                         <xs:complexType>
113                                                 <xs:complexContent>
114                                                         <xs:extension base="resolver:BaseDataConnector">
115                                                                 <xs:sequence>
116                                                                         <xs:element ref="credentials:Credential" 
117                                                                                 minOccurs="0" maxOccurs="1"/>
118                                                                         <xs:element name="Search">
119                                                                                 <xs:complexType>
120                                                                                         <xs:sequence minOccurs="0">
121                                                                                                 <xs:element name="Controls">
122                                                                                                         <xs:complexType>
123                                                                                                                 <xs:attribute 
124                                                                                                                         name="searchScope" 
125                                                                                                                         type="xs:string" 
126                                                                                                                         use="optional"/>
127                                                                                                                 <xs:attribute 
128                                                                                                                         name="timeLimit" 
129                                                                                                                         type="xs:int" 
130                                                                                                                         use="optional"/>
131                                                                                                                 <xs:attribute 
132                                                                                                                         name="returningObjects" 
133                                                                                                                         type="xs:boolean" 
134                                                                                                                         use="optional"/>
135                                                                                                                 <xs:attribute 
136                                                                                                                         name="linkDereferencing" 
137                                                                                                                         type="xs:boolean" 
138                                                                                                                         use="optional"/>
139                                                                                                                 <xs:attribute 
140                                                                                                                         name="countLimit" 
141                                                                                                                         type="xs:long" 
142                                                                                                                         use="optional"/>
143                                                                                                         </xs:complexType>
144                                                                                                 </xs:element>
145                                                                                         </xs:sequence>
146                                                                                         <xs:attribute name="filter" 
147                                                                                                 type="xs:string" 
148                                                                                                 use="required"/>
149                                                                                 </xs:complexType>
150                                                                         </xs:element>
151                                                                         <xs:element name="Property" 
152                                                                                 maxOccurs="unbounded">
153                                                                                 <xs:complexType>
154                                                                                         <xs:attribute name="name" 
155                                                                                                 type="xs:string" 
156                                                                                                 use="required"/>
157                                                                                         <xs:attribute name="value" 
158                                                                                                 type="xs:string" 
159                                                                                                 use="required"/>
160                                                                                 </xs:complexType>
161                                                                         </xs:element>
162                                                                 </xs:sequence>
163                                                                 <xs:attribute name="useStartTls" 
164                                                                         type="xs:boolean" use="optional" 
165                                                                         default="false"/>
166                                                         </xs:extension>
167                                                 </xs:complexContent>
168                                         </xs:complexType>
169                                 </xs:element>
170                                 <xs:element name="JDBCDataConnector" minOccurs="0" 
171                                         maxOccurs="unbounded">
172                                         <xs:complexType>
173                                                 <xs:complexContent>
174                                                         <xs:extension base="resolver:BaseDataConnector">
175                                                                 <xs:sequence>
176                                                                         <xs:element name="Query" type="xs:string"/>
177                                                                         <xs:element name="AttributeExtractor" 
178                                                                                 minOccurs="0">
179                                                                                 <xs:complexType>
180                                                                                         <xs:attribute name="class" 
181                                                                                                 type="xs:string" 
182                                                                                                 use="required"/>
183                                                                                 </xs:complexType>
184                                                                         </xs:element>
185                                                                         <xs:element name="StatementCreator" 
186                                                                                 minOccurs="0">
187                                                                                 <xs:complexType>
188                                                                                         <xs:sequence minOccurs="0" 
189                                                                                                 maxOccurs="unbounded">
190                                                                                                 <xs:any namespace="##any" 
191                                                                                                         processContents="lax" 
192                                                                                                         minOccurs="0" 
193                                                                                                         maxOccurs="unbounded"/>
194                                                                                         </xs:sequence>
195                                                                                         <xs:attribute name="class" 
196                                                                                                 type="xs:string" 
197                                                                                                 use="required"/>
198                                                                                         <xs:anyAttribute namespace="##any" 
199                                                                                                 processContents="lax"/>
200                                                                                 </xs:complexType>
201                                                                         </xs:element>
202                                                                         <xs:element name="Property" minOccurs="0" 
203                                                                                 maxOccurs="unbounded">
204                                                                                 <xs:complexType>
205                                                                                         <xs:attribute name="name" 
206                                                                                                 type="xs:string" 
207                                                                                                 use="required"/>
208                                                                                         <xs:attribute name="value" 
209                                                                                                 type="xs:string" 
210                                                                                                 use="required"/>
211                                                                                 </xs:complexType>
212                                                                         </xs:element>
213                                                                 </xs:sequence>
214                                                                 <xs:attribute name="dbURL" type="xs:string" 
215                                                                         use="required"/>
216                                                                 <xs:attribute name="dbDriver" type="xs:string" 
217                                                                         use="optional"/>
218                                                                 <xs:attribute name="validationQuery" 
219                                                                         type="xs:string" use="optional" 
220                                                                         default="select 1"/>
221                                                                 <xs:attribute name="maxActive" 
222                                                                         type="xs:integer" use="optional"/>
223                                                                 <xs:attribute name="maxIdle" type="xs:integer" 
224                                                                         use="optional"/>
225                                                                 <xs:attribute name="maxWait" type="xs:integer" 
226                                                                         use="optional"/>
227                                                                 <xs:attribute name="minResultSet" 
228                                                                         type="xs:integer" use="optional"/>
229                                                                 <xs:attribute name="maxResultSet" 
230                                                                         type="xs:integer" use="optional"/>
231                                                                 <xs:attribute name="retryInterval" 
232                                                                         type="xs:integer" use="optional"/>
233                                                         </xs:extension>
234                                                 </xs:complexContent>
235                                         </xs:complexType>
236                                 </xs:element>
237                         </xs:choice>
238                 </xs:complexType>
239         </xs:element>
240         <xs:complexType name="BaseAttributeDefinition">
241                 <xs:complexContent>
242                         <xs:extension base="resolver:BaseResolutionPlugIn">
243                                 <xs:attribute name="lifeTime" type="xs:long" use="optional"/>
244                         </xs:extension>
245                 </xs:complexContent>
246         </xs:complexType>
247         <xs:complexType name="BaseDataConnector">
248                 <xs:complexContent>
249                         <xs:extension base="resolver:BaseResolutionPlugIn">
250                                 <xs:sequence>
251                                         <xs:element name="FailoverDependency" minOccurs="0">
252                                                 <xs:complexType>
253                                                         <xs:attribute name="requires" type="xs:string" 
254                                                                 use="required"/>
255                                                 </xs:complexType>
256                                         </xs:element>
257                                 </xs:sequence>
258                         </xs:extension>
259                 </xs:complexContent>
260         </xs:complexType>
261         <xs:complexType name="BaseResolutionPlugIn">
262                 <xs:choice minOccurs="0" maxOccurs="unbounded">
263                         <xs:element name="DataConnectorDependency">
264                                 <xs:complexType>
265                                         <xs:attribute name="requires" type="xs:string" 
266                                                 use="required"/>
267                                 </xs:complexType>
268                         </xs:element>
269                         <xs:element name="AttributeDependency">
270                                 <xs:complexType>
271                                         <xs:attribute name="requires" type="xs:string" 
272                                                 use="required"/>
273                                 </xs:complexType>
274                         </xs:element>
275                 </xs:choice>
276                 <xs:attribute name="id" type="xs:string" use="required"/>
277                 <xs:attribute name="cacheTime" type="xs:string" use="optional"/>
278                 <xs:attribute name="propagateErrors" type="xs:boolean" use="optional" 
279                         default="true"/>
280         </xs:complexType>
281 </xs:schema>