source: wsdl/abac_types.xsd @ e794984

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

Modified the types to match the fedd python machinery

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