source: wsdl/topdl.xsd @ c49d81b

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

Multiple names per host

  • 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        minOccurs="0" maxOccurs="1"/>
128      <xsd:element name="version" type="xsd:string"
129        minOccurs="0" maxOccurs="1"/>
130      <xsd:element name="distribution" type="xsd:string"
131        minOccurs="0" maxOccurs="1"/>
132      <xsd:element name="distributionversion" type="xsd:string"
133        minOccurs="0" maxOccurs="1"/>
134      <xsd:element name="attribute" type="tns:attributeType" 
135        minOccurs="0" maxOccurs="unbounded"/>
136    </xsd:sequence>
137  </xsd:complexType>
138
139  <xsd:complexType name="softwareType">
140    <xsd:annotation>
141      <xsd:documentation>
142        An piece of software  and where to install it on an element.  Some
143        distribution types have the install location embedded in the format,
144        and for them the installation location is empty.
145      </xsd:documentation>
146    </xsd:annotation>
147    <xsd:sequence>
148      <xsd:element name="location" type="xsd:string"/>
149      <xsd:element name="install" type="xsd:string"
150        minOccurs="0" maxOccurs="1"/>
151      <xsd:element name="attribute" type="tns:attributeType" 
152        minOccurs="0" maxOccurs="unbounded"/>
153    </xsd:sequence>
154  </xsd:complexType>
155
156  <xsd:complexType name="interfaceType">
157    <xsd:annotation>
158      <xsd:documentation>
159        An interface to at least one communication substrate.  Details like
160        address assignement are in attributes.
161      </xsd:documentation>
162    </xsd:annotation>
163    <xsd:sequence>
164      <xsd:element name="substrate" type="xsd:string" minOccurs="1" 
165        maxOccurs="unbounded"/>
166      <xsd:element name="capacity" type="tns:capacityType" 
167        minOccurs="0" maxOccurs="1"/>
168      <xsd:element name="latency" type="tns:latencyType" 
169        minOccurs="0" maxOccurs="1"/>
170      <xsd:element name="attribute" type="tns:attributeType" 
171        minOccurs="0" maxOccurs="unbounded"/>
172    </xsd:sequence>
173  </xsd:complexType>
174
175  <xsd:complexType name="computerType">
176    <xsd:annotation>
177      <xsd:documentation>
178        A general purpose computer as part of a topology.
179      </xsd:documentation>
180    </xsd:annotation>
181    <xsd:sequence>
182      <xsd:element name="name" type="xsd:string" minOccurs="0"
183        maxOccurs="unbounded"/>
184      <xsd:element name="cpu" type="tns:cpuType"
185        minOccurs="0" maxOccurs="unbounded"/>
186      <xsd:element name="os" type="tns:operatingsystemType"
187        minOccurs="0" maxOccurs="unbounded"/>
188      <xsd:element name="software" type="tns:softwareType"
189        minOccurs="0" maxOccurs="unbounded"/>
190      <xsd:element name="storage" type="tns:storageType"
191        minOccurs="0" maxOccurs="unbounded"/>
192      <xsd:element name="interface" type="tns:interfaceType"
193        minOccurs="0" maxOccurs="unbounded"/>
194      <xsd:element name="attribute" type="tns:attributeType" 
195        minOccurs="0" maxOccurs="unbounded"/>
196    </xsd:sequence>
197  </xsd:complexType>
198
199  <xsd:complexType name="otherType">
200    <xsd:annotation>
201      <xsd:documentation>
202        An element described only by attributes.
203      </xsd:documentation>
204    </xsd:annotation>
205    <xsd:sequence>
206      <xsd:element name="interface" type="tns:interfaceType"
207        minOccurs="0" maxOccurs="unbounded"/>
208      <xsd:element name="attribute" type="tns:attributeType" minOccurs="0"
209        maxOccurs="unbounded"/>
210    </xsd:sequence>
211  </xsd:complexType>
212
213  <xsd:complexType name="elementType">
214    <xsd:annotation>
215      <xsd:documentation>
216        An element in the topology to be created.
217      </xsd:documentation>
218    </xsd:annotation>
219    <xsd:choice>
220      <xsd:element name="computer" type="tns:computerType"/>
221      <xsd:element name="other" type="tns:otherType"/>
222    </xsd:choice>
223  </xsd:complexType>
224
225  <xsd:complexType name="topologyType">
226    <xsd:annotation>
227      <xsd:documentation>
228        Description of an experimental topology for the federant to create.
229      </xsd:documentation>
230    </xsd:annotation>
231    <xsd:sequence>
232      <xsd:element name="substrates" type="tns:substrateType" 
233        minOccurs="0" maxOccurs="unbounded" />
234      <xsd:element name="elements" type="tns:elementType" 
235        minOccurs="0" maxOccurs="unbounded" />
236    </xsd:sequence>
237  </xsd:complexType>
238</xsd:schema>
Note: See TracBrowser for help on using the repository browser.