source: wsdl/abac_types.xsd @ a31b94d

axis_examplecompt_changesinfo-opsversion-2.00version-3.01version-3.02
Last change on this file since a31b94d was b12e315, checked in by Jay Jacobs <Jay.Jacobs@…>, 15 years ago

Modified GoalType? to support LinkingGoal? and TrustTarget? since those are the
concrete Goal implementations in the code.

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