-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbdml0.18.xsd
402 lines (402 loc) · 17.6 KB
/
bdml0.18.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://ssbd.qbic.riken.jp/bdml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://ssbd.qbic.riken.jp/bdml" elementFormDefault="qualified">
<xsd:annotation>
<xsd:documentation> Filename: bdml.xsd * Description: XML Schema for BDML version 0.18.
Author(s): Koji Kyoda, Yukako Tohsato, Kenneth H. L. Ho, Shuichi Onami
</xsd:documentation>
</xsd:annotation>
<!-- The definition of UnitKind follows. -->
<xsd:simpleType name="UnitKind">
<xsd:annotation>
<xsd:documentation>UnitKind represents unit of numerical value in the data.
It is based on the definition of the SBDML schema (Hucka et al., 2003).
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ampere"/>
<xsd:enumeration value="becquerel"/>
<xsd:enumeration value="candela"/>
<xsd:enumeration value="Celsius"/>
<xsd:enumeration value="coulomb"/>
<xsd:enumeration value="dimensionless"/>
<xsd:enumeration value="farad"/>
<xsd:enumeration value="gram"/>
<xsd:enumeration value="gray"/>
<xsd:enumeration value="henry"/>
<xsd:enumeration value="hertz"/>
<xsd:enumeration value="intensity"/>
<xsd:enumeration value="item"/>
<xsd:enumeration value="joule"/>
<xsd:enumeration value="katal"/>
<xsd:enumeration value="kelvin"/>
<xsd:enumeration value="kilogram"/>
<xsd:enumeration value="liter"/>
<xsd:enumeration value="litre"/>
<xsd:enumeration value="lumen"/>
<xsd:enumeration value="lux"/>
<xsd:enumeration value="meter"/>
<xsd:enumeration value="metre"/>
<xsd:enumeration value="micrometer"/>
<xsd:enumeration value="micrometre"/>
<xsd:enumeration value="mole"/>
<xsd:enumeration value="newton"/>
<xsd:enumeration value="ohm"/>
<xsd:enumeration value="pascal"/>
<xsd:enumeration value="pixel"/>
<xsd:enumeration value="radian"/>
<xsd:enumeration value="siemens"/>
<xsd:enumeration value="sievert"/>
<xsd:enumeration value="steradian"/>
<xsd:enumeration value="tesla"/>
<xsd:enumeration value="volt"/>
<xsd:enumeration value="watt"/>
<xsd:enumeration value="weber"/>
</xsd:restriction>
</xsd:simpleType>
<!-- The definition of tUnitKind follows. -->
<xsd:simpleType name="tUnitKind">
<xsd:annotation>
<xsd:documentation>tUnitKind represents unit of time.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="nanosecond"/>
<xsd:enumeration value="microsecond"/>
<xsd:enumeration value="millisecond"/>
<xsd:enumeration value="second"/>
<xsd:enumeration value="minute"/>
<xsd:enumeration value="hour"/>
<xsd:enumeration value="day"/>
<xsd:enumeration value="month"/>
<xsd:enumeration value="year"/>
</xsd:restriction>
</xsd:simpleType>
<!-- The definition of BasedOn follows. -->
<xsd:simpleType name="BasedOn">
<xsd:annotation>
<xsd:documentation>BasedOn indicates whether data was produced from an in vivo measurement or from a computer simulation.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Experiment"/>
<xsd:enumeration value="Simulation"/>
</xsd:restriction>
</xsd:simpleType>
<!-- The definition of UUID follows. -->
<xsd:simpleType name="UUIDType">
<xsd:annotation>
<xsd:documentation>UUIDType represents a universally unique identifier (http://tools.ietf.org/html/rfc4122).</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"/>
</xsd:restriction>
</xsd:simpleType>
<!-- The deinifition of Info follows. -->
<xsd:complexType name="Info">
<xsd:annotation>
<xsd:documentation>Info describes the content of the BDML file.
Each BDML file has a unique identifier, which is used to identify the file in sharing and exchange.
Each file should have a version number. It can be updated with a new number when meta-information is changed,
e.g. changing of contact details of the author. License information such as the Creative Commons licenses
(http://creativecommons.org/licenses/) should be explicitly indicated so that unnecessary conflict can be avoided.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="bdmlID" type="UUIDType"/>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="version" type="xsd:positiveInteger"/>
<xsd:element name="release" type="xsd:date"/>
<xsd:element name="license" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Summary follows. -->
<xsd:complexType name="Summary">
<xsd:annotation>
<xsd:documentation>Summary provides a concise description of the quantitative data in the BDML file.
A targeted organism should be provided based on the NCBI taxonomy definition (http://www.ncbi.nlm.nih.gov/taxonomy).
A localID can be used to link the bdmlID of the BDML file to an internal identifier name in each author or laboratory.
Detailed information of original published paper and/or database can be included.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="datatype" type="xsd:string"/>
<xsd:element name="organism" type="xsd:string"/>
<xsd:element name="localID" minOccurs="0" type="xsd:string"/>
<xsd:element name="basedon" type="BasedOn"/>
<xsd:element name="contributors" type="xsd:string"/>
<xsd:element name="citation" minOccurs="0" type="xsd:string"/>
<xsd:element name="PMID" minOccurs="0" type="xsd:positiveInteger"/>
<xsd:element name="dblink" minOccurs="0" type="xsd:anyURI"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Contact follows. -->
<xsd:complexType name="Contact">
<xsd:annotation>
<xsd:documentation>Contact describes detailed information of the corresponding author of the BDML file.
Contact name, e-mail address and affiliation of the corresponding author should be listed.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="E-mail" type="xsd:string"/>
<xsd:element name="phone" minOccurs="0" type="xsd:string"/>
<xsd:element name="URL" minOccurs="0" type="xsd:anyURI"/>
<xsd:element name="organization" type="xsd:string"/>
<xsd:element name="department" minOccurs="0" type="xsd:string"/>
<xsd:element name="laboratory" minOccurs="0" type="xsd:string"/>
<xsd:element name="address" minOccurs="0" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Methods follows. -->
<xsd:complexType name="Methods">
<xsd:annotation>
<xsd:documentation>Methods describes procedures used for reproducing spatiotemporal numerical data in the BDML file.
Methods includes two hyperlinks which are defined as a Uniform Resource Identifier (URI).
The first link points to original sources such as microscope images of an in vivo measurement or
files of the mathematical model of computer simulation.
The second link points to a description of procedures for obtaining the spatiotemporal numerical data from original sources.
It is a file described in Procedures for Data Processing Markup Language (http://ssbd.qbic.riken.jp/pdpml/).
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="summary" type="xsd:string"/>
<xsd:element name="source" minOccurs="0" type="xsd:anyURI"/>
<xsd:element name="pdpml" minOccurs="0" type="xsd:anyURI"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of scaleUnit follows. -->
<xsd:complexType name="ScaleUnit">
<xsd:annotation>
<xsd:documentation>ScaleUnit indicates scale and unit of coordinates and time.
The scale factor of x, y, z dimensions, and time can be separately defined.
If data only have x and y dimensions, the scale factor of z dimension should be set to zero.
The unit of coordinates and time should be selected from the units predefined in tUnitKind.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="xScale" type="xsd:double"/>
<xsd:element name="yScale" type="xsd:double"/>
<xsd:element name="zScale" type="xsd:double"/>
<xsd:element name="xyzUnit" type="UnitKind"/>
<xsd:element name="tScale" type="xsd:double"/>
<xsd:element name="tUnit" type="tUnitKind"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Object follows. -->
<xsd:complexType name="Object">
<xsd:annotation>
<xsd:documentation>Object specifies types of object that is detected from microscope images used in
an in vivo measurement or from the result of a computer simulation.
The number of object is unlimited because the dynamics of more than one object can be obtained from
the in vivo measurement or from the simulation.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="objectName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Feature follows. -->
<xsd:complexType name="Feature">
<xsd:annotation>
<xsd:documentation>Feature specifies types of feature within the objects.
There can be more than one feature in an object. It allows us to represent numerical values of these features.
A scale factor and unit should be defined in featureScale and featureUnit, respectively.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="featureName" type="xsd:string"/>
<xsd:element name="featureScale" type="xsd:double"/>
<xsd:element name="featureUnit" type="UnitKind"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Property follows. -->
<xsd:complexType name="Property">
<xsd:annotation>
<xsd:documentation>Property describes the features of an object.
Each feature is referenced by the featureRef, which is defined in the Feature element.
Its numerical value can be recorded in the featureVal.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="featureRef" type="xsd:string"/>
<xsd:element name="featureVal" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of XYZ follows. -->
<xsd:complexType name="XYZ">
<xsd:annotation>
<xsd:documentation>XYZ represents three-dimensional coordinates.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="x" type="xsd:double"/>
<xsd:element name="y" type="xsd:double"/>
<xsd:element name="z" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of XYZSequence follows. -->
<xsd:complexType name="XYZSequence">
<xsd:annotation>
<xsd:documentation>XYZSequence represents a sequence of coordinates written in counter-clockwise direction.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="xyz" minOccurs="1" maxOccurs="unbounded" type="XYZ"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of XYZTriplet follows. -->
<xsd:complexType name="XYZTriplet">
<xsd:annotation>
<xsd:documentation>XYZTriplet represents a set of three coordinates.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="xyz" minOccurs="3" maxOccurs="3" type="XYZ"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Point follows. -->
<xsd:complexType name="Point">
<xsd:annotation>
<xsd:documentation>Point is used when an object is described as a set of points.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="xyz" minOccurs="1" maxOccurs="unbounded" type="XYZ"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Line follows. -->
<xsd:complexType name="Line">
<xsd:annotation>
<xsd:documentation>Line is used when an object is described as a set of lines.
A continuous sequence points defined by a set of coordinates. If the line is closed, i.e. the starting point
is the same as the end point, the sequence of points should be written in counter-clockwise direction.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="xyzSequence" minOccurs="1" maxOccurs="unbounded" type="XYZSequence"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Circle follows. -->
<xsd:complexType name="Circle">
<xsd:annotation>
<xsd:documentation>Circle is used when an object is described as a circle.
The scale of radius is mandatorily 1.0, and its unit is the same as the xyzUnit.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="xyz" type="XYZ"/>
<xsd:element name="radius" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Sphere follows. -->
<xsd:complexType name="Sphere">
<xsd:annotation>
<xsd:documentation>Sphere is used when an object is described as a sphere.
The scale of radius is mandatorily 1.0, and its unit is the same as the xyzUnit.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="xyz" type="XYZ"/>
<xsd:element name="radius" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Face follows. -->
<xsd:complexType name="Face">
<xsd:annotation>
<xsd:documentation>Face is used when an object is described as a set of faces.
A face is defined by three points. Orientation of a face determines which side of the face is facing inside or outside of an object.
To determine the orientation of a face, the coordinates of the face have to be written in counter-clockwise order.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="xyzTriplet" minOccurs="1" maxOccurs="unbounded" type="XYZTriplet"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Measurement follows. -->
<xsd:complexType name="Measurement">
<xsd:annotation>
<xsd:documentation>Measurement represents spatial information of objects.
Each measurement corresponds to coordinates of position for each object.
Property describes the features of an object.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="objectRef" type="xsd:string"/>
<xsd:choice minOccurs="0">
<xsd:element name="point" type="Point"/>
<xsd:element name="line" type="Line"/>
<xsd:element name="circle" type="Circle"/>
<xsd:element name="sphere" type="Sphere"/>
<xsd:element name="face" type="Face"/>
</xsd:choice>
<xsd:element name="property" minOccurs="0" maxOccurs="unbounded" type="Property"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Component follows. -->
<xsd:complexType name="Component">
<xsd:annotation>
<xsd:documentation>Component describes a collection of objects and their spatial information at a given point of time.
Each component must be separated by time (e.g. time frame); therefore it must contain the time element.
It also has a unique identifier, componentID.
A prevID can be used optionally to define a reference or connectivity with another component from a previous time.
Each component requires at least one measurement to describe spatial information of objects.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="componentID" type="xsd:string"/>
<xsd:element name="componentName" minOccurs="0" type="xsd:string"/>
<xsd:element name="time" type="xsd:double"/>
<xsd:element name="prevID" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/>
<xsd:element name="measurement" minOccurs="1" maxOccurs="unbounded" type="Measurement"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Data follows. -->
<xsd:complexType name="Data">
<xsd:annotation>
<xsd:documentation>Data contains spatiotemporal numerical data of biological dynamics.
It has four sub-elements ScaleUnit, Object, Feature and Component.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="scaleUnit" type="ScaleUnit"/>
<xsd:element name="object" minOccurs="1" maxOccurs="unbounded" type="Object"/>
<xsd:element name="feature" minOccurs="0" maxOccurs="unbounded" type="Feature"/>
<xsd:element name="component" minOccurs="1" maxOccurs="unbounded" type="Component"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Series follows. -->
<xsd:complexType name="Series">
<xsd:annotation>
<xsd:documentation>Series is used to separate data into a series of data files
which are obtained from the same experiment or simulation.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="bdmlIDRef" minOccurs="1" maxOccurs="unbounded" type="UUIDType"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of Set follows. -->
<xsd:complexType name="Set">
<xsd:annotation>
<xsd:documentation>Set is used to represent a set of data files which are referenced in the same article.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="bdmlIDRef" minOccurs="1" maxOccurs="unbounded" type="UUIDType"/>
</xsd:sequence>
</xsd:complexType>
<!-- The definition of BDML structure follows. -->
<xsd:complexType name="bdmlDocument">
<xsd:annotation>
<xsd:documentation>bdmlDocument consists of 5 top-level elements (Info, Summary, Contact, Methods, and Data).
There is the optional elements Series and Set, which can be used instead of the Data element.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="info" type="Info"/>
<xsd:element name="summary" type="Summary"/>
<xsd:element name="contact" type="Contact"/>
<xsd:element name="methods" type="Methods"/>
<xsd:choice>
<xsd:element name="data" type="Data"/>
<xsd:element name="series" type="Series"/>
<xsd:element name="set" type="Set"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="version" use="required" type="xsd:string" fixed="0.18"/>
</xsd:complexType>
<xsd:element name="bdml" type="bdmlDocument"/>
</xsd:schema>