1# zxid/sg/saml-schema-protocol-2.0.sg
2# $Id: saml-schema-protocol-2.0.sg,v 1.5 2008-02-23 03:59:31 sampo Exp $
3#
4# N.B. This file is not a direct conversion. Instead it has been manually
5# edited to make it simpler and to facilitate code generation.
6
7target(sp,urn:oasis:names:tc:SAML:2.0:protocol)
8import(sa,urn:oasis:names:tc:SAML:2.0:assertion,saml-schema-assertion-2.0.xsd)
9import(ds,http://www.w3.org/2000/09/xmldsig#,http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd)
10ns(xs, http://www.w3.org/2001/XMLSchema)
11
12%RequestAbstractType:
13  sa:Issuer?
14  ds:Signature?
15  sp:Extensions?
16  @ID	 -> %xs:ID
17  @Version	 -> %xs:string
18  @IssueInstant	 -> %xs:dateTime
19  @Destination?	 -> %xs:anyURI
20  @Consent?	 -> %xs:anyURI
21  ;
22
23Extensions	 -> %sp:ExtensionsType
24%ExtensionsType:
25  any+
26  ;
27
28%StatusResponseType:
29  sa:Issuer?
30  ds:Signature?
31  sp:Extensions?
32  sp:Status
33  @ID	 -> %xs:ID
34  @InResponseTo? -> %xs:NCName
35  @Version	 -> %xs:string
36  @IssueInstant	 -> %xs:dateTime
37  @Destination?	 -> %xs:anyURI
38  @Consent?	 -> %xs:anyURI
39  ;
40
41Status	 -> %sp:StatusType
42%StatusType:
43  sp:StatusCode
44  sp:StatusMessage?
45  sp:StatusDetail?
46  ;
47
48StatusCode	 -> %sp:StatusCodeType
49%StatusCodeType:
50  sp:StatusCode?
51  @Value	 -> %xs:anyURI
52  ;
53
54StatusMessage	 -> %xs:string
55
56StatusDetail	 -> %sp:StatusDetailType
57%StatusDetailType:
58  any*
59  ;
60
61AssertionIDRequest	 -> %sp:AssertionIDRequestType
62%AssertionIDRequestType: base(sp:RequestAbstractType)
63  sa:AssertionIDRef+
64  ;
65
66SubjectQuery	 -> %sp:SubjectQueryAbstractType
67%SubjectQueryAbstractType: base(sp:RequestAbstractType)
68  sa:Subject
69  ;
70
71AuthnQuery	 -> %sp:AuthnQueryType
72%AuthnQueryType:	 base(sp:SubjectQueryAbstractType)
73  sp:RequestedAuthnContext?
74  @SessionIndex?	 -> %xs:string
75  ;
76
77RequestedAuthnContext	 -> %sp:RequestedAuthnContextType
78%RequestedAuthnContextType:
79  sa:AuthnContextClassRef*
80  sa:AuthnContextDeclRef*
81  @Comparison?	 -> %sp:AuthnContextComparisonType
82  ;
83
84%AuthnContextComparisonType:	 enum( exact minimum maximum better ) ;
85
86AttributeQuery	 -> %sp:AttributeQueryType
87%AttributeQueryType:	 base(sp:SubjectQueryAbstractType)
88  sa:Attribute*
89  ;
90
91AuthzDecisionQuery	 -> %sp:AuthzDecisionQueryType
92%AuthzDecisionQueryType: base(sp:SubjectQueryAbstractType)
93  sa:Action+
94  sa:Evidence?
95  @Resource	 -> %xs:anyURI
96  ;
97
98AuthnRequest	 -> %sp:AuthnRequestType
99%AuthnRequestType:	 base(sp:RequestAbstractType)
100  sa:Subject?
101  sp:NameIDPolicy?
102  sa:Conditions?
103  sp:RequestedAuthnContext?
104  sp:Scoping?
105  @ForceAuthn?	 -> %xs:boolean
106  @IsPassive?	 -> %xs:boolean
107  @ProtocolBinding?	 -> %xs:anyURI
108  @AssertionConsumerServiceIndex?	 -> %xs:unsignedShort
109  @AssertionConsumerServiceURL?	 -> %xs:anyURI
110  @AttributeConsumingServiceIndex?	 -> %xs:unsignedShort
111  @ProviderName?	 -> %xs:string
112  ;
113
114NameIDPolicy	 -> %sp:NameIDPolicyType
115%NameIDPolicyType:
116  @Format?	 -> %xs:anyURI
117  @SPNameQualifier?	 -> %xs:string
118  @AllowCreate?	 -> %xs:boolean
119  ;
120
121Scoping	 -> %sp:ScopingType
122%ScopingType:
123  sp:IDPList?
124  sp:RequesterID*
125  @ProxyCount?	 -> %xs:nonNegativeInteger
126  ;
127
128RequesterID	 -> %xs:anyURI
129
130IDPList	 -> %sp:IDPListType
131%IDPListType:
132  sp:IDPEntry+
133  sp:GetComplete?
134  ;
135
136IDPEntry	 -> %sp:IDPEntryType
137%IDPEntryType:
138  @ProviderID	 -> %xs:anyURI
139  @Name?	 -> %xs:string
140  @Loc?	 -> %xs:anyURI
141  ;
142
143GetComplete	 -> %xs:anyURI
144
145Response	 -> %sp:ResponseType
146%ResponseType:	 base(sp:StatusResponseType)
147  sa:Assertion?
148  sa:EncryptedAssertion?
149  ;
150
151ArtifactResolve	 -> %sp:ArtifactResolveType
152%ArtifactResolveType:	 base(sp:RequestAbstractType)
153  sp:Artifact
154  ;
155
156Artifact	 -> %xs:string
157
158ArtifactResponse	 -> %sp:ArtifactResponseType
159%ArtifactResponseType:	 base(sp:StatusResponseType)
160  sp:Response?
161  any?
162  ;
163
164ManageNameIDRequest	 -> %sp:ManageNameIDRequestType
165%ManageNameIDRequestType:	 base(sp:RequestAbstractType)
166  sa:NameID?
167  sa:EncryptedID?
168  sp:NewID?
169  sp:NewEncryptedID?
170  sp:Terminate?
171  ;
172
173NewID	 -> %xs:string
174
175NewEncryptedID	 -> %sa:EncryptedElementType
176
177Terminate	 -> %sp:TerminateType
178
179ManageNameIDResponse	 -> %sp:StatusResponseType
180
181LogoutRequest	 -> %sp:LogoutRequestType
182%LogoutRequestType:	 base(sp:RequestAbstractType)
183  sa:BaseID?
184  sa:NameID?
185  sa:EncryptedID?
186  sp:SessionIndex*
187  @Reason?	 -> %xs:string
188  @NotOnOrAfter?	 -> %xs:dateTime
189  ;
190
191SessionIndex	 -> %xs:string
192
193LogoutResponse	 -> %sp:StatusResponseType
194
195NameIDMappingRequest	 -> %sp:NameIDMappingRequestType
196%NameIDMappingRequestType:	 base(sp:RequestAbstractType)
197  sa:BaseID?
198  sa:NameID?
199  sa:EncryptedID?
200  sp:NameIDPolicy
201  ;
202
203NameIDMappingResponse	 -> %sp:NameIDMappingResponseType
204%NameIDMappingResponseType:	 base(sp:StatusResponseType)
205  sa:NameID?
206  sa:EncryptedID?
207  ;
208
209#EOF
210