b96dc2f7fe5295900f05ff6f326adca9dbcddd7e
[java-idp.git] / src / schemas / shibboleth-arp-1.0.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema targetNamespace="urn:mace:shibboleth:arp:1.0" xmlns:arp="urn:mace:shibboleth:arp:1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
3         <xs:simpleType name="RequireType">
4                 <xs:restriction base="xs:string">
5                         <xs:enumeration value="deny"/>
6                         <xs:enumeration value="permit"/>
7                 </xs:restriction>
8         </xs:simpleType>
9         <xs:complexType name="AttributeType">
10                 <xs:sequence>
11                         <xs:element name="AnyValue" minOccurs="0">
12                                 <xs:complexType>
13                                         <xs:attribute name="release" type="arp:RequireType" use="required"/>
14                                 </xs:complexType>
15                         </xs:element>
16                         <xs:element name="Value" minOccurs="0" maxOccurs="unbounded">
17                                 <xs:complexType mixed="true">
18                                         <xs:sequence minOccurs="0">
19                                                 <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
20                                         </xs:sequence>
21                                         <xs:attribute name="matchFunction" type="xs:anyURI" default="urn:mace:shibboleth:arp:matchFunction:stringMatch"/>
22                                         <xs:attribute name="release" type="arp:RequireType" use="required"/>
23                                 </xs:complexType>
24                         </xs:element>
25                 </xs:sequence>
26                 <xs:attribute name="name" type="xs:anyURI" use="required"/>
27                 <xs:attribute name="identifier" type="xs:anyURI" use="optional"/>
28         </xs:complexType>
29         <xs:element name="AttributeReleasePolicy">
30                 <xs:complexType>
31                         <xs:sequence>
32                                 <xs:element name="Description" type="xs:string" minOccurs="0"/>
33                                 <xs:sequence>
34                                         <xs:element name="Rule" minOccurs="0" maxOccurs="unbounded">
35                                                 <xs:complexType>
36                                                         <xs:sequence>
37                                                                 <xs:element name="Description" type="xs:string" minOccurs="0"/>
38                                                                 <xs:element name="Target">
39                                                                         <xs:complexType>
40                                                                                 <xs:choice>
41                                                                                         <xs:element name="AnyTarget">
42                                                                                                 <xs:complexType/>
43                                                                                         </xs:element>
44                                                                                         <xs:sequence minOccurs="1" maxOccurs="unbounded">
45                                                                                                 <xs:element name="Requester">
46                                                                                                         <xs:complexType>
47                                                                                                                 <xs:simpleContent>
48                                                                                                                         <xs:extension base="xs:string">
49                                                                                                                                 <xs:attribute name="matchFunction" type="xs:anyURI" default="urn:mace:shibboleth:arp:matchFunction:stringMatch"/>
50                                                                                                                         </xs:extension>
51                                                                                                                 </xs:simpleContent>
52                                                                                                         </xs:complexType>
53                                                                                                 </xs:element>
54                                                                                         </xs:sequence>
55                                                                                 </xs:choice>
56                                                                         </xs:complexType>
57                                                                 </xs:element>
58                                                                 <xs:sequence>
59                                                                         <xs:element name="Attribute" type="arp:AttributeType" minOccurs="0" maxOccurs="unbounded"/>
60                                                                         <xs:element name="AttributeReference" minOccurs="0" maxOccurs="unbounded">
61                                                                                 <xs:complexType>
62                                                                                         <xs:attribute name="identifier" type="xs:anyURI" use="required"/>
63                                                                                 </xs:complexType>
64                                                                         </xs:element>
65                                                                 </xs:sequence>
66                                                         </xs:sequence>
67                                                         <xs:attribute name="identifier" type="xs:anyURI" use="optional"/>
68                                                 </xs:complexType>
69                                         </xs:element>
70                                         <xs:element name="RuleReference" minOccurs="0" maxOccurs="unbounded">
71                                                 <xs:complexType>
72                                                         <xs:attribute name="identifier" type="xs:anyURI" use="required"/>
73                                                 </xs:complexType>
74                                         </xs:element>
75                                 </xs:sequence>
76                                 <xs:element name="Attribute" type="arp:AttributeType" minOccurs="0" maxOccurs="unbounded"/>
77                         </xs:sequence>
78                 </xs:complexType>
79         </xs:element>
80 </xs:schema>