source: wsdl/topdl.xsd @ cdb62d9

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

add computer name & rate info, small tweaks

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