-
Notifications
You must be signed in to change notification settings - Fork 3
/
FernMLSchema.xsd
83 lines (83 loc) · 3.37 KB
/
FernMLSchema.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
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="fernml" type="FERNML">
<xsd:key name="speciesKey">
<xsd:selector xpath="./listOfSpecies/species" />
<xsd:field xpath="@name" />
</xsd:key>
<xsd:keyref name="listOfSpecieslistOfReactants" refer="speciesKey">
<xsd:selector xpath="listOfReactions/reaction/listOfReactants/speciesReference" />
<xsd:field xpath="@name" />
</xsd:keyref>
<xsd:keyref name="listOfSpecieslistOfProducts" refer="speciesKey">
<xsd:selector xpath="listOfReactions/reaction/listOfProducts/speciesReference" />
<xsd:field xpath="@name" />
</xsd:keyref>
</xsd:element>
<xsd:complexType name="FERNML">
<xsd:complexContent>
<xsd:extension base="RNBase">
<xsd:sequence>
<xsd:element name="listOfSpecies" type="ListOfSpecies" />
<xsd:element name="listOfReactions" type="ListOfReactions" />
</xsd:sequence>
<xsd:attribute name="version" type="xsd:string" use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ListOfSpecies">
<xsd:sequence>
<xsd:element name="species" type="Species" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ListOfReactions">
<xsd:sequence>
<xsd:element name="reaction" type="Reaction" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Species">
<xsd:complexContent>
<xsd:extension base="RNBase">
<xsd:attribute name="initialAmount" type="xsd:float" use="required" />
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Reaction">
<xsd:complexContent>
<xsd:extension base="RNBase">
<xsd:sequence>
<xsd:element name="listOfReactants" type="ListOfSpeciesReferences" />
<xsd:element name="listOfProducts" type="ListOfSpeciesReferences" />
</xsd:sequence>
<xsd:attribute name="kineticConstant" type="xsd:float" use="required" />
<xsd:attribute name="kineticConstantReversible" type="xsd:float" use="optional" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ListOfSpeciesReferences">
<xsd:sequence>
<xsd:element name="speciesReference" type="SpeciesReference" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SpeciesReference">
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
<xsd:complexType name="RNBase">
<xsd:sequence>
<xsd:element name="listOfAnnotations" type="ListOfAnnotations" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ListOfAnnotations">
<xsd:sequence>
<xsd:element name="annotation" type="Annotation" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Annotation">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>