source: fedd/wsdl/abac_types.xsd @ b57df44

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

Initial protoype. Negotiation context can be used to
start a new negotiation or reuse credentials previously
discovered.

  • Property mode set to 100644
File size: 8.4 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="negotiationContext">
35    <xsd:sequence>
36      <!-- Who am I -->
37      <xsd:element name="self" type="xsd:string"
38        minOccurs="1" maxOccurs="1"/>
39      <!-- Who is my opponent -->
40      <xsd:element name="peer" type="xsd:string"
41        minOccurs="1" maxOccurs="1"/>
42      <!-- What strategy for graph satisfaction do I use -->
43      <xsd:element name="strategy" type="xsd:string"
44        minOccurs="1" maxOccurs="1"/>
45      <!-- My creddential frontiers -->
46      <xsd:element name="frontier" type="tns:frontier"
47        minOccurs="1" maxOccurs="1"/>
48      <!-- My opponents credential evidence -->
49      <xsd:element name="oppoCache" type="tns:credentialSet"
50        minOccurs="1" maxOccurs="1"/>
51    </xsd:sequence>
52  </xsd:complexType>
53
54  <xsd:complexType name="frontier">
55    <xsd:sequence>
56      <xsd:element name="oppoCache" type="tns:credentialSet"
57        minOccurs="0" maxOccurs="unbounded"/>
58      <xsd:element name="issuerTracesAll" type="tns:roleSet"
59        minOccurs="0" maxOccurs="unbounded"/>
60      <xsd:element name="issuerTracesDef" type="tns:roleSet"
61        minOccurs="0" maxOccurs="unbounded"/>
62      <xsd:element name="subjectTraceable" type="tns:roleSet"
63        minOccurs="0" maxOccurs="unbounded"/>
64    </xsd:sequence>
65  </xsd:complexType>
66
67  <xsd:complexType name="weightTable">
68    <xsd:sequence>
69      <xsd:element name="entry" type="tns:weightEntry"
70        minOccurs="0" maxOccurs="unbounded"/>
71    </xsd:sequence>
72  </xsd:complexType>
73
74  <xsd:complexType name="weightEntry">
75    <xsd:sequence>
76      <xsd:element name="key" type="tns:entityType"
77        minOccurs="1" maxOccurs="1"/>
78      <xsd:element name="value" type="xsd:float"
79        minOccurs="0" maxOccurs="1"/>
80    </xsd:sequence>
81  </xsd:complexType>
82
83  <xsd:complexType name="accessControlPolicy">
84    <xsd:sequence>
85      <xsd:element name="acFact" type="tns:accessControlFact"
86        minOccurs="0" maxOccurs="unbounded"/>
87    </xsd:sequence>
88  </xsd:complexType>
89
90  <xsd:complexType name="accessControlFact">
91    <xsd:sequence>
92      <xsd:element name="credential" type="xsd:string"
93        minOccurs="1" maxOccurs="1"/>
94      <xsd:element name="requirement" type="tns:entityType"
95        minOccurs="1" maxOccurs="1"/>
96    </xsd:sequence>
97  </xsd:complexType>
98
99  <xsd:complexType name="acknowledgementPolicy">
100    <xsd:sequence>
101      <xsd:element name="ackFact" type="tns:accessControlFact"
102        minOccurs="0" maxOccurs="unbounded"/>
103    </xsd:sequence>
104  </xsd:complexType>
105
106  <xsd:complexType name="acknowledgementPolicyFact">
107    <xsd:sequence>
108      <xsd:element name="credential" type="xsd:string"
109        minOccurs="1" maxOccurs="1"/>
110      <xsd:element name="field" type="xsd:string"
111        minOccurs="0" maxOccurs="1"/>
112      <xsd:element name="value" type="xsd:string"
113        minOccurs="0" maxOccurs="1"/>
114      <xsd:element name="requirement" type="tns:entityType"
115        minOccurs="1" maxOccurs="1"/>
116    </xsd:sequence>
117  </xsd:complexType>
118
119  <xsd:complexType name="roleSet">
120    <xsd:sequence>
121      <xsd:element name="credential" type="tns:simpleRoleType"
122        minOccurs="0" maxOccurs="unbounded"/>
123    </xsd:sequence>
124  </xsd:complexType>
125
126  <xsd:complexType name="credentialSet">
127    <xsd:sequence>
128      <xsd:element name="credential" type="xsd:string"
129        minOccurs="0" maxOccurs="unbounded"/>
130    </xsd:sequence>
131  </xsd:complexType>
132
133  <xsd:complexType name="updateType">
134    <xsd:attribute name="value" type="xsd:string"/>
135  </xsd:complexType>
136
137  <xsd:complexType name="messageType">
138    <xsd:sequence>
139      <xsd:element name="EdgeOp" type="tns:edgeOpType" minOccurs="0" 
140        maxOccurs="unbounded"/>
141      <xsd:element name="NodeOp" type="tns:nodeOpType" minOccurs="0" 
142        maxOccurs="unbounded"/>
143      <xsd:element name="evidence" type="tns:evidenceType"/>
144    </xsd:sequence>
145  </xsd:complexType> 
146
147  <xsd:complexType name="simpleTTNodeType">
148    <xsd:sequence>
149      <xsd:element name="Goal"              type="tns:goalType"/>
150      <xsd:element name="SatisfactionState" type="xsd:string"/>
151      <xsd:element name="ProcessingState"   type="xsd:string"/>
152    </xsd:sequence>
153    <xsd:attribute name="type" type="xsd:string" use="optional"/>
154  </xsd:complexType>
155
156  <xsd:complexType name="nodeOpType">
157    <xsd:sequence>
158      <xsd:element name="TrustTarget"      type="tns:goalType"/>
159      <xsd:element name="ProcessingState"  type="xsd:string"/>
160    </xsd:sequence>
161    <xsd:attribute name="type" type="xsd:string" use="optional"/>
162  </xsd:complexType>
163
164  <xsd:complexType name="edgeOpType">
165    <xsd:sequence>
166      <xsd:element name="Parent"           type="tns:goalType"/>
167      <xsd:element name="Child"            type="tns:goalType"/>
168      <xsd:element name="ProcessingState"  type="xsd:string"/>
169    </xsd:sequence>
170    <xsd:attribute name="type" type="xsd:string"/>
171    <xsd:attribute name="newChild" type="xsd:date"/>
172  </xsd:complexType>
173
174  <xsd:complexType name="goalType">
175    <xsd:sequence>
176      <xsd:element name="Verifier"   type="tns:principalType"/>
177      <xsd:element name="Target" type="tns:entityType"/>
178      <xsd:element name="Subject"   type="tns:principalType"/>
179    </xsd:sequence>
180  </xsd:complexType>
181
182  <!-- Here are the new credential descriptions -->
183
184  <xsd:complexType name="entityType">
185    <xsd:choice>
186      <xsd:element name="principal" type="tns:principalType"/>
187      <xsd:element name="role" type="tns:simpleRoleType"/>
188      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
189      <xsd:element name="intersection" type="tns:intersectionType"/>
190    </xsd:choice>
191  </xsd:complexType>
192
193  <xsd:complexType name="roleType">
194    <xsd:choice>
195      <xsd:element name="role" type="tns:simpleRoleType"/>
196      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
197      <xsd:element name="intersection" type="tns:intersectionType"/>
198    </xsd:choice>
199  </xsd:complexType>
200
201  <!-- This is a copy of fedd's IDType, included in case we have to expand or
202       restrict it. XSD isn't wonderful at expressing these kinds of synonyms
203       between complex types. -->
204  <xsd:complexType name="principalType">
205    <xsd:choice>
206      <xsd:element name="uuid" type="xsd:base64Binary"/>
207      <xsd:element name="fedid" type="xsd:base64Binary"/>
208      <xsd:element name="uri" type="xsd:string"/>
209      <xsd:element name="localname" type="xsd:string"/>
210      <xsd:element name="kerberosUsername" type="xsd:string"/>
211    </xsd:choice>
212  </xsd:complexType>
213
214  <xsd:complexType name="simpleRoleType">
215    <xsd:sequence>
216      <xsd:element name="principal" type="tns:principalType"/>
217      <xsd:element name="rolename" type="xsd:string"/>
218    </xsd:sequence>
219  </xsd:complexType>
220
221  <xsd:complexType name="linkedRoleType">
222    <xsd:sequence>
223      <xsd:element name="linkingrole" type="tns:simpleRoleType"/>
224      <xsd:element name="rolename" type="xsd:string"/>
225    </xsd:sequence>
226  </xsd:complexType>
227
228  <xsd:complexType name="intersectionType">
229    <xsd:sequence>
230      <xsd:element name="role" type="tns:roleType" minOccurs="2" 
231        maxOccurs="unbounded"/>
232    </xsd:sequence>
233  </xsd:complexType>
234
235  <xsd:complexType name="credentialType">
236    <xsd:sequence>
237      <xsd:element name="role" type="tns:roleType"/>
238      <xsd:element name="requirement" type="tns:entityType"/>
239    </xsd:sequence>
240  </xsd:complexType>
241
242  <xsd:complexType name="evidenceType">
243    <xsd:sequence>
244      <xsd:element name="credential" type="tns:credentialType" minOccurs="1"
245        maxOccurs="unbounded"/>
246    </xsd:sequence>
247  </xsd:complexType>
248
249</xsd:schema>
Note: See TracBrowser for help on using the repository browser.