Fix backslashes in SHIBSP_PREFIX variable by manually creating it during the script...
[shibboleth/sp.git] / schemas / shibboleth-2.0-afp.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <schema targetNamespace="urn:mace:shibboleth:2.0:afp"
4     xmlns="http://www.w3.org/2001/XMLSchema"
5     xmlns:afp="urn:mace:shibboleth:2.0:afp"
6     xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
7     elementFormDefault="qualified">\r
8 \r
9     <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="classpath:/schema/xmldsig-core-schema.xsd" />\r
10 \r
11     <annotation>
12         <documentation>Schema for the attribute filter policies.</documentation>
13     </annotation>
14
15     <element name="AttributeFilterPolicyGroup" type="afp:AttributeFilterPolicyGroupType">
16         <annotation>
17             <documentation>
18                 Root element of the attribute filter policy. Represents a named group of filter policies.
19             </documentation>
20         </annotation>
21     </element>
22     <complexType name="AttributeFilterPolicyGroupType">
23         <complexContent>
24             <extension base="afp:IdentityType">
25                 <sequence>
26                     <element ref="afp:PolicyRequirementRule" minOccurs="0" maxOccurs="unbounded">
27                         <annotation>
28                             <documentation>
29                                 Defines a set of applications requirements that may be reused across multiple filter
30                                 policies.
31                             </documentation>
32                         </annotation>
33                     </element>
34                     <element ref="afp:PermitValueRule" minOccurs="0" maxOccurs="unbounded">
35                         <annotation>
36                             <documentation>
37                                 Defines an attribute value filter that may be reused across multiple attribute rules.
38                             </documentation>
39                         </annotation>
40                     </element>\r
41                     <element ref="afp:AttributeRule" minOccurs="0" maxOccurs="unbounded">
42                         <annotation>
43                             <documentation>
44                                 Defines an attribute rule that may be reused across multiple filter policies.
45                             </documentation>
46                         </annotation>
47                     </element>
48                     <element ref="afp:AttributeFilterPolicy" minOccurs="0" maxOccurs="unbounded">
49                         <annotation>
50                             <documentation>
51                                 A policy that defines the set of attribute value filters that will be applied if its
52                                 application requirements are met.
53                             </documentation>
54                         </annotation>
55                     </element>
56                     <element ref="ds:Signature" minOccurs="0">
57                         <annotation>
58                             <documentation>
59                                 Digital signature for the policy. Policies that are fetched from an external source,
60                                 such as a federation site, should be signed.
61                             </documentation>
62                         </annotation>
63                     </element>\r
64                 </sequence>\r
65             </extension>
66         </complexContent>\r
67     </complexType>
68
69     <element name="AttributeFilterPolicy" type="afp:AttributeFilterPolicyType">
70         <annotation>
71             <documentation>
72                 A policy that defines a set of attribute value filters rules that should be used if given requirements
73                 are met.
74             </documentation>
75         </annotation>
76     </element>
77     <complexType name="AttributeFilterPolicyType">
78         <complexContent>
79             <extension base="afp:IdentityType">
80                 <sequence>
81                     <choice>
82                         <element ref="afp:PolicyRequirementRule">
83                             <annotation>
84                                 <documentation>
85                                     A requirement that if met signals that this filter policy should be used.
86                                 </documentation>
87                             </annotation>
88                         </element>
89                         <element name="PolicyRequirementRuleReference" type="afp:ReferenceType">
90                             <annotation>
91                                 <documentation>
92                                     Rerfence to a PolicyRequirement defined within this policy group or another.
93                                 </documentation>
94                             </annotation>
95                         </element>
96                     </choice>
97                     <choice minOccurs="0" maxOccurs="unbounded">
98                         <element ref="afp:AttributeRule">
99                             <annotation>
100                                 <documentation>
101                                     A rule that describes how values of an attribute will be filtered.
102                                 </documentation>
103                             </annotation>
104                         </element>
105                         <element name="AttributeRuleReference" type="afp:ReferenceType">
106                             <annotation>
107                                 <documentation>
108                                     Rerfence to a AttribtueRule defined within this policy group or another.
109                                 </documentation>
110                             </annotation>
111                         </element>
112                     </choice>
113                 </sequence>
114             </extension>
115         </complexContent>
116     </complexType>\r
117 \r
118     <element name="AttributeRule" type="afp:AttributeRuleType">
119         <annotation>
120             <documentation>A rule that describes how values of an attribute will be filtered.</documentation>
121         </annotation>
122     </element>\r
123     <complexType name="AttributeRuleType">
124         <complexContent>
125             <extension base="afp:IdentityType">
126                 <choice>
127                     <element ref="afp:PermitValueRule">
128                         <annotation>
129                             <documentation>
130                                 A filter for attribute values. If the filter evaluates to true the value is permitted,
131                                 otherwise it is filtered out.
132                             </documentation>
133                         </annotation>
134                     </element>
135                     <element name="PermitValueRuleReference" type="afp:ReferenceType">
136                         <annotation>
137                             <documentation>
138                                 Rerfence to a PermitValueRule defined within this policy group or another.
139                             </documentation>
140                         </annotation>
141                     </element>
142                 </choice>
143                 <attribute name="attributeID" type="string" use="required">
144                     <annotation>
145                         <documentation>The ID of the attribute to which this rule applies.</documentation>
146                     </annotation>
147                 </attribute>
148             </extension>
149         </complexContent>\r
150     </complexType>
151
152     <element name="PolicyRequirementRule" type="afp:MatchFunctorType">
153         <annotation>
154             <documentation>A requirement that if met signals that a filter policy should be used.</documentation>
155         </annotation>
156     </element>
157     <element name="PermitValueRule" type="afp:MatchFunctorType">
158         <annotation>
159             <documentation>
160                 A filter for attribtue values. If the filter evaluates to true the value is permitted, otherwise it is
161                 filtered out.
162             </documentation>
163         </annotation>
164     </element>
165     <complexType name="MatchFunctorType" abstract="true">
166         <complexContent>
167             <extension base="afp:IdentityType" />
168         </complexContent>
169     </complexType>
170
171     <complexType name="IdentityType">
172         <attribute name="id" type="string">
173             <annotation>
174                 <documentation>An ID, unique within the policy and component type.</documentation>
175             </annotation>
176         </attribute>
177     </complexType>
178
179     <complexType name="ReferenceType">
180         <attribute name="ref" type="string">
181             <annotation>
182                 <documentation>Used to reference a globally defined policy component.</documentation>
183             </annotation>
184         </attribute>
185     </complexType>
186
187 </schema>