SSPCPP-697 - Align the filter schema(s) and functor types where feasible.
[shibboleth/cpp-sp.git] / schemas / shibboleth-2.0-afp-mf-saml.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <schema xmlns="http://www.w3.org/2001/XMLSchema"
3         xmlns:saml="urn:mace:shibboleth:2.0:afp:mf:saml"
4         xmlns:afp="urn:mace:shibboleth:2.0:afp"
5         targetNamespace="urn:mace:shibboleth:2.0:afp:mf:saml"
6         elementFormDefault="qualified"
7         version="2.6">
8
9     <import namespace="urn:mace:shibboleth:2.0:afp" schemaLocation="classpath:/schema/shibboleth-2.0-afp.xsd" />
10
11     <annotation>
12         <documentation>
13           A set of SAML specific match functions. These match functions only operate against a
14           SAMLFilterContext.
15         </documentation>
16     </annotation>
17
18     <complexType name="AttributeIssuerEntityAttributeExactMatch">
19         <annotation>
20             <documentation>
21                 A match function that checks if the attribute issuer contains an entity attribute with the
22                 specified value.
23             </documentation>
24         </annotation>
25         <complexContent>
26             <extension base="saml:EntityAttributeExactMatchType"/>
27         </complexContent>
28     </complexType>
29
30     <complexType name="EntityAttributeExactMatch">
31         <annotation>
32             <documentation>
33                 A match function that checks if the attribute requester contains an entity attribute with the
34                 specified value.
35             </documentation>
36         </annotation>
37         <complexContent>
38             <extension base="saml:EntityAttributeExactMatchType"/>
39         </complexContent>
40     </complexType>
41
42     <complexType name="AttributeRequesterEntityAttributeExactMatch">
43         <annotation>
44             <documentation>
45                 A match function that checks if the attribute requester contains an entity attribute with the
46                 specified value.
47                 
48                 Deprecated in favor of "EntityAttributeExactMatch".
49             </documentation>
50         </annotation>
51         <complexContent>
52             <extension base="saml:EntityAttributeExactMatchType"/>
53         </complexContent>
54     </complexType>
55
56     <complexType name="EntityAttributeExactMatchType" abstract="true">
57         <complexContent>
58             <extension base="afp:MatchFunctorType">
59                 <attribute name="attributeName" type="string" use="required">
60                     <annotation>
61                         <documentation>The name of the entity attribute to match.</documentation>
62                     </annotation>
63                 </attribute>
64                 <attribute name="attributeNameFormat" type="string" use="optional">
65                     <annotation>
66                         <documentation>The name format of the entity attribute to match.</documentation>
67                     </annotation>
68                 </attribute>
69                 <attribute name="attributeValue" type="string" use="required">
70                     <annotation>
71                         <documentation>The value of the entity attribute to match.</documentation>
72                     </annotation>
73                 </attribute>
74             </extension>
75         </complexContent>
76     </complexType>
77
78     <complexType name="AttributeIssuerEntityAttributeRegexMatch">
79         <annotation>
80             <documentation>
81                 A match function that checks if the attribute issuer contains an entity attribute with a
82                 value that matches the given regular expression.
83             </documentation>
84         </annotation>
85         <complexContent>
86             <extension base="saml:EntityAttributeRegexMatchType"/>
87         </complexContent>
88     </complexType>
89
90     <complexType name="EntityAttributeRegexMatch">
91         <annotation>
92             <documentation>
93                 A match function that checks if the attribute requester contains an entity attribute with a
94                 value that matches the given regular expression.
95             </documentation>
96         </annotation>
97         <complexContent>
98             <extension base="saml:EntityAttributeRegexMatchType"/>
99         </complexContent>
100     </complexType>
101
102     <complexType name="AttributeRequesterEntityAttributeRegexMatch">
103         <annotation>
104             <documentation>
105                 A match function that checks if the attribute requester contains an entity attribute with a
106                 value that matches the given regular expression.
107                 
108                 Deprecated in favor of "EntityAttributeRegexMatch".
109             </documentation>
110         </annotation>
111         <complexContent>
112             <extension base="saml:EntityAttributeRegexMatchType"/>
113         </complexContent>
114     </complexType>
115
116     <complexType name="EntityAttributeRegexMatchType" abstract="true">
117         <complexContent>
118             <extension base="afp:MatchFunctorType">
119                 <attribute name="attributeName" type="string" use="required">
120                     <annotation>
121                         <documentation>The name of the entity attribute to match.</documentation>
122                     </annotation>
123                 </attribute>
124                 <attribute name="attributeNameFormat" type="string" use="optional">
125                     <annotation>
126                         <documentation>The name format of the entity attribute to match.</documentation>
127                     </annotation>
128                 </attribute>
129                 <attribute name="attributeValueRegex" type="string" use="required">
130                     <annotation>
131                         <documentation>The regular expression that must match the value of the entity attribute to
132                             match.</documentation>
133                     </annotation>
134                 </attribute>
135             </extension>
136         </complexContent>
137     </complexType>
138
139     <complexType name="AttributeIssuerNameIDFormatExactMatch">
140         <annotation>
141             <documentation>
142                 A match function that evaluates to true if the attribute issuer supports a specified
143                 NameID format.
144             </documentation>
145         </annotation>
146         <complexContent>
147             <extension base="saml:NameIDFormatExactMatchType"/>
148         </complexContent>
149     </complexType>
150
151     <complexType name="NameIDFormatExactMatch">
152         <annotation>
153             <documentation>
154                 A match function that evaluates to true if the attribute requester supports a specified
155                 NameID format.
156             </documentation>
157         </annotation>
158         <complexContent>
159             <extension base="saml:NameIDFormatExactMatchType"/>
160         </complexContent>
161     </complexType>
162
163     <complexType name="AttributeRequesterNameIDFormatExactMatch">
164         <annotation>
165             <documentation>
166                 A match function that evaluates to true if the attribute requester supports a specified
167                 NameID format.
168                 
169                 Deprecated in favor of "NameIDFormatExactMatch".
170             </documentation>
171         </annotation>
172         <complexContent>
173             <extension base="saml:NameIDFormatExactMatchType"/>
174         </complexContent>
175     </complexType>
176
177     <complexType name="NameIDFormatExactMatchType" abstract="true">
178         <complexContent>
179             <extension base="afp:MatchFunctorType">
180                 <attribute name="nameIdFormat" type="string" use="required">
181                     <annotation>
182                         <documentation>The NameID format that needs to be supported by the entity.</documentation>
183                     </annotation>
184                 </attribute>
185             </extension>
186         </complexContent>
187     </complexType>
188     
189     <complexType name="AttributeRequesterInEntityGroup">
190         <annotation>
191             <documentation>
192                 A match function that evaluates to true if the attribute requester is found in metadata and is a member
193                 of the given entity group.
194                 
195                 Deprecated in favor of "InEntityGroup".
196             </documentation>
197         </annotation>
198         <complexContent>
199             <extension base="saml:EntityGroupMatchType" />
200         </complexContent>
201     </complexType>
202
203     <complexType name="InEntityGroup">
204         <annotation>
205             <documentation>
206                 A match function that evaluates to true if the attribute requester is found in metadata and
207                 is a member of the given entity group.
208             </documentation>
209         </annotation>
210         <complexContent>
211             <extension base="saml:EntityGroupMatchType"/>
212         </complexContent>
213     </complexType>
214
215     <complexType name="AttributeIssuerInEntityGroup">
216         <annotation>
217             <documentation>
218                 A match function that evaluates to true if the attribute issuer is found in metadata and is a member
219                 of the given entity group.
220             </documentation>
221         </annotation>
222         <complexContent>
223             <extension base="saml:EntityGroupMatchType" />
224         </complexContent>
225     </complexType>
226
227     <complexType name="EntityGroupMatchType" abstract="true">
228         <complexContent>
229             <extension base="afp:MatchFunctorType">
230                 <attribute name="groupID" type="string" use="required">
231                     <annotation>
232                         <documentation>The entity group ID that an entity must be in.</documentation>
233                     </annotation>
234                 </attribute>
235             </extension>
236         </complexContent>
237     </complexType>
238     
239     <complexType name="AttributeScopeMatchesShibMDScope">
240         <annotation>
241             <documentation>
242                 A match function that ensures that an attribute value's scope matches a scope given in metadata for the entity or role.
243             </documentation>
244         </annotation>
245         <complexContent>
246             <extension base="afp:MatchFunctorType" />
247         </complexContent>
248     </complexType>
249
250     <complexType name="AttributeIssuerRegistrationAuthority">
251         <annotation>
252             <documentation>
253                 A match function that matches the attribute issuer's MDRPI content against a list of potential values.
254             </documentation>
255         </annotation>
256         <complexContent>
257             <extension base="saml:RegistrationAuthorityMatchType" />
258         </complexContent>
259     </complexType>
260
261     <complexType name="RegistrationAuthority">
262         <annotation>
263             <documentation>
264                 A match function that matches the SP (requester) MDRPI against a list of potential values.
265             </documentation>
266         </annotation>
267         <complexContent>
268             <extension base="saml:RegistrationAuthorityMatchType" />
269         </complexContent>
270     </complexType>
271
272     <complexType name="RegistrationAuthorityMatchType" abstract="true">
273         <complexContent>
274             <extension base="afp:MatchFunctorType">
275                 <attribute name="registrars" type="saml:anyURIListType" use="required">
276                     <annotation>
277                         <documentation>The string values to match.</documentation>
278                     </annotation>
279                 </attribute>
280                 <attribute name="matchIfMetadataSilent" type="boolean">
281                     <annotation>
282                         <documentation>
283                             A boolean flag indicating whether a match should occur if the metadata does
284                             not contain an MDRPI statement (coded) default is false.
285                         </documentation>
286                     </annotation>
287                 </attribute>
288             </extension>
289         </complexContent>
290     </complexType>
291
292     <complexType name="NameIDQualifierString">
293         <annotation>
294             <documentation>
295                 A match function that ensures that a NameID-valued attribute's qualifier(s), if set, match particular values.
296             </documentation>
297         </annotation>
298         <complexContent>
299             <extension base="afp:MatchFunctorType">
300                 <attribute name="attributeID" type="string">
301                     <annotation>
302                         <documentation>
303                             The ID of the attribute whose qualifiers should be matched. If no attribute ID is specified the
304                             ID of the containing attribute rule is assumed.
305                         </documentation>
306                     </annotation>
307                 </attribute>
308                 <attribute name="NameQualifier" type="string">
309                     <annotation>
310                         <documentation>
311                             A value to require in the NameQualifier field, or if omitted, require that it match the issuing IdP's entityID.
312                         </documentation>
313                     </annotation>
314                 </attribute>
315                 <attribute name="SPNameQualifier" type="string">
316                     <annotation>
317                         <documentation>
318                             A value to require in the SPNameQualifier field, or if omitted, require that it match the SP's entityID.
319                         </documentation>
320                     </annotation>
321                 </attribute>
322             </extension>
323         </complexContent>
324     </complexType>
325
326     <complexType name="AttributeIssuerEntityMatcher">
327         <annotation>
328             <documentation>
329                 A match function that checks if the attribute issuer matches pluggable criteria.
330             </documentation>
331         </annotation>
332         <complexContent>
333             <extension base="saml:EntityMatcherType"/>
334         </complexContent>
335     </complexType>
336
337     <complexType name="AttributeRequesterEntityMatcher">
338         <annotation>
339             <documentation>
340                 A match function that checks if the attribute requester matches pluggable criteria.
341             </documentation>
342         </annotation>
343         <complexContent>
344             <extension base="saml:EntityMatcherType"/>
345         </complexContent>
346     </complexType>
347     
348     <complexType name="EntityMatcherType" abstract="true">
349         <complexContent>
350             <extension base="afp:MatchFunctorType">
351                 <sequence>
352                     <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
353                 </sequence>
354                 <attribute name="matcher" type="string" use="required">
355                     <annotation>
356                         <documentation>
357                             The type of plugin to apply as a matching mechanism.
358                         </documentation>
359                     </annotation>
360                 </attribute>
361                 <anyAttribute namespace="##any" processContents="lax"/>
362             </extension>
363         </complexContent>
364     </complexType>
365     
366     <simpleType name="anyURIListType">
367         <list itemType="string"/>
368     </simpleType>
369     
370 </schema>