source: wsdl/topdl.xsd @ b709861

compt_changesinfo-ops
Last change on this file since b709861 was f37e9bf, checked in by Ted Faber <faber@…>, 13 years ago

topdl code support for new fields. Still initial code, untested.

  • Property mode set to 100644
File size: 11.9 KB
Line 
1<?xml version="1.0"?>
2<xsd:schema targetNamespace="http://www.isi.edu/topdl"
3  xmlns:tns="http://www.isi.edu/topdl"
4  xmlns:fns="http://www.isi.edu/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:simpleType name="serviceParamTypeType">
63    <xsd:annotation>
64      <xsd:documentation>
65        The set of valid types for a service parameter
66      </xsd:documentation>
67    </xsd:annotation>
68    <xsd:restriction base="xsd:string">
69      <xsd:enumeration value="string"/>
70      <xsd:enumeration value="int"/>
71      <xsd:enumeration value="float"/>
72    </xsd:restriction>
73  </xsd:simpleType>
74
75  <xsd:complexType name="serviceParamType">
76    <xsd:annotation>
77      <xsd:documentation>
78        A parameter type for a service, gives the name and parameter type
79      </xsd:documentation>
80    </xsd:annotation>
81    <xsd:sequence>
82      <xsd:element name="name" type="xsd:string"/>
83      <xsd:element name="type" type="tns:serviceParamTypeType"/>
84    </xsd:sequence>
85  </xsd:complexType>
86
87  <xsd:complexType name="serviceType">
88    <xsd:annotation>
89      <xsd:documentation>
90        Description of a service exported from an element
91      </xsd:documentation>
92    </xsd:annotation>
93    <xsd:sequence>
94      <xsd:element name="name" type="xsd:string" />
95      <xsd:element name="importer" type="xsd:string" 
96        minOccurs="0" maxOccurs="unbounded"/>
97      <xsd:element name="param" type="tns:serviceParamTypeType" 
98        minOccurs="0" maxOccurs="unbounded"/>
99      <xsd:element name="description" type="xsd:string" 
100        minOccurs="0" maxOccurs="1"/>
101      <xsd:element name="status" type="fns:statusType" 
102        minOccurs="0" maxOccurs="1"/>
103    </xsd:sequence>
104  </xsd:complexType>
105
106  <xsd:complexType name="substrateType">
107    <xsd:annotation>
108      <xsd:documentation>
109        Description of media through which elements can communicate
110      </xsd:documentation>
111    </xsd:annotation>
112    <xsd:sequence>
113      <xsd:element name="name" type="xsd:string"/>
114      <xsd:element name="capacity" type="tns:capacityType" 
115        minOccurs="0" maxOccurs="1"/>
116      <xsd:element name="latency" type="tns:latencyType" 
117        minOccurs="0" maxOccurs="1"/>
118      <xsd:element name="attribute" type="tns:attributeType" 
119        minOccurs="0" maxOccurs="unbounded"/>
120      <xsd:element name="localname" type="xsd:string"
121        minOccurs="0" maxOccurs="unbounded"/>
122      <xsd:element name="status" type="fns:statusType"
123        minOccurs="0" maxOccurs="1"/>
124      <xsd:element name="service" type="tns:serviceType" 
125        minOccurs="0" maxOccurs="unbounded"/>
126      <xsd:element name="operation" type="xsd:string" 
127        minOccurs="0" maxOccurs="unbounded"/>
128    </xsd:sequence>
129  </xsd:complexType>
130 
131  <xsd:complexType name="cpuType">
132    <xsd:annotation>
133      <xsd:documentation>
134        The CPU requirements of a computer or other entity.  The type is a
135        string for simplicity.  We may make this more complex later.
136      </xsd:documentation>
137    </xsd:annotation>
138    <xsd:sequence>
139      <xsd:element name="type" type="xsd:string"/>
140      <xsd:element name="attribute" type="tns:attributeType" 
141        minOccurs="0" maxOccurs="unbounded"/>
142    </xsd:sequence>
143    <xsd:attribute name="count" type="xsd:int" use="optional"/>
144  </xsd:complexType>
145
146  <xsd:simpleType name="persistenceType">
147    <xsd:annotation>
148      <xsd:documentation>
149        Description of how long storage is available
150      </xsd:documentation>
151    </xsd:annotation>
152    <xsd:restriction base="xsd:string">
153      <xsd:enumeration value="temporary"/>
154      <xsd:enumeration value="persistent"/>
155    </xsd:restriction>
156  </xsd:simpleType>
157
158  <xsd:complexType name="storageType">
159    <xsd:annotation>
160      <xsd:documentation>
161        The storage requirements of a computer or other entity.  The amount and
162        its persistance.  Amounts are in megabytes.  Should media be requires,
163        an attribute can be used.
164      </xsd:documentation>
165    </xsd:annotation>
166    <xsd:sequence>
167      <xsd:element name="amount" type="xsd:double"/>
168      <xsd:element name="persistence" type="tns:persistenceType"/>
169      <xsd:element name="attribute" type="tns:attributeType" 
170        minOccurs="0" maxOccurs="unbounded"/>
171    </xsd:sequence>
172  </xsd:complexType>
173
174  <xsd:complexType name="operatingsystemType">
175    <xsd:annotation>
176      <xsd:documentation>
177        The OS requirements of a computer or other element with an OS.
178      </xsd:documentation>
179    </xsd:annotation>
180    <xsd:sequence>
181      <xsd:element name="name" type="xsd:string"
182        minOccurs="0" maxOccurs="1"/>
183      <xsd:element name="version" type="xsd:string"
184        minOccurs="0" maxOccurs="1"/>
185      <xsd:element name="distribution" type="xsd:string"
186        minOccurs="0" maxOccurs="1"/>
187      <xsd:element name="distributionversion" type="xsd:string"
188        minOccurs="0" maxOccurs="1"/>
189      <xsd:element name="attribute" type="tns:attributeType" 
190        minOccurs="0" maxOccurs="unbounded"/>
191    </xsd:sequence>
192  </xsd:complexType>
193
194  <xsd:complexType name="softwareType">
195    <xsd:annotation>
196      <xsd:documentation>
197        An piece of software  and where to install it on an element.  Some
198        distribution types have the install location embedded in the format,
199        and for them the installation location is empty.
200      </xsd:documentation>
201    </xsd:annotation>
202    <xsd:sequence>
203      <xsd:element name="location" type="xsd:string"/>
204      <xsd:element name="install" type="xsd:string"
205        minOccurs="0" maxOccurs="1"/>
206      <xsd:element name="attribute" type="tns:attributeType" 
207        minOccurs="0" maxOccurs="unbounded"/>
208    </xsd:sequence>
209  </xsd:complexType>
210
211  <xsd:complexType name="interfaceType">
212    <xsd:annotation>
213      <xsd:documentation>
214        An interface to at least one communication substrate.  Details like
215        address assignement are in attributes.
216      </xsd:documentation>
217    </xsd:annotation>
218    <xsd:sequence>
219      <xsd:element name="substrate" type="xsd:string" minOccurs="1" 
220        maxOccurs="unbounded"/>
221      <xsd:element name="name" type="xsd:string" />
222      <xsd:element name="capacity" type="tns:capacityType" 
223        minOccurs="0" maxOccurs="1"/>
224      <xsd:element name="latency" type="tns:latencyType" 
225        minOccurs="0" maxOccurs="1"/>
226      <xsd:element name="attribute" type="tns:attributeType" 
227        minOccurs="0" maxOccurs="unbounded"/>
228    </xsd:sequence>
229  </xsd:complexType>
230
231  <xsd:complexType name="computerType">
232    <xsd:annotation>
233      <xsd:documentation>
234        A general purpose computer as part of a topology.
235      </xsd:documentation>
236    </xsd:annotation>
237    <xsd:sequence>
238      <xsd:element name="name" type="xsd:string"/>
239      <xsd:element name="cpu" type="tns:cpuType"
240        minOccurs="0" maxOccurs="unbounded"/>
241      <xsd:element name="os" type="tns:operatingsystemType"
242        minOccurs="0" maxOccurs="unbounded"/>
243      <xsd:element name="software" type="tns:softwareType"
244        minOccurs="0" maxOccurs="unbounded"/>
245      <xsd:element name="storage" type="tns:storageType"
246        minOccurs="0" maxOccurs="unbounded"/>
247      <xsd:element name="interface" type="tns:interfaceType"
248        minOccurs="0" maxOccurs="unbounded"/>
249      <xsd:element name="attribute" type="tns:attributeType" 
250        minOccurs="0" maxOccurs="unbounded"/>
251      <xsd:element name="localname" type="xsd:string"
252        minOccurs="0" maxOccurs="unbounded"/>
253      <xsd:element name="status" type="fns:statusType"
254        minOccurs="0" maxOccurs="1"/>
255      <xsd:element name="service" type="tns:serviceType" 
256        minOccurs="0" maxOccurs="unbounded"/>
257      <xsd:element name="operation" type="xsd:string" 
258        minOccurs="0" maxOccurs="unbounded"/>
259    </xsd:sequence>
260  </xsd:complexType>
261
262  <xsd:complexType name="testbedType">
263    <xsd:annotation>
264      <xsd:documentation>
265        A testbed is an abstract resource collection.
266      </xsd:documentation>
267    </xsd:annotation>
268    <xsd:sequence>
269      <xsd:element name="uri" type="xsd:string"/>
270      <xsd:element name="type" type="xsd:string"/>
271      <xsd:element name="interface" type="tns:interfaceType"
272        minOccurs="0" maxOccurs="unbounded"/>
273      <xsd:element name="attribute" type="tns:attributeType" 
274        minOccurs="0" maxOccurs="unbounded"/>
275      <xsd:element name="localname" type="xsd:string"
276        minOccurs="0" maxOccurs="unbounded"/>
277      <xsd:element name="status" type="fns:statusType"
278        minOccurs="0" maxOccurs="1"/>
279      <xsd:element name="service" type="tns:serviceType" 
280        minOccurs="0" maxOccurs="unbounded"/>
281      <xsd:element name="operation" type="xsd:string" 
282        minOccurs="0" maxOccurs="unbounded"/>
283    </xsd:sequence>
284  </xsd:complexType>
285
286  <xsd:complexType name="segmentType">
287    <xsd:annotation>
288      <xsd:documentation>
289        A collection of resources instantiated on a testbed
290      </xsd:documentation>
291    </xsd:annotation>
292    <xsd:sequence>
293      <xsd:element name="id" type="fns:IDType"/>
294      <xsd:element name="type" type="xsd:string"/>
295      <xsd:element name="uri" type="xsd:string"/>
296      <xsd:element name="interface" type="tns:interfaceType"
297        minOccurs="0" maxOccurs="unbounded"/>
298      <xsd:element name="attribute" type="tns:attributeType" 
299        minOccurs="0" maxOccurs="unbounded"/>
300    </xsd:sequence>
301  </xsd:complexType>
302
303
304  <xsd:complexType name="otherType">
305    <xsd:annotation>
306      <xsd:documentation>
307        An element described only by attributes.
308      </xsd:documentation>
309    </xsd:annotation>
310    <xsd:sequence>
311      <xsd:element name="interface" type="tns:interfaceType"
312        minOccurs="0" maxOccurs="unbounded"/>
313      <xsd:element name="attribute" type="tns:attributeType" minOccurs="0"
314        maxOccurs="unbounded"/>
315    </xsd:sequence>
316  </xsd:complexType>
317
318  <xsd:complexType name="elementType">
319    <xsd:annotation>
320      <xsd:documentation>
321        An element in the topology to be created.
322      </xsd:documentation>
323    </xsd:annotation>
324    <xsd:choice>
325      <xsd:element name="computer" type="tns:computerType"/>
326      <xsd:element name="testbed" type="tns:testbedType"/>
327      <xsd:element name="segment" type="tns:segmentType"/>
328      <xsd:element name="other" type="tns:otherType"/>
329    </xsd:choice>
330  </xsd:complexType>
331
332  <xsd:complexType name="topologyType">
333    <xsd:annotation>
334      <xsd:documentation>
335        Description of an experimental topology for the federant to create.
336      </xsd:documentation>
337    </xsd:annotation>
338    <xsd:sequence>
339      <xsd:element name="version" type="xsd:string"/>
340      <xsd:element name="substrates" type="tns:substrateType" 
341        minOccurs="0" maxOccurs="unbounded" />
342      <xsd:element name="elements" type="tns:elementType" 
343        minOccurs="0" maxOccurs="unbounded" />
344      <xsd:element name="attribute" type="tns:attributeType" minOccurs="0"
345        maxOccurs="unbounded"/>
346    </xsd:sequence>
347  </xsd:complexType>
348</xsd:schema>
Note: See TracBrowser for help on using the repository browser.