Push SAML Attribute namespace configuration into the resolver. (Needed for proper...
[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" maxOccurs="unbounded">
13                                         <xs:complexType>
14                                                 <xs:complexContent>
15                                                         <xs:extension base="resolver:BaseAttributeDefinition">
16                                                                 <xs:attribute name="sourceName" type="xs:string" use="optional"/>
17                                                                 <xs:attribute name="smartScope" type="xs:string" use="optional"/>
18                                                                 <xs:attribute name="valueHandler" type="xs:string" use="optional"/>
19                                                                 <xs:attribute name="allowEmpty" type="xs:boolean" use="optional"/>
20                                                                 <xs:attribute name="downCase" type="xs:boolean" use="optional"/>
21                                                         </xs:extension>
22                                                 </xs:complexContent>
23                                         </xs:complexType>
24                                 </xs:element>
25                                 <xs:element name="SAML2PersistentID" minOccurs="0" maxOccurs="unbounded">
26                                         <xs:complexType>
27                                                 <xs:complexContent>
28                                                         <xs:extension base="resolver:BaseAttributeDefinition">
29                                                                 <xs:sequence>
30                                                                         <xs:element name="Salt">
31                                                                                 <xs:complexType>
32                                                                                         <xs:simpleContent>
33                                                                                                 <xs:extension base="xs:string">
34                                                                                                         <xs:attribute name="keyStorePath" type="xs:string" use="optional"/>
35                                                                                                         <xs:attribute name="keyStoreKeyAlias" type="xs:string" 
36                                                                                                                 use="optional"/>
37                                                                                                         <xs:attribute name="keyStorePassword" type="xs:string" 
38                                                                                                                 use="optional"/>
39                                                                                                         <xs:attribute name="keyStoreKeyPassword" type="xs:string" 
40                                                                                                                 use="optional"/>
41                                                                                                 </xs:extension>
42                                                                                         </xs:simpleContent>
43                                                                                 </xs:complexType>
44                                                                         </xs:element>
45                                                                 </xs:sequence>
46                                                                 <xs:attribute name="sourceName" type="xs:string" use="optional"/>
47                                                         </xs:extension>
48                                                 </xs:complexContent>
49                                         </xs:complexType>
50                                 </xs:element>
51                                 <xs:element name="PersistentIDAttributeDefinition" minOccurs="0" maxOccurs="unbounded">
52                                         <xs:complexType>
53                                                 <xs:complexContent>
54                                                         <xs:extension base="resolver:BaseAttributeDefinition">
55                                                                 <xs:sequence>
56                                                                         <xs:element name="Salt">
57                                                                                 <xs:complexType>
58                                                                                         <xs:simpleContent>
59                                                                                                 <xs:extension base="xs:string">
60                                                                                                         <xs:attribute name="keyStorePath" type="xs:string" use="optional"/>
61                                                                                                         <xs:attribute name="keyStoreKeyAlias" type="xs:string" 
62                                                                                                                 use="optional"/>
63                                                                                                         <xs:attribute name="keyStorePassword" type="xs:string" 
64                                                                                                                 use="optional"/>
65                                                                                                         <xs:attribute name="keyStoreKeyPassword" type="xs:string" 
66                                                                                                                 use="optional"/>
67                                                                                                 </xs:extension>
68                                                                                         </xs:simpleContent>
69                                                                                 </xs:complexType>
70                                                                         </xs:element>
71                                                                 </xs:sequence>
72                                                                 <xs:attribute name="sourceName" type="xs:string" use="optional"/>
73                                                                 <xs:attribute name="scope" type="xs:string" use="required"/>
74                                                         </xs:extension>
75                                                 </xs:complexContent>
76                                         </xs:complexType>
77                                 </xs:element>
78                                 <xs:element name="RegExAttributeDefinition">
79                                         <xs:complexType>
80                                                 <xs:complexContent>
81                                                         <xs:extension base="resolver:BaseAttributeDefinition">
82                                                                 <xs:attribute name="sourceName" type="xs:string" use="optional"/>
83                                                                 <xs:attribute name="regex" type="xs:string" use="required"/>
84                                                                 <xs:attribute name="replacement" type="xs:string" use="required"/>
85                                                                 <xs:attribute name="ignoreCase" type="xs:boolean" use="optional" default="false"/>
86                                                                 <xs:attribute name="partialMatch" type="xs:boolean" use="optional" default="false"/>
87                                                         </xs:extension>
88                                                 </xs:complexContent>
89                                         </xs:complexType>
90                                 </xs:element>
91                                 <xs:element name="FormattedAttributeDefinition">
92                                         <xs:complexType>
93                                                 <xs:complexContent>
94                                                         <xs:extension base="resolver:BaseAttributeDefinition">
95                                                                 <xs:sequence>
96                                                                         <xs:element name="Source" type="resolver:FormatType"/>
97                                                                         <xs:element name="Target" type="resolver:FormatType"/>
98                                                                 </xs:sequence>
99                                                                 <xs:attribute name="sourceName" type="xs:string" use="optional"/>
100                                                                 <xs:attribute name="skipIfSameFormat" type="xs:boolean" use="optional" default="false"/>
101                                                         </xs:extension>
102                                                 </xs:complexContent>
103                                         </xs:complexType>
104                                 </xs:element>
105                                 <xs:element name="CompositeAttributeDefinition">
106                                         <xs:complexType>
107                                                 <xs:complexContent>
108                                                         <xs:extension base="resolver:BaseAttributeDefinition">
109                                                                 <xs:attribute name="format" type="xs:string" use="optional"/>
110                                                                 <xs:attribute name="orderedSourceNames" type="xs:string" use="required"/>
111                                                         </xs:extension>
112                                                 </xs:complexContent>
113                                         </xs:complexType>
114                                 </xs:element>
115                                 <xs:element name="MappedAttributeDefinition">
116                                         <xs:complexType>
117                                                 <xs:complexContent>
118                                                         <xs:extension base="resolver:BaseAttributeDefinition">
119                                                                 <xs:sequence>
120                                                                         <xs:element name="ValueMap" maxOccurs="unbounded">
121                                                                                 <xs:complexType>
122                                                                                         <xs:attribute name="value" type="xs:string" use="required"/>
123                                                                                         <xs:attribute name="keyset" type="xs:string" use="required"/>
124                                                                                         <xs:attribute name="separator" type="xs:string" use="optional" default=","/>
125                                                                                 </xs:complexType>
126                                                                         </xs:element>
127                                                                 </xs:sequence>
128                                                                 <xs:attribute name="sourceName" type="xs:string" use="optional"/>
129                                                                 <xs:attribute name="ignoreCase" type="xs:boolean" use="optional" default="false"/>
130                                                                 <xs:attribute name="defaultValue" type="xs:string" use="optional"/>
131                                                                 <xs:attribute name="regex" type="xs:boolean" use="optional" default="false"/>
132                                                         </xs:extension>
133                                                 </xs:complexContent>
134                                         </xs:complexType>
135                                 </xs:element>
136                                 <xs:element name="CustomAttributeDefinition" minOccurs="0" maxOccurs="unbounded">
137                                         <xs:complexType>
138                                                 <xs:complexContent>
139                                                         <xs:extension base="resolver:BaseAttributeDefinition">
140                                                                 <xs:sequence minOccurs="0" maxOccurs="unbounded">
141                                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" 
142                                                                                 maxOccurs="unbounded"/>
143                                                                 </xs:sequence>
144                                                                 <xs:attribute name="class" type="xs:string" use="required"/>
145                                                                 <xs:anyAttribute namespace="##any" processContents="lax"/>
146                                                         </xs:extension>
147                                                 </xs:complexContent>
148                                         </xs:complexType>
149                                 </xs:element>
150                                 <xs:element name="CustomDataConnector" minOccurs="0" maxOccurs="unbounded">
151                                         <xs:complexType>
152                                                 <xs:complexContent>
153                                                         <xs:extension base="resolver:BaseDataConnector">
154                                                                 <xs:sequence>
155                                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" 
156                                                                                 maxOccurs="unbounded"/>
157                                                                 </xs:sequence>
158                                                                 <xs:attribute name="class" type="xs:string" use="required"/>
159                                                                 <xs:anyAttribute namespace="##any" processContents="lax"/>
160                                                         </xs:extension>
161                                                 </xs:complexContent>
162                                         </xs:complexType>
163                                 </xs:element>
164                                 <xs:element name="JNDIDirectoryDataConnector" minOccurs="0" maxOccurs="unbounded">
165                                         <xs:complexType>
166                                                 <xs:complexContent>
167                                                         <xs:extension base="resolver:BaseDataConnector">
168                                                                 <xs:sequence>
169                                                                         <xs:element ref="credentials:Credential" minOccurs="0" maxOccurs="1"/>
170                                                                         <xs:element name="Search">
171                                                                                 <xs:complexType>
172                                                                                         <xs:sequence minOccurs="0">
173                                                                                                 <xs:element name="Controls">
174                                                                                                         <xs:complexType>
175                                                                                                                 <xs:attribute name="searchScope" type="xs:string" 
176                                                                                                                         use="optional"/>
177                                                                                                                 <xs:attribute name="timeLimit" type="xs:int" use="optional"/>
178                                                                                                                 <xs:attribute name="returningObjects" type="xs:boolean" 
179                                                                                                                         use="optional"/>
180                                                                                                                 <xs:attribute name="linkDereferencing" type="xs:boolean" 
181                                                                                                                         use="optional"/>
182                                                                                                                 <xs:attribute name="countLimit" type="xs:long" use="optional"/>
183                                                                                                         </xs:complexType>
184                                                                                                 </xs:element>
185                                                                                         </xs:sequence>
186                                                                                         <xs:attribute name="filter" type="xs:string" use="required"/>
187                                                                                 </xs:complexType>
188                                                                         </xs:element>
189                                                                         <xs:element name="Property" maxOccurs="unbounded">
190                                                                                 <xs:complexType>
191                                                                                         <xs:attribute name="name" type="xs:string" use="required"/>
192                                                                                         <xs:attribute name="value" type="xs:string" use="required"/>
193                                                                                 </xs:complexType>
194                                                                         </xs:element>
195                                                                 </xs:sequence>
196                                                                 <xs:attribute name="useStartTls" type="xs:boolean" use="optional" default="false"/>
197                                                                 <xs:attribute name="mergeMultipleResults" type="xs:boolean" use="optional" 
198                                                                         default="false"/>
199                                                         </xs:extension>
200                                                 </xs:complexContent>
201                                         </xs:complexType>
202                                 </xs:element>
203                                 <xs:element name="JDBCDataConnector" minOccurs="0" maxOccurs="unbounded">
204                                         <xs:complexType>
205                                                 <xs:complexContent>
206                                                         <xs:extension base="resolver:BaseDataConnector">
207                                                                 <xs:sequence>
208                                                                         <xs:element name="Query" type="xs:string"/>
209                                                                         <xs:element name="AttributeExtractor" minOccurs="0">
210                                                                                 <xs:complexType>
211                                                                                         <xs:attribute name="class" type="xs:string" use="required"/>
212                                                                                 </xs:complexType>
213                                                                         </xs:element>
214                                                                         <xs:element name="StatementCreator" minOccurs="0">
215                                                                                 <xs:complexType>
216                                                                                         <xs:sequence minOccurs="0" maxOccurs="unbounded">
217                                                                                                 <xs:any namespace="##any" processContents="lax" minOccurs="0" 
218                                                                                                         maxOccurs="unbounded"/>
219                                                                                         </xs:sequence>
220                                                                                         <xs:attribute name="class" type="xs:string" use="required"/>
221                                                                                         <xs:anyAttribute namespace="##any" processContents="lax"/>
222                                                                                 </xs:complexType>
223                                                                         </xs:element>
224                                                                         <xs:element name="Property" minOccurs="0" maxOccurs="unbounded">
225                                                                                 <xs:complexType>
226                                                                                         <xs:attribute name="name" type="xs:string" use="required"/>
227                                                                                         <xs:attribute name="value" type="xs:string" use="required"/>
228                                                                                 </xs:complexType>
229                                                                         </xs:element>
230                                                                 </xs:sequence>
231                                                                 <xs:attribute name="dbURL" type="xs:string" use="required"/>
232                                                                 <xs:attribute name="dbDriver" type="xs:string" use="optional"/>
233                                                                 <xs:attribute name="validationQuery" type="xs:string" use="optional" 
234                                                                         default="select 1"/>
235                                                                 <xs:attribute name="maxActive" type="xs:integer" use="optional"/>
236                                                                 <xs:attribute name="maxIdle" type="xs:integer" use="optional"/>
237                                                                 <xs:attribute name="maxWait" type="xs:integer" use="optional"/>
238                                                                 <xs:attribute name="minResultSet" type="xs:integer" use="optional"/>
239                                                                 <xs:attribute name="maxResultSet" type="xs:integer" use="optional"/>
240                                                                 <xs:attribute name="retryInterval" type="xs:integer" use="optional"/>
241                                                         </xs:extension>
242                                                 </xs:complexContent>
243                                         </xs:complexType>
244                                 </xs:element>
245                         </xs:choice>
246                 </xs:complexType>
247         </xs:element>
248         <xs:complexType name="BaseAttributeDefinition">
249                 <xs:complexContent>
250                         <xs:extension base="resolver:BaseResolutionPlugIn">
251                                 <xs:attribute name="lifeTime" type="xs:long" use="optional"/>
252                                 <xs:attribute name="namespace" type="xs:string" use="optional"/>
253                         </xs:extension>
254                 </xs:complexContent>
255         </xs:complexType>
256         <xs:complexType name="BaseDataConnector">
257                 <xs:complexContent>
258                         <xs:extension base="resolver:BaseResolutionPlugIn">
259                                 <xs:sequence>
260                                         <xs:element name="FailoverDependency" minOccurs="0">
261                                                 <xs:complexType>
262                                                         <xs:attribute name="requires" type="xs:string" 
263                                                                 use="required"/>
264                                                 </xs:complexType>
265                                         </xs:element>
266                                 </xs:sequence>
267                         </xs:extension>
268                 </xs:complexContent>
269         </xs:complexType>
270         <xs:complexType name="BaseResolutionPlugIn">
271                 <xs:choice minOccurs="0" maxOccurs="unbounded">
272                         <xs:element name="DataConnectorDependency">
273                                 <xs:complexType>
274                                         <xs:attribute name="requires" type="xs:string" 
275                                                 use="required"/>
276                                 </xs:complexType>
277                         </xs:element>
278                         <xs:element name="AttributeDependency">
279                                 <xs:complexType>
280                                         <xs:attribute name="requires" type="xs:string" 
281                                                 use="required"/>
282                                 </xs:complexType>
283                         </xs:element>
284                 </xs:choice>
285                 <xs:attribute name="id" type="xs:string" use="required"/>
286                 <xs:attribute name="cacheTime" type="xs:string" use="optional"/>
287                 <xs:attribute name="propagateErrors" type="xs:boolean" use="optional" 
288                         default="true"/>
289         </xs:complexType>
290         <xs:complexType name="FormatType">
291  <xs:attribute name="format" type="xs:string" use="required"/>
292  <xs:attribute name="pattern" type="xs:string" use="required"/>
293 </xs:complexType>
294 </xs:schema>