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">
11 <xs:choice minOccurs="1" maxOccurs="unbounded">
12 <xs:element name="SimpleAttributeDefinition" minOccurs="0" maxOccurs="unbounded">
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"/>
25 <xs:element name="PersistentIDAttributeDefinition" minOccurs="0" maxOccurs="unbounded">
28 <xs:extension base="resolver:BaseAttributeDefinition">
30 <xs:element name="Salt">
33 <xs:extension base="xs:string">
34 <xs:attribute name="keyStorePath" type="xs:string" use="optional"/>
35 <xs:attribute name="keyStoreKeyAlias" type="xs:string"
37 <xs:attribute name="keyStorePassword" type="xs:string"
39 <xs:attribute name="keyStoreKeyPassword" type="xs:string"
46 <xs:attribute name="sourceName" type="xs:string" use="optional"/>
47 <xs:attribute name="scope" type="xs:string" use="required"/>
52 <xs:element name="RegExAttributeDefinition">
55 <xs:extension base="resolver:BaseAttributeDefinition">
56 <xs:attribute name="sourceName" type="xs:string" use="optional"/>
57 <xs:attribute name="regex" type="xs:string" use="required"/>
58 <xs:attribute name="replacement" type="xs:string" use="required"/>
59 <xs:attribute name="ignoreCase" type="xs:boolean" use="optional" default="false"/>
60 <xs:attribute name="partialMatch" type="xs:boolean" use="optional" default="false"/>
65 <xs:element name="FormattedAttributeDefinition">
68 <xs:extension base="resolver:BaseAttributeDefinition">
70 <xs:element name="Source" type="resolver:FormatType"/>
71 <xs:element name="Target" type="resolver:FormatType"/>
73 <xs:attribute name="sourceName" type="xs:string" use="optional"/>
74 <xs:attribute name="skipIfSameFormat" type="xs:boolean" use="optional" default="false"/>
79 <xs:element name="CompositeAttributeDefinition">
82 <xs:extension base="resolver:BaseAttributeDefinition">
83 <xs:attribute name="format" type="xs:string" use="optional"/>
84 <xs:attribute name="orderedSourceNames" type="xs:string" use="required"/>
89 <xs:element name="MappedAttributeDefinition">
92 <xs:extension base="resolver:BaseAttributeDefinition">
94 <xs:element name="ValueMap" maxOccurs="unbounded">
96 <xs:attribute name="value" type="xs:string" use="required"/>
97 <xs:attribute name="keyset" type="xs:string" use="required"/>
98 <xs:attribute name="separator" type="xs:string" use="optional" default=","/>
102 <xs:attribute name="sourceName" type="xs:string" use="optional"/>
103 <xs:attribute name="ignoreCase" type="xs:boolean" use="optional" default="false"/>
104 <xs:attribute name="defaultValue" type="xs:string" use="optional"/>
105 <xs:attribute name="regex" type="xs:boolean" use="optional" default="false"/>
110 <xs:element name="CustomAttributeDefinition" minOccurs="0" maxOccurs="unbounded">
113 <xs:extension base="resolver:BaseAttributeDefinition">
114 <xs:sequence minOccurs="0" maxOccurs="unbounded">
115 <xs:any namespace="##any" processContents="lax" minOccurs="0"
116 maxOccurs="unbounded"/>
118 <xs:attribute name="class" type="xs:string" use="required"/>
119 <xs:anyAttribute namespace="##any" processContents="lax"/>
124 <xs:element name="CustomDataConnector" minOccurs="0" maxOccurs="unbounded">
127 <xs:extension base="resolver:BaseDataConnector">
129 <xs:any namespace="##any" processContents="lax" minOccurs="0"
130 maxOccurs="unbounded"/>
132 <xs:attribute name="class" type="xs:string" use="required"/>
133 <xs:anyAttribute namespace="##any" processContents="lax"/>
138 <xs:element name="JNDIDirectoryDataConnector" minOccurs="0" maxOccurs="unbounded">
141 <xs:extension base="resolver:BaseDataConnector">
143 <xs:element ref="credentials:Credential" minOccurs="0" maxOccurs="1"/>
144 <xs:element name="Search">
146 <xs:sequence minOccurs="0">
147 <xs:element name="Controls">
149 <xs:attribute name="searchScope" type="xs:string"
151 <xs:attribute name="timeLimit" type="xs:int" use="optional"/>
152 <xs:attribute name="returningObjects" type="xs:boolean"
154 <xs:attribute name="linkDereferencing" type="xs:boolean"
156 <xs:attribute name="countLimit" type="xs:long" use="optional"/>
160 <xs:attribute name="filter" type="xs:string" use="required"/>
163 <xs:element name="Property" maxOccurs="unbounded">
165 <xs:attribute name="name" type="xs:string" use="required"/>
166 <xs:attribute name="value" type="xs:string" use="required"/>
170 <xs:attribute name="useStartTls" type="xs:boolean" use="optional" default="false"/>
175 <xs:element name="JDBCDataConnector" minOccurs="0" maxOccurs="unbounded">
178 <xs:extension base="resolver:BaseDataConnector">
180 <xs:element name="Query" type="xs:string"/>
181 <xs:element name="AttributeExtractor" minOccurs="0">
183 <xs:attribute name="class" type="xs:string" use="required"/>
186 <xs:element name="StatementCreator" minOccurs="0">
188 <xs:sequence minOccurs="0" maxOccurs="unbounded">
189 <xs:any namespace="##any" processContents="lax" minOccurs="0"
190 maxOccurs="unbounded"/>
192 <xs:attribute name="class" type="xs:string" use="required"/>
193 <xs:anyAttribute namespace="##any" processContents="lax"/>
196 <xs:element name="Property" minOccurs="0" maxOccurs="unbounded">
198 <xs:attribute name="name" type="xs:string" use="required"/>
199 <xs:attribute name="value" type="xs:string" use="required"/>
203 <xs:attribute name="dbURL" type="xs:string" use="required"/>
204 <xs:attribute name="dbDriver" type="xs:string" use="optional"/>
205 <xs:attribute name="validationQuery" type="xs:string" use="optional"
207 <xs:attribute name="maxActive" type="xs:integer" use="optional"/>
208 <xs:attribute name="maxIdle" type="xs:integer" use="optional"/>
209 <xs:attribute name="maxWait" type="xs:integer" use="optional"/>
210 <xs:attribute name="minResultSet" type="xs:integer" use="optional"/>
211 <xs:attribute name="maxResultSet" type="xs:integer" use="optional"/>
212 <xs:attribute name="retryInterval" type="xs:integer" use="optional"/>
220 <xs:complexType name="BaseAttributeDefinition">
222 <xs:extension base="resolver:BaseResolutionPlugIn">
223 <xs:attribute name="lifeTime" type="xs:long" use="optional"/>
227 <xs:complexType name="BaseDataConnector">
229 <xs:extension base="resolver:BaseResolutionPlugIn">
231 <xs:element name="FailoverDependency" minOccurs="0">
233 <xs:attribute name="requires" type="xs:string"
241 <xs:complexType name="BaseResolutionPlugIn">
242 <xs:choice minOccurs="0" maxOccurs="unbounded">
243 <xs:element name="DataConnectorDependency">
245 <xs:attribute name="requires" type="xs:string"
249 <xs:element name="AttributeDependency">
251 <xs:attribute name="requires" type="xs:string"
256 <xs:attribute name="id" type="xs:string" use="required"/>
257 <xs:attribute name="cacheTime" type="xs:string" use="optional"/>
258 <xs:attribute name="propagateErrors" type="xs:boolean" use="optional"
261 <xs:complexType name="FormatType">
262 <xs:attribute name="format" type="xs:string" use="required"/>
263 <xs:attribute name="pattern" type="xs:string" use="required"/>