source: wsdl/abac_types.xsd @ 132440f

axis_examplecompt_changesinfo-opsversion-3.01version-3.02
Last change on this file since 132440f was e77c86e, checked in by Ted Faber <faber@…>, 14 years ago

get rid of faber

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