source: fedd/wsdl/abac_types.xsd @ cc58813

axis_examplecompt_changesinfo-opsversion-1.30version-2.00version-3.01version-3.02
Last change on this file since cc58813 was 5ffd5b9, checked in by Ted Faber <faber@…>, 15 years ago

Reinsert Principal Type class as a clone of IDType. Icky, but XSD doesn't make complexType synonyms easy.

  • Property mode set to 100644
File size: 5.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="updateType">
35    <xsd:attribute name="value" type="xsd:string"/>
36  </xsd:complexType>
37
38  <xsd:complexType name="messageType">
39    <xsd:sequence>
40      <xsd:element name="EdgeOp" type="tns:edgeOpType" minOccurs="0" 
41        maxOccurs="unbounded"/>
42      <xsd:element name="NodeOp" type="tns:nodeOpType" minOccurs="0" 
43        maxOccurs="unbounded"/>
44      <xsd:element name="evidence" type="tns:evidenceType"/>
45    </xsd:sequence>
46  </xsd:complexType> 
47
48  <xsd:complexType name="simpleTTNodeType">
49    <xsd:sequence>
50      <xsd:element name="Goal"              type="tns:goalType"/>
51      <xsd:element name="SatisfactionState" type="xsd:string"/>
52      <xsd:element name="ProcessingState"   type="xsd:string"/>
53    </xsd:sequence>
54    <xsd:attribute name="type" type="xsd:string" use="optional"/>
55  </xsd:complexType>
56
57  <xsd:complexType name="nodeOpType">
58    <xsd:sequence>
59      <xsd:element name="TrustTarget"      type="tns:goalType"/>
60      <xsd:element name="ProcessingState"  type="xsd:string"/>
61    </xsd:sequence>
62    <xsd:attribute name="type" type="xsd:string" use="optional"/>
63  </xsd:complexType>
64
65  <xsd:complexType name="edgeOpType">
66    <xsd:sequence>
67      <xsd:element name="Parent"           type="tns:goalType"/>
68      <xsd:element name="Child"            type="tns:goalType"/>
69      <xsd:element name="ProcessingState"  type="xsd:string"/>
70    </xsd:sequence>
71    <xsd:attribute name="type" type="xsd:string"/>
72    <xsd:attribute name="newChild" type="xsd:date"/>
73  </xsd:complexType>
74
75  <xsd:complexType name="goalType">
76    <xsd:sequence>
77      <xsd:element name="Verifier"   type="tns:principalType"/>
78      <xsd:element name="Target" type="tns:entityType"/>
79      <xsd:element name="Subject"   type="tns:principalType"/>
80    </xsd:sequence>
81  </xsd:complexType>
82
83  <!-- Here are the new credential descriptions -->
84
85  <xsd:complexType name="entityType">
86    <xsd:choice>
87      <xsd:element name="principal" type="tns:principalType"/>
88      <xsd:element name="role" type="tns:simpleRoleType"/>
89      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
90      <xsd:element name="intersection" type="tns:intersectionType"/>
91    </xsd:choice>
92  </xsd:complexType>
93
94  <xsd:complexType name="roleType">
95    <xsd:choice>
96      <xsd:element name="role" type="tns:simpleRoleType"/>
97      <xsd:element name="linkedrole" type="tns:linkedRoleType"/>
98      <xsd:element name="intersection" type="tns:intersectionType"/>
99    </xsd:choice>
100  </xsd:complexType>
101
102  <!-- This is a copy of fedd's IDType, included in case we have to expand or
103       restrict it. XSD isn't wonderful at expressing these kinds of synonyms
104       between complex types. -->
105  <xsd:complexType name="principalType">
106    <xsd:choice>
107      <xsd:element name="uuid" type="xsd:base64Binary"/>
108      <xsd:element name="fedid" type="xsd:base64Binary"/>
109      <xsd:element name="uri" type="xsd:string"/>
110      <xsd:element name="localname" type="xsd:string"/>
111      <xsd:element name="kerberosUsername" type="xsd:string"/>
112    </xsd:choice>
113  </xsd:complexType>
114
115  <xsd:complexType name="simpleRoleType">
116    <xsd:sequence>
117      <xsd:element name="principal" type="tns:principalType"/>
118      <xsd:element name="rolename" type="xsd:string"/>
119    </xsd:sequence>
120  </xsd:complexType>
121
122  <xsd:complexType name="linkedRoleType">
123    <xsd:sequence>
124      <xsd:element name="linkingrole" type="tns:simpleRoleType"/>
125      <xsd:element name="rolename" type="xsd:string"/>
126    </xsd:sequence>
127  </xsd:complexType>
128
129  <xsd:complexType name="intersectionType">
130    <xsd:sequence>
131      <xsd:element name="role" type="tns:roleType" minOccurs="2" 
132        maxOccurs="unbounded"/>
133    </xsd:sequence>
134  </xsd:complexType>
135
136  <xsd:complexType name="credentialType">
137    <xsd:sequence>
138      <xsd:element name="role" type="tns:roleType"/>
139      <xsd:element name="requirement" type="tns:entityType"/>
140    </xsd:sequence>
141  </xsd:complexType>
142
143  <xsd:complexType name="evidenceType">
144    <xsd:sequence>
145      <xsd:element name="credential" type="tns:credentialType" minOccurs="1"
146        maxOccurs="unbounded"/>
147    </xsd:sequence>
148  </xsd:complexType>
149
150</xsd:schema>
Note: See TracBrowser for help on using the repository browser.