source: wsdl/topdl.xsd @ eec716b

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

Add topology description

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