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