source: wsdl/topdl.xsd @ 1da6a23

axis_examplecompt_changesinfo-opsversion-2.00version-3.01version-3.02
Last change on this file since 1da6a23 was 9beaf7c, checked in by Ted Faber <faber@…>, 15 years ago

Testbed and segment objects and attributes on substrate

  • Property mode set to 100644
File size: 9.3 KB
Line 
1<?xml version="1.0"?>
2<xsd:schema targetNamespace="http://www.isi.edu/faber/topdl"
3  xmlns:tns="http://www.isi.edu/faber/topdl"
4  xmlns:fns="http://www.isi.edu/faber/fedd_types"
5  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
6  xmlns="http://www.w3.org/2000/10/XMLSchema">
7
8  <xsd:complexType name="attributeType">
9    <xsd:annotation>
10      <xsd:documentation>
11        A simple extension mechanism.  Most entities can have locally
12        understood attributes attached.
13      </xsd:documentation>
14    </xsd:annotation>
15    <xsd:sequence>
16      <xsd:element name="attribute" type="xsd:string"/>
17      <xsd:element name="value" type="xsd:string"/>
18    </xsd:sequence>
19  </xsd:complexType>
20
21  <xsd:simpleType name="kindType">
22    <xsd:annotation>
23      <xsd:documentation>
24        An indication of how requested networking capacity is measured.
25        This will undoubtably expand.
26      </xsd:documentation>
27    </xsd:annotation>
28    <xsd:restriction base="xsd:string">
29      <xsd:enumeration value="max"/>
30      <xsd:enumeration value="average"/>
31    </xsd:restriction>
32  </xsd:simpleType>
33
34  <xsd:complexType name="capacityType">
35    <xsd:annotation>
36      <xsd:documentation>
37        A strawman network capacity description for access negotiation.
38        This will come to include more and more interesting parameters.
39        Rate in kb/s.
40      </xsd:documentation>
41    </xsd:annotation>
42    <xsd:sequence>
43      <xsd:element name="rate" type="xsd:double"/>
44      <xsd:element name="kind" type="tns:kindType"/>
45    </xsd:sequence>
46  </xsd:complexType>
47
48  <xsd:complexType name="latencyType">
49    <xsd:annotation>
50      <xsd:documentation>
51        A strawman network latency description for access negotiation.
52        This will come to include more and more interesting parameters.  Time
53        is in msec.
54      </xsd:documentation>
55    </xsd:annotation>
56    <xsd:sequence>
57      <xsd:element name="time" type="xsd:double"/>
58      <xsd:element name="kind" type="tns:kindType"/>
59    </xsd:sequence>
60  </xsd:complexType>
61
62  <xsd:complexType name="substrateType">
63    <xsd:annotation>
64      <xsd:documentation>
65        Description of media through which elements can communicate
66      </xsd:documentation>
67    </xsd:annotation>
68    <xsd:sequence>
69      <xsd:element name="name" type="xsd:string"/>
70      <xsd:element name="capacity" type="tns:capacityType" 
71        minOccurs="0" maxOccurs="1"/>
72      <xsd:element name="latency" type="tns:latencyType" 
73        minOccurs="0" maxOccurs="1"/>
74      <xsd:element name="attribute" type="tns:attributeType" 
75        minOccurs="0" maxOccurs="unbounded"/>
76    </xsd:sequence>
77  </xsd:complexType>
78 
79  <xsd:complexType name="cpuType">
80    <xsd:annotation>
81      <xsd:documentation>
82        The CPU requirements of a computer or other entity.  The type is a
83        string for simplicity.  We may make this more complex later.
84      </xsd:documentation>
85    </xsd:annotation>
86    <xsd:sequence>
87      <xsd:element name="type" type="xsd:string"/>
88      <xsd:element name="attribute" type="tns:attributeType" 
89        minOccurs="0" maxOccurs="unbounded"/>
90    </xsd:sequence>
91    <xsd:attribute name="count" type="xsd:int" use="optional"/>
92  </xsd:complexType>
93
94  <xsd:simpleType name="persistenceType">
95    <xsd:annotation>
96      <xsd:documentation>
97        Description of how long storage is available
98      </xsd:documentation>
99    </xsd:annotation>
100    <xsd:restriction base="xsd:string">
101      <xsd:enumeration value="temporary"/>
102      <xsd:enumeration value="persistent"/>
103    </xsd:restriction>
104  </xsd:simpleType>
105
106  <xsd:complexType name="storageType">
107    <xsd:annotation>
108      <xsd:documentation>
109        The storage requirements of a computer or other entity.  The amount and
110        its persistance.  Amounts are in megabytes.  Should media be requires,
111        an attribute can be used.
112      </xsd:documentation>
113    </xsd:annotation>
114    <xsd:sequence>
115      <xsd:element name="amount" type="xsd:double"/>
116      <xsd:element name="persistence" type="tns:persistenceType"/>
117      <xsd:element name="attribute" type="tns:attributeType" 
118        minOccurs="0" maxOccurs="unbounded"/>
119    </xsd:sequence>
120  </xsd:complexType>
121
122  <xsd:complexType name="operatingsystemType">
123    <xsd:annotation>
124      <xsd:documentation>
125        The OS requirements of a computer or other element with an OS.
126      </xsd:documentation>
127    </xsd:annotation>
128    <xsd:sequence>
129      <xsd:element name="name" type="xsd:string"
130        minOccurs="0" maxOccurs="1"/>
131      <xsd:element name="version" type="xsd:string"
132        minOccurs="0" maxOccurs="1"/>
133      <xsd:element name="distribution" type="xsd:string"
134        minOccurs="0" maxOccurs="1"/>
135      <xsd:element name="distributionversion" type="xsd:string"
136        minOccurs="0" maxOccurs="1"/>
137      <xsd:element name="attribute" type="tns:attributeType" 
138        minOccurs="0" maxOccurs="unbounded"/>
139    </xsd:sequence>
140  </xsd:complexType>
141
142  <xsd:complexType name="softwareType">
143    <xsd:annotation>
144      <xsd:documentation>
145        An piece of software  and where to install it on an element.  Some
146        distribution types have the install location embedded in the format,
147        and for them the installation location is empty.
148      </xsd:documentation>
149    </xsd:annotation>
150    <xsd:sequence>
151      <xsd:element name="location" type="xsd:string"/>
152      <xsd:element name="install" type="xsd:string"
153        minOccurs="0" maxOccurs="1"/>
154      <xsd:element name="attribute" type="tns:attributeType" 
155        minOccurs="0" maxOccurs="unbounded"/>
156    </xsd:sequence>
157  </xsd:complexType>
158
159  <xsd:complexType name="interfaceType">
160    <xsd:annotation>
161      <xsd:documentation>
162        An interface to at least one communication substrate.  Details like
163        address assignement are in attributes.
164      </xsd:documentation>
165    </xsd:annotation>
166    <xsd:sequence>
167      <xsd:element name="substrate" type="xsd:string" minOccurs="1" 
168        maxOccurs="unbounded"/>
169      <xsd:element name="capacity" type="tns:capacityType" 
170        minOccurs="0" maxOccurs="1"/>
171      <xsd:element name="latency" type="tns:latencyType" 
172        minOccurs="0" maxOccurs="1"/>
173      <xsd:element name="attribute" type="tns:attributeType" 
174        minOccurs="0" maxOccurs="unbounded"/>
175    </xsd:sequence>
176  </xsd:complexType>
177
178  <xsd:complexType name="computerType">
179    <xsd:annotation>
180      <xsd:documentation>
181        A general purpose computer as part of a topology.
182      </xsd:documentation>
183    </xsd:annotation>
184    <xsd:sequence>
185      <xsd:element name="name" type="xsd:string" minOccurs="0"
186        maxOccurs="unbounded"/>
187      <xsd:element name="cpu" type="tns:cpuType"
188        minOccurs="0" maxOccurs="unbounded"/>
189      <xsd:element name="os" type="tns:operatingsystemType"
190        minOccurs="0" maxOccurs="unbounded"/>
191      <xsd:element name="software" type="tns:softwareType"
192        minOccurs="0" maxOccurs="unbounded"/>
193      <xsd:element name="storage" type="tns:storageType"
194        minOccurs="0" maxOccurs="unbounded"/>
195      <xsd:element name="interface" type="tns:interfaceType"
196        minOccurs="0" maxOccurs="unbounded"/>
197      <xsd:element name="attribute" type="tns:attributeType" 
198        minOccurs="0" maxOccurs="unbounded"/>
199    </xsd:sequence>
200  </xsd:complexType>
201
202  <xsd:complexType name="testbedType">
203    <xsd:annotation>
204      <xsd:documentation>
205        A testbed is an abstract resource collection.
206      </xsd:documentation>
207    </xsd:annotation>
208    <xsd:sequence>
209      <xsd:element name="uri" type="xsd:string"/>
210      <xsd:element name="type" type="xsd:string"/>
211      <xsd:element name="interface" type="tns:interfaceType"
212        minOccurs="0" maxOccurs="unbounded"/>
213      <xsd:element name="attribute" type="tns:attributeType" 
214        minOccurs="0" maxOccurs="unbounded"/>
215    </xsd:sequence>
216  </xsd:complexType>
217
218  <xsd:complexType name="segmentType">
219    <xsd:annotation>
220      <xsd:documentation>
221        A collection of resources instantiated on a testbed
222      </xsd:documentation>
223    </xsd:annotation>
224    <xsd:sequence>
225      <xsd:element name="id" type="fns:IDType"/>
226      <xsd:element name="type" type="xsd:string"/>
227      <xsd:element name="uri" type="xsd:string"/>
228      <xsd:element name="interface" type="tns:interfaceType"
229        minOccurs="0" maxOccurs="unbounded"/>
230      <xsd:element name="attribute" type="tns:attributeType" 
231        minOccurs="0" maxOccurs="unbounded"/>
232    </xsd:sequence>
233  </xsd:complexType>
234
235
236  <xsd:complexType name="otherType">
237    <xsd:annotation>
238      <xsd:documentation>
239        An element described only by attributes.
240      </xsd:documentation>
241    </xsd:annotation>
242    <xsd:sequence>
243      <xsd:element name="interface" type="tns:interfaceType"
244        minOccurs="0" maxOccurs="unbounded"/>
245      <xsd:element name="attribute" type="tns:attributeType" minOccurs="0"
246        maxOccurs="unbounded"/>
247    </xsd:sequence>
248  </xsd:complexType>
249
250  <xsd:complexType name="elementType">
251    <xsd:annotation>
252      <xsd:documentation>
253        An element in the topology to be created.
254      </xsd:documentation>
255    </xsd:annotation>
256    <xsd:choice>
257      <xsd:element name="computer" type="tns:computerType"/>
258      <xsd:element name="testbed" type="tns:testbedType"/>
259      <xsd:element name="segment" type="tns:segmentType"/>
260      <xsd:element name="other" type="tns:otherType"/>
261    </xsd:choice>
262  </xsd:complexType>
263
264  <xsd:complexType name="topologyType">
265    <xsd:annotation>
266      <xsd:documentation>
267        Description of an experimental topology for the federant to create.
268      </xsd:documentation>
269    </xsd:annotation>
270    <xsd:sequence>
271      <xsd:element name="substrates" type="tns:substrateType" 
272        minOccurs="0" maxOccurs="unbounded" />
273      <xsd:element name="elements" type="tns:elementType" 
274        minOccurs="0" maxOccurs="unbounded" />
275    </xsd:sequence>
276  </xsd:complexType>
277</xsd:schema>
Note: See TracBrowser for help on using the repository browser.