source: wsdl/topdl.xsd @ 7fe81be

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

Initial commit of support for transit connection info

  • Property mode set to 100644
File size: 9.4 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="name" type="xsd:string" />
170      <xsd:element name="capacity" type="tns:capacityType" 
171        minOccurs="0" maxOccurs="1"/>
172      <xsd:element name="latency" type="tns:latencyType" 
173        minOccurs="0" maxOccurs="1"/>
174      <xsd:element name="attribute" type="tns:attributeType" 
175        minOccurs="0" maxOccurs="unbounded"/>
176    </xsd:sequence>
177  </xsd:complexType>
178
179  <xsd:complexType name="computerType">
180    <xsd:annotation>
181      <xsd:documentation>
182        A general purpose computer as part of a topology.
183      </xsd:documentation>
184    </xsd:annotation>
185    <xsd:sequence>
186      <xsd:element name="name" type="xsd:string" minOccurs="0"
187        maxOccurs="unbounded"/>
188      <xsd:element name="cpu" type="tns:cpuType"
189        minOccurs="0" maxOccurs="unbounded"/>
190      <xsd:element name="os" type="tns:operatingsystemType"
191        minOccurs="0" maxOccurs="unbounded"/>
192      <xsd:element name="software" type="tns:softwareType"
193        minOccurs="0" maxOccurs="unbounded"/>
194      <xsd:element name="storage" type="tns:storageType"
195        minOccurs="0" maxOccurs="unbounded"/>
196      <xsd:element name="interface" type="tns:interfaceType"
197        minOccurs="0" maxOccurs="unbounded"/>
198      <xsd:element name="attribute" type="tns:attributeType" 
199        minOccurs="0" maxOccurs="unbounded"/>
200    </xsd:sequence>
201  </xsd:complexType>
202
203  <xsd:complexType name="testbedType">
204    <xsd:annotation>
205      <xsd:documentation>
206        A testbed is an abstract resource collection.
207      </xsd:documentation>
208    </xsd:annotation>
209    <xsd:sequence>
210      <xsd:element name="uri" type="xsd:string"/>
211      <xsd:element name="type" type="xsd:string"/>
212      <xsd:element name="interface" type="tns:interfaceType"
213        minOccurs="0" maxOccurs="unbounded"/>
214      <xsd:element name="attribute" type="tns:attributeType" 
215        minOccurs="0" maxOccurs="unbounded"/>
216    </xsd:sequence>
217  </xsd:complexType>
218
219  <xsd:complexType name="segmentType">
220    <xsd:annotation>
221      <xsd:documentation>
222        A collection of resources instantiated on a testbed
223      </xsd:documentation>
224    </xsd:annotation>
225    <xsd:sequence>
226      <xsd:element name="id" type="fns:IDType"/>
227      <xsd:element name="type" type="xsd:string"/>
228      <xsd:element name="uri" type="xsd:string"/>
229      <xsd:element name="interface" type="tns:interfaceType"
230        minOccurs="0" maxOccurs="unbounded"/>
231      <xsd:element name="attribute" type="tns:attributeType" 
232        minOccurs="0" maxOccurs="unbounded"/>
233    </xsd:sequence>
234  </xsd:complexType>
235
236
237  <xsd:complexType name="otherType">
238    <xsd:annotation>
239      <xsd:documentation>
240        An element described only by attributes.
241      </xsd:documentation>
242    </xsd:annotation>
243    <xsd:sequence>
244      <xsd:element name="interface" type="tns:interfaceType"
245        minOccurs="0" maxOccurs="unbounded"/>
246      <xsd:element name="attribute" type="tns:attributeType" minOccurs="0"
247        maxOccurs="unbounded"/>
248    </xsd:sequence>
249  </xsd:complexType>
250
251  <xsd:complexType name="elementType">
252    <xsd:annotation>
253      <xsd:documentation>
254        An element in the topology to be created.
255      </xsd:documentation>
256    </xsd:annotation>
257    <xsd:choice>
258      <xsd:element name="computer" type="tns:computerType"/>
259      <xsd:element name="testbed" type="tns:testbedType"/>
260      <xsd:element name="segment" type="tns:segmentType"/>
261      <xsd:element name="other" type="tns:otherType"/>
262    </xsd:choice>
263  </xsd:complexType>
264
265  <xsd:complexType name="topologyType">
266    <xsd:annotation>
267      <xsd:documentation>
268        Description of an experimental topology for the federant to create.
269      </xsd:documentation>
270    </xsd:annotation>
271    <xsd:sequence>
272      <xsd:element name="substrates" type="tns:substrateType" 
273        minOccurs="0" maxOccurs="unbounded" />
274      <xsd:element name="elements" type="tns:elementType" 
275        minOccurs="0" maxOccurs="unbounded" />
276      <xsd:element name="attribute" type="tns:attributeType" minOccurs="0"
277        maxOccurs="unbounded"/>
278    </xsd:sequence>
279  </xsd:complexType>
280</xsd:schema>
Note: See TracBrowser for help on using the repository browser.