Finish adding role verification.
[shibboleth/cpp-opensaml.git] / schemas / cs-sstc-schema-assertion-01.xsd
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <!-- edited with XML Spy v3.5 NT (http://www.xmlspy.com) by Phill Hallam-Baker (VeriSign Inc.) -->\r
3 <schema targetNamespace="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">\r
4         <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>\r
5         <annotation>\r
6                 <documentation>\r
7                 Document identifier: cs-sstc-schema-assertion-01\r
8                 Location: http://www.oasis-open.org/committees/security/docs/\r
9                 </documentation>\r
10         </annotation>\r
11         <simpleType name="IDType">\r
12                 <restriction base="string"/>\r
13         </simpleType>\r
14         <simpleType name="IDReferenceType">\r
15                 <restriction base="string"/>\r
16         </simpleType>\r
17         <simpleType name="DecisionType">\r
18                 <restriction base="string">\r
19                         <enumeration value="Permit"/>\r
20                         <enumeration value="Deny"/>\r
21                         <enumeration value="Indeterminate"/>\r
22                 </restriction>\r
23         </simpleType>\r
24         <element name="AssertionIDReference" type="saml:IDReferenceType"/>\r
25         <element name="Assertion" type="saml:AssertionType"/>\r
26         <complexType name="AssertionType">\r
27                 <sequence>\r
28                         <element ref="saml:Conditions" minOccurs="0"/>\r
29                         <element ref="saml:Advice" minOccurs="0"/>\r
30                         <choice maxOccurs="unbounded">\r
31                                 <element ref="saml:Statement"/>\r
32                                 <element ref="saml:SubjectStatement"/>\r
33                                 <element ref="saml:AuthenticationStatement"/>\r
34                                 <element ref="saml:AuthorizationDecisionStatement"/>\r
35                                 <element ref="saml:AttributeStatement"/>\r
36                         </choice>\r
37                         <element ref="ds:Signature" minOccurs="0"/>\r
38                 </sequence>\r
39                 <attribute name="MajorVersion" type="integer" use="required"/>\r
40                 <attribute name="MinorVersion" type="integer" use="required"/>\r
41                 <attribute name="AssertionID" type="saml:IDType" use="required"/>\r
42                 <attribute name="Issuer" type="string" use="required"/>\r
43                 <attribute name="IssueInstant" type="dateTime" use="required"/>\r
44         </complexType>\r
45         <element name="Conditions" type="saml:ConditionsType"/>\r
46         <complexType name="ConditionsType">\r
47                 <choice minOccurs="0" maxOccurs="unbounded">\r
48                         <element ref="saml:AudienceRestrictionCondition"/>\r
49                         <element ref="saml:Condition"/>\r
50                 </choice>\r
51                 <attribute name="NotBefore" type="dateTime" use="optional"/>\r
52                 <attribute name="NotOnOrAfter" type="dateTime" use="optional"/>\r
53         </complexType>\r
54         <element name="Condition" type="saml:ConditionAbstractType"/>\r
55         <complexType name="ConditionAbstractType" abstract="true"/>\r
56         <element name="AudienceRestrictionCondition" type="saml:AudienceRestrictionConditionType"/>\r
57         <complexType name="AudienceRestrictionConditionType">\r
58                 <complexContent>\r
59                         <extension base="saml:ConditionAbstractType">\r
60                                 <sequence>\r
61                                         <element ref="saml:Audience" maxOccurs="unbounded"/>\r
62                                 </sequence>\r
63                         </extension>\r
64                 </complexContent>\r
65         </complexType>\r
66         <element name="Audience" type="anyURI"/>\r
67         <element name="Advice" type="saml:AdviceType"/>\r
68         <complexType name="AdviceType">\r
69                 <choice minOccurs="0" maxOccurs="unbounded">\r
70                         <element ref="saml:AssertionIDReference"/>\r
71                         <element ref="saml:Assertion"/>\r
72                         <any namespace="##other" processContents="lax"/>\r
73                 </choice>\r
74         </complexType>\r
75         <element name="Statement" type="saml:StatementAbstractType"/>\r
76         <complexType name="StatementAbstractType" abstract="true"/>\r
77         <element name="SubjectStatement" type="saml:SubjectStatementAbstractType"/>\r
78         <complexType name="SubjectStatementAbstractType" abstract="true">\r
79                 <complexContent>\r
80                         <extension base="saml:StatementAbstractType">\r
81                                 <sequence>\r
82                                         <element ref="saml:Subject"/>\r
83                                 </sequence>\r
84                         </extension>\r
85                 </complexContent>\r
86         </complexType>\r
87         <element name="Subject" type="saml:SubjectType"/>\r
88         <complexType name="SubjectType">\r
89                 <choice>\r
90                         <sequence>\r
91                                 <element ref="saml:NameIdentifier"/>\r
92                                 <element ref="saml:SubjectConfirmation" minOccurs="0"/>\r
93                         </sequence>\r
94                         <element ref="saml:SubjectConfirmation"/>\r
95                 </choice>\r
96         </complexType>\r
97         <element name="NameIdentifier" type="saml:NameIdentifierType"/>\r
98         <complexType name="NameIdentifierType">\r
99                 <simpleContent>\r
100                         <extension base="string">\r
101                                 <attribute name="NameQualifier" type="string" use="optional"/>\r
102                                 <attribute name="Format" type="anyURI" use="optional"/>\r
103                         </extension>\r
104                 </simpleContent>\r
105         </complexType>\r
106         <element name="SubjectConfirmation" type="saml:SubjectConfirmationType"/>\r
107         <complexType name="SubjectConfirmationType">\r
108                 <sequence>\r
109                         <element ref="saml:ConfirmationMethod" maxOccurs="unbounded"/>\r
110                         <element ref="saml:SubjectConfirmationData" minOccurs="0"/>\r
111                         <element ref="ds:KeyInfo" minOccurs="0"/>\r
112                 </sequence>\r
113         </complexType>\r
114         <element name="SubjectConfirmationData" type="anyType"/>\r
115         <element name="ConfirmationMethod" type="anyURI"/>\r
116         <element name="AuthenticationStatement" type="saml:AuthenticationStatementType"/>\r
117         <complexType name="AuthenticationStatementType">\r
118                 <complexContent>\r
119                         <extension base="saml:SubjectStatementAbstractType">\r
120                                 <sequence>\r
121                                         <element ref="saml:SubjectLocality" minOccurs="0"/>\r
122                                         <element ref="saml:AuthorityBinding" minOccurs="0" maxOccurs="unbounded"/>\r
123                                 </sequence>\r
124                                 <attribute name="AuthenticationMethod" type="anyURI" use="required"/>\r
125                                 <attribute name="AuthenticationInstant" type="dateTime" use="required"/>\r
126                         </extension>\r
127                 </complexContent>\r
128         </complexType>\r
129         <element name="SubjectLocality" type="saml:SubjectLocalityType"/>\r
130         <complexType name="SubjectLocalityType">\r
131                 <attribute name="IPAddress" type="string" use="optional"/>\r
132                 <attribute name="DNSAddress" type="string" use="optional"/>\r
133         </complexType>\r
134         <element name="AuthorityBinding" type="saml:AuthorityBindingType"/>\r
135         <complexType name="AuthorityBindingType">\r
136                 <attribute name="AuthorityKind" type="QName" use="required"/>\r
137                 <attribute name="Location" type="anyURI" use="required"/>\r
138                 <attribute name="Binding" type="anyURI" use="required"/>\r
139         </complexType>\r
140         <element name="AuthorizationDecisionStatement" type="saml:AuthorizationDecisionStatementType"/>\r
141         <complexType name="AuthorizationDecisionStatementType">\r
142                 <complexContent>\r
143                         <extension base="saml:SubjectStatementAbstractType">\r
144                                 <sequence>\r
145                                         <element ref="saml:Action" maxOccurs="unbounded"/>\r
146                                         <element ref="saml:Evidence" minOccurs="0"/>\r
147                                 </sequence>\r
148                                 <attribute name="Resource" type="anyURI" use="required"/>\r
149                                 <attribute name="Decision" type="saml:DecisionType" use="required"/>\r
150                         </extension>\r
151                 </complexContent>\r
152         </complexType>\r
153         <element name="Action" type="saml:ActionType"/>\r
154         <complexType name="ActionType">\r
155                 <simpleContent>\r
156                         <extension base="string">\r
157                                 <attribute name="Namespace" type="anyURI"/>\r
158                         </extension>\r
159                 </simpleContent>\r
160         </complexType>\r
161         <element name="Evidence" type="saml:EvidenceType"/>\r
162         <complexType name="EvidenceType">\r
163                 <choice maxOccurs="unbounded">\r
164                         <element ref="saml:AssertionIDReference"/>\r
165                         <element ref="saml:Assertion"/>\r
166                 </choice>\r
167         </complexType>\r
168         <element name="AttributeStatement" type="saml:AttributeStatementType"/>\r
169         <complexType name="AttributeStatementType">\r
170                 <complexContent>\r
171                         <extension base="saml:SubjectStatementAbstractType">\r
172                                 <sequence>\r
173                                         <element ref="saml:Attribute" maxOccurs="unbounded"/>\r
174                                 </sequence>\r
175                         </extension>\r
176                 </complexContent>\r
177         </complexType>\r
178         <element name="AttributeDesignator" type="saml:AttributeDesignatorType"/>\r
179         <complexType name="AttributeDesignatorType">\r
180                 <attribute name="AttributeName" type="string" use="required"/>\r
181                 <attribute name="AttributeNamespace" type="anyURI" use="required"/>\r
182         </complexType>\r
183         <element name="Attribute" type="saml:AttributeType"/>\r
184         <complexType name="AttributeType">\r
185                 <complexContent>\r
186                         <extension base="saml:AttributeDesignatorType">\r
187                                 <sequence>\r
188                                         <element ref="saml:AttributeValue" maxOccurs="unbounded"/>\r
189                                 </sequence>\r
190                         </extension>\r
191                 </complexContent>\r
192         </complexType>\r
193         <element name="AttributeValue" type="anyType"/>\r
194 </schema>\r