Added AAP elements to schema.
[shibboleth/sp.git] / schemas / eduPerson.xsd
1 <?xml version="1.0" encoding="US-ASCII"?>
2 <!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by Throckmorton P. Ruddygore (Personal Gratification, Inc.) -->
3 <schema targetNamespace="urn:mace:eduPerson:1.0" xmlns:edu="urn:mace:eduPerson:1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
4     <!--
5     Attribute Identifiers:
6     
7     urn:mace:eduPerson:1.0:eduPersonPrincipalName
8         - AttributeValue xsi:type is eduPersonPrincipalNameType
9         - AttributeValue element contains the LHS of the eduPerson-defined EPPN
10         - Scope, if any, contains the RHS of the eduPerson-defined EPPN
11         - MUST be singly occurring value
12     
13     urn:mace:eduPerson:1.0:eduPersonAffiliation
14         - AttributeValue xsi:type is eduPersonAffiliationType
15         - AttributeValue elements contain an eduPerson-defined affiliation token
16         - Scope, if any, contains a DNS-style organization name
17         - MAY be multi-valued
18     
19     urn:mace:eduPerson:1.0:eduPersonPrimaryAffiliation
20         - AttributeValue xsi:type is eduPersonAffiliationType
21         - AttributeValue element contains an eduPerson-defined affiliation token
22         - Scope, if any, contains a DNS-style organization name
23         - MUST be singly occurring value
24     
25     urn:mace:eduPerson:1.0:eduPersonEntitlement
26         - AttributeValue xsi:type is xsd:anyURI
27         - AttributeValue elements contain a URI representing the entitlement
28         - MAY be multi-valued
29     -->
30     <complexType name="ScopedStringValueType">
31         <simpleContent>
32             <extension base="string">
33                 <attribute name="Scope" type="string" use="optional"/>
34             </extension>
35         </simpleContent>
36     </complexType>
37     <complexType name="eduPersonPrincipalNameType">
38         <simpleContent>
39             <restriction base="edu:ScopedStringValueType">
40                 <pattern value="[^\s@]+"/>
41                 <attribute name="Scope" type="string" use="optional"/>
42             </restriction>
43         </simpleContent>
44     </complexType>
45     <complexType name="eduPersonAffiliationType">
46         <simpleContent>
47             <restriction base="edu:ScopedStringValueType">
48                 <enumeration value="faculty"/>
49                 <enumeration value="student"/>
50                 <enumeration value="staff"/>
51                 <enumeration value="alum"/>
52                 <enumeration value="member"/>
53                 <enumeration value="affiliate"/>
54                 <enumeration value="employee"/>
55                 <attribute name="Scope" type="string" use="optional"/>
56             </restriction>
57         </simpleContent>
58     </complexType>
59     <simpleType name="ValueType">
60         <restriction base="string">
61             <enumeration value="literal"/>
62             <enumeration value="regexp"/>
63             <enumeration value="xpath"/>
64         </restriction>
65     </simpleType>
66     <complexType name="SiteRuleType">
67         <sequence>
68             <element name="Value" maxOccurs="unbounded">
69                 <complexType>
70                     <simpleContent>
71                         <extension base="string">
72                             <attribute name="Type" type="edu:ValueType" use="optional" default="literal"/>
73                         </extension>
74                     </simpleContent>
75                 </complexType>
76             </element>
77         </sequence>
78     </complexType>
79     <element name="AnySite" type="edu:SiteRuleType"/>
80     <element name="SiteRule">
81         <complexType>
82             <complexContent>
83                 <extension base="edu:SiteRuleType">
84                     <attribute name="Name" type="string" use="required"/>
85                 </extension>
86             </complexContent>
87         </complexType>
88     </element>
89     <complexType name="AttributeRuleType">
90         <sequence>
91             <element ref="edu:AnySite" minOccurs="0"/>
92             <element ref="edu:SiteRule" minOccurs="0" maxOccurs="unbounded"/>
93         </sequence>
94         <attribute name="Name" type="anyURI"/>
95     </complexType>
96     <element name="AttributeRule" type="edu:AttributeRuleType">
97         <key name="SiteRuleKey">
98             <selector xpath="./edu:SiteRule"/>
99             <field xpath="@Name"/>
100         </key>
101     </element>
102     <element name="AttributeAcceptancePolicy">
103         <complexType>
104             <sequence>
105                 <element ref="edu:AttributeRule" maxOccurs="unbounded"/>
106             </sequence>
107         </complexType>
108         <key name="AttributeNameKey">
109             <selector xpath="./edu:AttributeRule"/>
110             <field xpath="@Name"/>
111         </key>
112     </element>
113 </schema>