source: wsdl/abac_types.xsd @ 9fea17b

axis_examplecompt_changesinfo-opsversion-3.01version-3.02
Last change on this file since 9fea17b was 3eefc2d, checked in by Jay Jacobs <Jay.Jacobs@…>, 15 years ago

Modified for initial url boostrapping.

  • Property mode set to 100644
File size: 11.1 KB
Line 
1<?xml version="1.0"?>
2<xsd:schema targetNamespace="http://www.isi.edu/faber/abac_types"
3  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4  xmlns:tns="http://www.isi.edu/faber/abac_types"
5  xmlns:xsd1="http://www.isi.edu/faber/fedd_types"
6  xmlns="http://www.w3.org/2000/10/XMLSchema">
7
8  <xsd:annotation>
9    <xsd:documentation xml:lang="en">
10      Trust negotiation schema for the NAI Labs ABAC Project.
11      Copyright 2002 Networks Associates Technologies, Inc.
12      All rights reserved.
13    </xsd:documentation>
14  </xsd:annotation> 
15   
16  <xsd:complexType name="negotiationType">
17    <xsd:sequence>
18      <!-- the ABAC Message converted into WSDL types -->
19      <xsd:element name="message" type="tns:messageType"
20        minOccurs="1" maxOccurs="1"/>
21      <!-- the context id and the two negotiator urls if known-->
22      <xsd:element name="contextSource" type="tns:contextInfo"/>
23      <xsd:element name="contextDest" type="tns:contextInfo"/>
24      <xsd:element name="selfURL" type="xsd:string"/>
25      <xsd:element name="oppoURL" type="xsd:string"/>
26    </xsd:sequence>
27  </xsd:complexType>
28
29  <xsd:complexType name="observationType">
30    <xsd:choice>
31      <!-- TBD: remove simple trust target node becuase it's a node op -->
32      <xsd:element name="SimpleTTNode" type="tns:simpleTTNodeType"/>
33      <xsd:element name="NodeOp" type="tns:nodeOpType"/>
34      <xsd:element name="EdgeOp" type="tns:edgeOpType"/>
35      <xsd:element name="Message" type="tns:messageType"/>
36      <xsd:element name="Update" type="tns:updateType"/>
37    </xsd:choice>
38    <xsd:attribute name="count" type="xsd:decimal"/>
39  </xsd:complexType>
40 
41  <xsd:complexType name="negotiationRequest">
42    <xsd:sequence>
43      <xsd:element name="context" type="tns:contextInfo"/>
44      <xsd:element name="peerURL" type="xsd:string"/>
45      <xsd:element name="peerContext" type="tns:contextInfo"/>
46      <xsd:element name="selfURL" type="xsd:string"/>
47      <xsd:element name="goal" type="xsd:string"/>
48    </xsd:sequence>
49  </xsd:complexType>
50
51  <xsd:complexType name="negotiationResult">
52    <xsd:sequence>
53      <xsd:element name="goal" type="xsd:string"/>
54      <xsd:element name="result" type="xsd:string"/>
55      <xsd:element name="provenance" type="xsd:string"
56        minOccurs="0" maxOccurs="1"/>
57    </xsd:sequence>
58  </xsd:complexType>
59
60  <xsd:complexType name="discoveryType">
61    <xsd:sequence>
62      <xsd:element name="subject" type="tns:simpleRoleType"/>
63      <xsd:element name="result" type="tns:credentialSet"/>
64    </xsd:sequence>
65  </xsd:complexType>
66
67  <!--Context info can be: the context data, a file pointing to the data, or
68        a uid handle to the data-->
69  <xsd:complexType name="contextInfo">
70    <xsd:choice>
71      <xsd:element name="context" type="tns:negotiationContextType"/>
72      <xsd:element name="contextFile" type="xsd:string"/>
73      <xsd:element name="contextID" type="xsd:string"/>
74    </xsd:choice>
75    <xsd:element name="peerUrl" type="xsd:string"/>
76  </xsd:complexType>
77
78  <xsd:complexType name="negotiationContextType">
79    <xsd:sequence>
80      <!-- Who am I -->
81      <xsd:element name="self" type="xsd:string"
82        minOccurs="1" maxOccurs="1"/>
83      <!-- Who is my opponent -->
84      <xsd:element name="peer" type="xsd:string"
85        minOccurs="0" maxOccurs="1"/>
86      <!-- What strategy for graph satisfaction do I use -->
87      <!-- If this is omitted then the factory uses the default -->
88      <xsd:element name="strategy" type="xsd:string"
89        minOccurs="0" maxOccurs="1"/>
90      <!-- My credential frontiers (if omitted they need to be added) -->
91      <xsd:element name="frontier" type="tns:frontier"
92        minOccurs="0" maxOccurs="1"/>
93      <!-- My opponents/discovered credential evidence (optional) -->
94      <xsd:element name="oppoCache" type="tns:credentialSet"
95        minOccurs="0" maxOccurs="1"/>
96    </xsd:sequence>
97  </xsd:complexType>
98
99  <xsd:complexType name="frontier">
100    <xsd:sequence>
101      <xsd:element name="oppoCache" type="tns:credentialSet"
102        minOccurs="0" maxOccurs="unbounded"/>
103      <xsd:element name="issuerTracesAll" type="tns:roleSet"
104        minOccurs="0" maxOccurs="unbounded"/>
105      <xsd:element name="issuerTracesDef" type="tns:roleSet"
106        minOccurs="0" maxOccurs="unbounded"/>
107      <xsd:element name="subjectTraceable" type="tns:roleSet"
108        minOccurs="0" maxOccurs="unbounded"/>
109    </xsd:sequence>
110  </xsd:complexType>
111
112  <xsd:complexType name="weightTable">
113    <xsd:sequence>
114      <xsd:element name="entry" type="tns:weightEntry"
115        minOccurs="0" maxOccurs="unbounded"/>
116    </xsd:sequence>
117  </xsd:complexType>
118
119  <xsd:complexType name="weightEntry">
120    <xsd:sequence>
121      <xsd:element name="key" type="tns:entityType"/>
122      <xsd:element name="value" type="xsd:float"
123        minOccurs="0" maxOccurs="1"/>
124    </xsd:sequence>
125  </xsd:complexType>
126
127  <xsd:complexType name="accessControlPolicy">
128    <xsd:sequence>
129      <xsd:element name="acFact" type="tns:accessControlFact"
130        minOccurs="0" maxOccurs="unbounded"/>
131    </xsd:sequence>
132  </xsd:complexType>
133
134  <xsd:complexType name="accessControlFact">
135    <xsd:sequence>
136      <xsd:element name="credential" type="xsd:string"/>
137      <xsd:element name="requirement" type="tns:entityType"/>
138    </xsd:sequence>
139  </xsd:complexType>
140
141  <xsd:complexType name="acknowledgementPolicy">
142    <xsd:sequence>
143      <xsd:element name="ackFact" type="tns:accessControlFact"
144        minOccurs="0" maxOccurs="unbounded"/>
145    </xsd:sequence>
146  </xsd:complexType>
147
148  <xsd:complexType name="acknowledgementPolicyFact">
149    <xsd:sequence>
150      <xsd:element name="credential" type="xsd:string"/>
151      <xsd:element name="field" type="xsd:string"/>
152      <xsd:element name="value" type="xsd:string"
153        minOccurs="0" maxOccurs="1"/>
154      <xsd:element name="requirement" type="tns:entityType"/>
155    </xsd:sequence>
156  </xsd:complexType>
157
158  <xsd:complexType name="roleSet">
159    <xsd:sequence>
160      <xsd:element name="credential" type="tns:simpleRoleType"
161        minOccurs="0" maxOccurs="unbounded"/>
162    </xsd:sequence>
163  </xsd:complexType>
164
165  <xsd:complexType name="roleTraceability">
166    <xsd:sequence>
167      <xsd:element name="role" type="tns:simpleRoleType"
168        minOccurs="1" maxOccurs="1"/>
169      <xsd:element name="traceability" type="xsd:string"
170        minOccurs="1" maxOccurs="1"/>
171    </xsd:sequence>
172  </xsd:complexType>
173
174  <xsd:complexType name="credentialSet">
175    <xsd:sequence>
176      <xsd:element name="credential" type="xsd:string"
177        minOccurs="0" maxOccurs="unbounded"/>
178    </xsd:sequence>
179  </xsd:complexType>
180
181  <xsd:complexType name="updateRequest">
182    <xsd:sequence>
183      <xsd:element name="credential" type="xsd:string"
184        minOccurs="0" maxOccurs="unbounded"/>
185      <xsd:element name="traces" type="tns:roleTraceability"
186        minOccurs="0" maxOccurs="unbounded"/>
187      <xsd:element name="context" type="tns:contextInfo"
188        minOccurs="1" maxOccurs="1"/>
189    </xsd:sequence>
190  </xsd:complexType>
191
192  <xsd:complexType name="updateResults">
193    <xsd:sequence>
194      <xsd:element name="response" type="xsd:string"
195        minOccurs="0" maxOccurs="unbounded"/>
196    </xsd:sequence>
197  </xsd:complexType>
198
199  <xsd:complexType name="updateType">
200    <xsd:attribute name="value" type="xsd:string"/>
201  </xsd:complexType>
202
203  <xsd:complexType name="messageType">
204    <xsd:sequence>
205      <xsd:element name="EdgeOp" type="tns:edgeOpType" minOccurs="0" 
206        maxOccurs="unbounded"/>
207      <xsd:element name="NodeOp" type="tns:nodeOpType" minOccurs="0" 
208        maxOccurs="unbounded"/>
209      <xsd:element name="evidence" type="tns:evidenceType"/>
210    </xsd:sequence>
211  </xsd:complexType> 
212
213  <xsd:complexType name="simpleTTNodeType">
214    <xsd:sequence>
215      <xsd:element name="Goal"              type="tns:goalType"/>
216      <xsd:element name="SatisfactionState" type="xsd:string"/>
217      <xsd:element name="ProcessingState"   type="xsd:string"/>
218    </xsd:sequence>
219    <xsd:attribute name="type" type="xsd:string" use="optional"/>
220  </xsd:complexType>
221
222  <xsd:complexType name="nodeOpType">
223    <xsd:sequence>
224      <xsd:element name="TrustTarget"      type="tns:goalType"/>
225      <xsd:element name="ProcessingState"  type="xsd:string"/>
226    </xsd:sequence>
227    <xsd:attribute name="type" type="xsd:string" use="optional"/>
228  </xsd:complexType>
229
230  <xsd:complexType name="edgeOpType">
231    <xsd:sequence>
232      <xsd:element name="Parent"           type="tns:goalType"/>
233      <xsd:element name="Child"            type="tns:goalType"/>
234      <xsd:element name="ProcessingState"  type="xsd:string"/>
235    </xsd:sequence>
236    <xsd:attribute name="type" type="xsd:string"/>
237    <xsd:attribute name="newChild" type="xsd:date"/>
238  </xsd:complexType>
239
240  <xsd:complexType name="goalType">
241    <xsd:sequence>
242      <xsd:element name="Verifier"   type="tns:principalType"/>
243      <xsd:choice>
244        <xsd:element name="TrustTarget" type="tns:entityType"/>
245        <xsd:element name="LinkingTarget" type="xsd:string"/>
246      </xsd:choice>
247      <xsd:element name="Subject"   type="tns:entityType"/>
248      <!-- The type string confirms whether this is a LinkingGoal or TT -->
249      <xsd:element name="Type"     type="xsd:string"/>
250    </xsd:sequence>
251  </xsd:complexType>
252
253  <!-- Here are the new credential descriptions -->
254
255  <xsd:complexType name="entityType">
256    <xsd:choice>
257      <xsd:element name="principal" type="tns:principalType"/>
258      <xsd:element name="role" type="tns:simpleRoleType"/>
259      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
260      <xsd:element name="intersection" type="tns:intersectionType"/>
261    </xsd:choice>
262  </xsd:complexType>
263
264  <xsd:complexType name="roleType">
265    <xsd:choice>
266      <xsd:element name="role" type="tns:simpleRoleType"/>
267      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
268    </xsd:choice>
269  </xsd:complexType>
270
271  <!-- This is a copy of fedd's IDType, included in case we have to expand or
272       restrict it. XSD isn't wonderful at expressing these kinds of synonyms
273       between complex types. -->
274  <xsd:complexType name="principalType">
275    <xsd:choice>
276      <xsd:element name="uuid" type="xsd:base64Binary"/>
277      <xsd:element name="fedid" type="xsd:base64Binary"/>
278      <xsd:element name="uri" type="xsd:string"/>
279      <xsd:element name="localname" type="xsd:string"/>
280      <xsd:element name="kerberosUsername" type="xsd:string"/>
281    </xsd:choice>
282  </xsd:complexType>
283
284  <xsd:complexType name="simpleRoleType">
285    <xsd:sequence>
286      <xsd:element name="principal" type="tns:principalType"/>
287      <xsd:element name="rolename" type="xsd:string"/>
288    </xsd:sequence>
289  </xsd:complexType>
290
291  <xsd:complexType name="linkedRoleType">
292    <xsd:sequence>
293      <xsd:element name="linkingrole" type="tns:simpleRoleType"/>
294      <xsd:element name="rolename" type="xsd:string"/>
295    </xsd:sequence>
296  </xsd:complexType>
297
298  <xsd:complexType name="intersectionType">
299    <xsd:sequence>
300      <xsd:element name="role" type="tns:roleType" minOccurs="2" 
301        maxOccurs="unbounded"/>
302    </xsd:sequence>
303  </xsd:complexType>
304
305  <xsd:complexType name="credentialType">
306    <xsd:sequence>
307      <xsd:element name="role" type="tns:roleType"/>
308      <xsd:element name="requirement" type="tns:entityType"/>
309    </xsd:sequence>
310  </xsd:complexType>
311
312  <xsd:complexType name="evidenceType">
313    <xsd:sequence>
314      <xsd:element name="credential" type="tns:credentialType" minOccurs="1"
315        maxOccurs="unbounded"/>
316    </xsd:sequence>
317  </xsd:complexType>
318
319</xsd:schema>
Note: See TracBrowser for help on using the repository browser.