source: wsdl/abac_types.xsd @ 2bc7b76

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

Changed negotiationContext to negotiationContextType and made most of
the elements optional.

  • Property mode set to 100644
File size: 10.5 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:negotiationContextType"/>
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="negotiationContextType">
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        minOccurs="0" maxOccurs="1"/>
75      <!-- What strategy for graph satisfaction do I use -->
76      <!-- If this is omitted then the factory uses the default -->
77      <xsd:element name="strategy" type="xsd:string"
78        minOccurs="0" maxOccurs="1"/>
79      <!-- My credential frontiers (if omitted they need to be added) -->
80      <xsd:element name="frontier" type="tns:frontier"
81        minOccurs="0" maxOccurs="1"/>
82      <!-- My opponents/discovered credential evidence (optional) -->
83      <xsd:element name="oppoCache" type="tns:credentialSet"
84        minOccurs="0" maxOccurs="1"/>
85    </xsd:sequence>
86  </xsd:complexType>
87
88  <xsd:complexType name="frontier">
89    <xsd:sequence>
90      <xsd:element name="oppoCache" type="tns:credentialSet"
91        minOccurs="0" maxOccurs="unbounded"/>
92      <xsd:element name="issuerTracesAll" type="tns:roleSet"
93        minOccurs="0" maxOccurs="unbounded"/>
94      <xsd:element name="issuerTracesDef" type="tns:roleSet"
95        minOccurs="0" maxOccurs="unbounded"/>
96      <xsd:element name="subjectTraceable" type="tns:roleSet"
97        minOccurs="0" maxOccurs="unbounded"/>
98    </xsd:sequence>
99  </xsd:complexType>
100
101  <xsd:complexType name="weightTable">
102    <xsd:sequence>
103      <xsd:element name="entry" type="tns:weightEntry"
104        minOccurs="0" maxOccurs="unbounded"/>
105    </xsd:sequence>
106  </xsd:complexType>
107
108  <xsd:complexType name="weightEntry">
109    <xsd:sequence>
110      <xsd:element name="key" type="tns:entityType"/>
111      <xsd:element name="value" type="xsd:float"
112        minOccurs="0" maxOccurs="1"/>
113    </xsd:sequence>
114  </xsd:complexType>
115
116  <xsd:complexType name="accessControlPolicy">
117    <xsd:sequence>
118      <xsd:element name="acFact" type="tns:accessControlFact"
119        minOccurs="0" maxOccurs="unbounded"/>
120    </xsd:sequence>
121  </xsd:complexType>
122
123  <xsd:complexType name="accessControlFact">
124    <xsd:sequence>
125      <xsd:element name="credential" type="xsd:string"/>
126      <xsd:element name="requirement" type="tns:entityType"/>
127    </xsd:sequence>
128  </xsd:complexType>
129
130  <xsd:complexType name="acknowledgementPolicy">
131    <xsd:sequence>
132      <xsd:element name="ackFact" type="tns:accessControlFact"
133        minOccurs="0" maxOccurs="unbounded"/>
134    </xsd:sequence>
135  </xsd:complexType>
136
137  <xsd:complexType name="acknowledgementPolicyFact">
138    <xsd:sequence>
139      <xsd:element name="credential" type="xsd:string"/>
140      <xsd:element name="field" type="xsd:string"/>
141      <xsd:element name="value" type="xsd:string"
142        minOccurs="0" maxOccurs="1"/>
143      <xsd:element name="requirement" type="tns:entityType"/>
144    </xsd:sequence>
145  </xsd:complexType>
146
147  <xsd:complexType name="roleSet">
148    <xsd:sequence>
149      <xsd:element name="credential" type="tns:simpleRoleType"
150        minOccurs="0" maxOccurs="unbounded"/>
151    </xsd:sequence>
152  </xsd:complexType>
153
154  <xsd:complexType name="roleTraceability">
155    <xsd:sequence>
156      <xsd:element name="role" type="tns:simpleRoleType"
157        minOccurs="1" maxOccurs="1"/>
158      <xsd:element name="traceability" type="xsd:string"
159        minOccurs="1" maxOccurs="1"/>
160    </xsd:sequence>
161  </xsd:complexType>
162
163  <xsd:complexType name="credentialSet">
164    <xsd:sequence>
165      <xsd:element name="credential" type="xsd:string"
166        minOccurs="0" maxOccurs="unbounded"/>
167    </xsd:sequence>
168  </xsd:complexType>
169
170  <xsd:complexType name="updateRequest">
171    <xsd:sequence>
172      <xsd:element name="credential" type="xsd:string"
173        minOccurs="0" maxOccurs="unbounded"/>
174      <xsd:element name="traces" type="tns:roleTraceability"
175        minOccurs="0" maxOccurs="unbounded"/>
176      <xsd:element name="context" type="tns:contextInfo"
177        minOccurs="1" maxOccurs="1"/>
178    </xsd:sequence>
179  </xsd:complexType>
180
181  <xsd:complexType name="updateResults">
182    <xsd:sequence>
183      <xsd:element name="response" type="xsd:string"
184        minOccurs="0" maxOccurs="unbounded"/>
185    </xsd:sequence>
186  </xsd:complexType>
187
188  <xsd:complexType name="updateType">
189    <xsd:attribute name="value" type="xsd:string"/>
190  </xsd:complexType>
191
192  <xsd:complexType name="messageType">
193    <xsd:sequence>
194      <xsd:element name="EdgeOp" type="tns:edgeOpType" minOccurs="0" 
195        maxOccurs="unbounded"/>
196      <xsd:element name="NodeOp" type="tns:nodeOpType" minOccurs="0" 
197        maxOccurs="unbounded"/>
198      <xsd:element name="evidence" type="tns:evidenceType"/>
199    </xsd:sequence>
200  </xsd:complexType> 
201
202  <xsd:complexType name="simpleTTNodeType">
203    <xsd:sequence>
204      <xsd:element name="Goal"              type="tns:goalType"/>
205      <xsd:element name="SatisfactionState" type="xsd:string"/>
206      <xsd:element name="ProcessingState"   type="xsd:string"/>
207    </xsd:sequence>
208    <xsd:attribute name="type" type="xsd:string" use="optional"/>
209  </xsd:complexType>
210
211  <xsd:complexType name="nodeOpType">
212    <xsd:sequence>
213      <xsd:element name="TrustTarget"      type="tns:goalType"/>
214      <xsd:element name="ProcessingState"  type="xsd:string"/>
215    </xsd:sequence>
216    <xsd:attribute name="type" type="xsd:string" use="optional"/>
217  </xsd:complexType>
218
219  <xsd:complexType name="edgeOpType">
220    <xsd:sequence>
221      <xsd:element name="Parent"           type="tns:goalType"/>
222      <xsd:element name="Child"            type="tns:goalType"/>
223      <xsd:element name="ProcessingState"  type="xsd:string"/>
224    </xsd:sequence>
225    <xsd:attribute name="type" type="xsd:string"/>
226    <xsd:attribute name="newChild" type="xsd:date"/>
227  </xsd:complexType>
228
229  <xsd:complexType name="goalType">
230    <xsd:sequence>
231      <xsd:element name="Verifier"   type="tns:principalType"/>
232      <xsd:choice>
233        <xsd:element name="TrustTarget" type="tns:entityType"/>
234        <xsd:element name="LinkingTarget" type="xsd:string"/>
235      </xsd:choice>
236      <xsd:element name="Subject"   type="tns:entityType"/>
237      <!-- The type string confirms whether this is a LinkingGoal or TT -->
238      <xsd:element name="Type"     type="xsd:string"/>
239    </xsd:sequence>
240  </xsd:complexType>
241
242  <!-- Here are the new credential descriptions -->
243
244  <xsd:complexType name="entityType">
245    <xsd:choice>
246      <xsd:element name="principal" type="tns:principalType"/>
247      <xsd:element name="role" type="tns:simpleRoleType"/>
248      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
249      <xsd:element name="intersection" type="tns:intersectionType"/>
250    </xsd:choice>
251  </xsd:complexType>
252
253  <xsd:complexType name="roleType">
254    <xsd:choice>
255      <xsd:element name="role" type="tns:simpleRoleType"/>
256      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
257    </xsd:choice>
258  </xsd:complexType>
259
260  <!-- This is a copy of fedd's IDType, included in case we have to expand or
261       restrict it. XSD isn't wonderful at expressing these kinds of synonyms
262       between complex types. -->
263  <xsd:complexType name="principalType">
264    <xsd:choice>
265      <xsd:element name="uuid" type="xsd:base64Binary"/>
266      <xsd:element name="fedid" type="xsd:base64Binary"/>
267      <xsd:element name="uri" type="xsd:string"/>
268      <xsd:element name="localname" type="xsd:string"/>
269      <xsd:element name="kerberosUsername" type="xsd:string"/>
270    </xsd:choice>
271  </xsd:complexType>
272
273  <xsd:complexType name="simpleRoleType">
274    <xsd:sequence>
275      <xsd:element name="principal" type="tns:principalType"/>
276      <xsd:element name="rolename" type="xsd:string"/>
277    </xsd:sequence>
278  </xsd:complexType>
279
280  <xsd:complexType name="linkedRoleType">
281    <xsd:sequence>
282      <xsd:element name="linkingrole" type="tns:simpleRoleType"/>
283      <xsd:element name="rolename" type="xsd:string"/>
284    </xsd:sequence>
285  </xsd:complexType>
286
287  <xsd:complexType name="intersectionType">
288    <xsd:sequence>
289      <xsd:element name="role" type="tns:roleType" minOccurs="2" 
290        maxOccurs="unbounded"/>
291    </xsd:sequence>
292  </xsd:complexType>
293
294  <xsd:complexType name="credentialType">
295    <xsd:sequence>
296      <xsd:element name="role" type="tns:roleType"/>
297      <xsd:element name="requirement" type="tns:entityType"/>
298    </xsd:sequence>
299  </xsd:complexType>
300
301  <xsd:complexType name="evidenceType">
302    <xsd:sequence>
303      <xsd:element name="credential" type="tns:credentialType" minOccurs="1"
304        maxOccurs="unbounded"/>
305    </xsd:sequence>
306  </xsd:complexType>
307
308</xsd:schema>
Note: See TracBrowser for help on using the repository browser.