jalview XML schema update for 2.4.1 (or 2.5?) introducing IDs for views and treepanel...
[jalview.git] / schemas / jalview.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" xmlns:jalview="www.jalview.org/colours" xmlns:jv="www.jalview.org" targetNamespace="www.jalview.org" elementFormDefault="qualified" attributeFormDefault="unqualified">
3                 <xs:import namespace="www.vamsas.ac.uk/jalview/version2" schemaLocation="vamsas.xsd"/>
4         <xs:import namespace="www.jalview.org/colours" schemaLocation="JalviewUserColours.xsd"/>
5         <xs:complexType name="JalviewModel">
6                 <xs:sequence>
7                         <xs:element name="creationDate" type="xs:dateTime"/>
8                         <xs:element name="version" type="xs:string"/>
9                         <xs:element name="vamsasModel" type="vamsas:VAMSAS"/>
10                         <xs:sequence>
11                                 <xs:element name="JSeq" maxOccurs="unbounded">
12                                         <xs:complexType>
13                                                 <xs:sequence>
14                                                         <xs:element name="features" type="jv:feature" minOccurs="0" maxOccurs="unbounded"/>
15                                                         <xs:element name="pdbids" minOccurs="0" maxOccurs="unbounded">
16                                                                 <xs:complexType>
17                                                                         <xs:complexContent>
18                                                                                 <xs:extension base="jv:pdbentry">
19                                                                                         <xs:sequence>
20                                                                                                 <xs:element name="structureState" minOccurs="0" maxOccurs="unbounded">
21                                                                                                         <xs:complexType>
22                                                                                                                 <xs:simpleContent>
23                                                                                                                         <xs:extension base="xs:string">
24                                                                                                                                 <xs:attribute name="visible" type="xs:boolean"/>
25                                                                                                                                 <xs:attribute name="xpos" type="xs:int"/>
26                                                                                                                                 <xs:attribute name="ypos" type="xs:int"/>
27                                                                                                                                 <xs:attribute name="width" type="xs:int"/>
28                                                                                                                                 <xs:attribute name="height" type="xs:int"/>
29                                                                                                                                 <xs:attribute name="viewId" type="xs:ID" use="optional"/>
30                                                                                                                                         
31                                                                                                                                 
32                                                                                                                         </xs:extension>
33                                                                                                                 </xs:simpleContent>
34                                                                                                         </xs:complexType>
35                                                                                                 </xs:element>
36                                                                                         </xs:sequence>
37                                                                                 </xs:extension>
38                                                                         </xs:complexContent>
39                                                                 </xs:complexType>
40                                                         </xs:element>
41                                                         <xs:element name="hiddenSequences" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
42                                                 </xs:sequence>
43                                                 <xs:attribute name="colour" type="xs:int" use="optional"/>
44                                                 <xs:attribute name="start" type="xs:int" use="required"/>
45                                                 <xs:attribute name="end" type="xs:int" use="required"/>
46                                                 <xs:attribute name="id" type="xs:string" use="required"/>
47                                                 <xs:attribute name="hidden" type="xs:boolean"/>
48                                         </xs:complexType>
49                                 </xs:element>
50                                 <xs:element name="JGroup" minOccurs="0" maxOccurs="unbounded">
51                                         <xs:complexType>
52                                                 <xs:sequence>
53                                                         <xs:element name="seq" type="xs:string" maxOccurs="unbounded"/>
54                                                 </xs:sequence>
55                                                 <xs:attribute name="start" type="xs:int"/>
56                                                 <xs:attribute name="end" type="xs:int"/>
57                                                 <xs:attribute name="name" type="xs:string"/>
58                                                 <xs:attribute name="colour" type="xs:string"/>
59                                                 <xs:attribute name="consThreshold" type="xs:int"/>
60                                                 <xs:attribute name="pidThreshold" type="xs:int"/>
61                                                 <xs:attribute name="outlineColour" type="xs:int"/>
62                                                 <xs:attribute name="displayBoxes" type="xs:boolean"/>
63                                                 <xs:attribute name="displayText" type="xs:boolean"/>
64                                                 <xs:attribute name="colourText" type="xs:boolean"/>
65                                                 <xs:attribute name="textCol1" type="xs:int"/>
66                                                 <xs:attribute name="textCol2" type="xs:int"/>
67                                                 <xs:attribute name="textColThreshold" type="xs:int"/>
68                                         </xs:complexType>
69                                 </xs:element>
70                                 <xs:element name="Viewport" maxOccurs="unbounded">
71                                         <xs:complexType>
72                                                 <xs:sequence>
73                                                         <xs:element name="AnnotationColours" minOccurs="0">
74                                                                 <xs:complexType>
75                                                                         <xs:attribute name="aboveThreshold" type="xs:int"/>
76                                                                         <xs:attribute name="annotation" type="xs:string"/>
77                                                                         <xs:attribute name="minColour" type="xs:int"/>
78                                                                         <xs:attribute name="maxColour" type="xs:int"/>
79                                                                         <xs:attribute name="colourScheme" type="xs:string"/>
80                                                                         <xs:attribute name="threshold" type="xs:float"/>
81                                                                 </xs:complexType>
82                                                         </xs:element>
83                                                         <xs:element name="hiddenColumns" minOccurs="0" maxOccurs="unbounded">
84                                                                 <xs:complexType>
85                                                                         <xs:attribute name="start" type="xs:int"/>
86                                                                         <xs:attribute name="end" type="xs:int"/>
87                                                                 </xs:complexType>
88                                                         </xs:element>
89                                                 </xs:sequence>
90                                                 <xs:attribute name="conservationSelected" type="xs:boolean"/>
91                                                 <xs:attribute name="pidSelected" type="xs:boolean"/>
92                                                 <xs:attribute name="bgColour" type="xs:string"/>
93                                                 <xs:attribute name="consThreshold" type="xs:int"/>
94                                                 <xs:attribute name="pidThreshold" type="xs:int"/>
95                                                 <xs:attribute name="title" type="xs:string"/>
96                                                 <xs:attribute name="showFullId" type="xs:boolean"/>
97                                                 <xs:attribute name="rightAlignIds" type="xs:boolean"/>
98                                                 <xs:attribute name="showText" type="xs:boolean"/>
99                                                 <xs:attribute name="showColourText" type="xs:boolean"/>
100                                                 <xs:attribute name="showBoxes" type="xs:boolean"/>
101                                                 <xs:attribute name="wrapAlignment" type="xs:boolean"/>
102                                                 <xs:attribute name="renderGaps" type="xs:boolean"/>
103                                                 <xs:attribute name="showSequenceFeatures" type="xs:boolean"/>
104                                                 <xs:attribute name="showAnnotation" type="xs:boolean"/>
105                                                 <xs:attribute name="xpos" type="xs:int"/>
106                                                 <xs:attribute name="ypos" type="xs:int"/>
107                                                 <xs:attribute name="width" type="xs:int"/>
108                                                 <xs:attribute name="height" type="xs:int"/>
109                                                 <xs:attribute name="startRes" type="xs:int"/>
110                                                 <xs:attribute name="startSeq" type="xs:int"/>
111                                                 <xs:attribute name="fontName" type="xs:string"/>
112                                                 <xs:attribute name="fontSize" type="xs:int"/>
113                                                 <xs:attribute name="fontStyle" type="xs:int"/>
114                                                 <xs:attribute name="viewName" type="xs:string"/>
115                                                 <xs:attribute name="sequenceSetId" type="xs:string"/>
116                                                 <xs:attribute name="gatheredViews" type="xs:boolean"/>
117                                                 <xs:attribute name="textCol1" type="xs:int"/>
118                                                 <xs:attribute name="textCol2" type="xs:int"/>
119                                                 <xs:attribute name="textColThreshold" type="xs:int"/>
120                                                 <xs:attribute name="id" type="xs:ID" use="optional">
121                                                         <xs:annotation>
122                                                                 <xs:documentation>
123                                                                         unique id used by jalview to synchronize between stored and instantiated views
124                                                                 </xs:documentation>
125                                                         </xs:annotation>
126                                                 </xs:attribute>
127                                         </xs:complexType>
128                                 </xs:element>
129                                 <xs:element name="UserColours" minOccurs="0" maxOccurs="unbounded">
130                                         <xs:complexType>
131                                                 <xs:sequence>
132                                                         <xs:element name="UserColourScheme" type="jalview:JalviewUserColours"/>
133                                                 </xs:sequence>
134                                                 <xs:attribute name="id" type="xs:string"/>
135                                         </xs:complexType>
136                                 </xs:element>
137                                 <xs:element name="tree" minOccurs="0" maxOccurs="unbounded">
138                                         <xs:complexType>
139                                                 <xs:sequence minOccurs="0">
140                                                         <xs:element name="title" type="xs:string"/>
141                                                         <xs:element name="newick" type="xs:string"/>
142                                                 </xs:sequence>
143                                                 <xs:attribute name="width" type="xs:int"/>
144                                                 <xs:attribute name="height" type="xs:int"/>
145                                                 <xs:attribute name="xpos" type="xs:int"/>
146                                                 <xs:attribute name="ypos" type="xs:int"/>
147                                                 <xs:attribute name="fontName" type="xs:string"/>
148                                                 <xs:attribute name="fontSize" type="xs:int"/>
149                                                 <xs:attribute name="fontStyle" type="xs:int"/>
150                                                 <xs:attribute name="threshold" type="xs:float"/>
151                                                 <xs:attribute name="showBootstrap" type="xs:boolean"/>
152                                                 <xs:attribute name="showDistances" type="xs:boolean"/>
153                                                 <xs:attribute name="markUnlinked" type="xs:boolean"/>
154                                                 <xs:attribute name="fitToWindow" type="xs:boolean"/>
155                                                 <xs:attribute name="currentTree" type="xs:boolean"/>
156                                                 <xs:attribute name="id" type="xs:ID" use="optional">
157                                                         <xs:annotation><xs:documentation>Tree ID added for binding tree visualization settings to vamsas document trees in jalview 2.4.1</xs:documentation></xs:annotation>
158                                                 </xs:attribute>
159                                         </xs:complexType>
160                                 </xs:element>
161                                 <xs:element name="FeatureSettings" minOccurs="0">
162                                         <xs:complexType>
163                                                 <xs:sequence>
164                                                         <xs:element name="setting" minOccurs="0" maxOccurs="unbounded">
165                                                                 <xs:complexType>
166                                                                         <xs:attribute name="type" type="xs:string" use="required"/>
167                                                                         <xs:attribute name="colour" type="xs:int" use="required"/>
168                                                                         <xs:attribute name="display" type="xs:boolean" use="required"/>
169                                                                         <xs:attribute name="order" type="xs:float" use="optional"/>
170                                                                 </xs:complexType>
171                                                         </xs:element>
172                                                         <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
173                                                                 <xs:complexType>
174                                                                         <xs:attribute name="name" type="xs:string" use="required"/>
175                                                                         <xs:attribute name="display" type="xs:boolean" use="required"/>
176                                                                 </xs:complexType>
177                                                         </xs:element>
178                                                 </xs:sequence>
179                                         </xs:complexType>
180                                 </xs:element>
181                         </xs:sequence>
182                 </xs:sequence>
183         </xs:complexType>
184         <xs:complexType name="feature">
185                 <xs:sequence>
186                         <xs:element name="otherData" minOccurs="0" maxOccurs="unbounded">
187                                 <xs:complexType>
188                                         <xs:attribute name="key" type="xs:string" use="required"/>
189                                         <xs:attribute name="value" type="xs:string" use="required"/>
190                                 </xs:complexType>
191                         </xs:element>
192                 </xs:sequence>
193                 <xs:attribute name="begin" type="xs:int" use="required"/>
194                 <xs:attribute name="end" type="xs:int" use="required"/>
195                 <xs:attribute name="type" type="xs:string" use="required"/>
196                 <xs:attribute name="description" type="xs:string" use="optional"/>
197                 <xs:attribute name="status" type="xs:string" use="optional"/>
198                 <xs:attribute name="featureGroup" type="xs:string" use="optional"/>
199                 <xs:attribute name="score" type="xs:float" use="optional"/>
200         </xs:complexType>
201         <xs:complexType name="pdbentry">
202                 <xs:sequence minOccurs="0" maxOccurs="unbounded">
203                         <xs:element name="property" minOccurs="0" maxOccurs="unbounded">
204                                 <xs:complexType>
205                                         <xs:attribute name="name" type="xs:string" use="required"/>
206                                         <xs:attribute name="value" type="xs:string" use="required"/>
207                                 </xs:complexType>
208                         </xs:element>
209                 </xs:sequence>
210                 <xs:attribute name="id" type="xs:string" use="required"/>
211                 <xs:attribute name="type" type="xs:string" use="optional"/>
212                 <xs:attribute name="file" type="xs:string"/>
213         </xs:complexType>
214 </xs:schema>