fixes JAL-778 - flag to indicate binding between an alignment panel and Jmol view...
[jalview.git] / schemas / jalview.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
4  * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
5  * 
6  * This file is part of Jalview.
7  * 
8  * Jalview is free software: you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License 
10  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
11  * 
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
18 -->
19 <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">
20                 <xs:import namespace="www.vamsas.ac.uk/jalview/version2" schemaLocation="vamsas.xsd"/>
21         <xs:import namespace="www.jalview.org/colours" schemaLocation="JalviewUserColours.xsd"/>
22         <xs:complexType name="JalviewModel">
23                 <xs:sequence>
24                         <xs:element name="creationDate" type="xs:dateTime"/>
25                         <xs:element name="version" type="xs:string"/>
26                         <xs:element name="vamsasModel" type="vamsas:VAMSAS"/>
27                         <xs:sequence>
28                                 <xs:element name="JSeq" maxOccurs="unbounded">
29                                         <xs:complexType>
30                                                 <xs:sequence>
31                                                         <xs:element name="features" type="jv:feature" minOccurs="0" maxOccurs="unbounded"/>
32                                                         <xs:element name="pdbids" minOccurs="0" maxOccurs="unbounded">
33                                                                 <xs:complexType>
34                                                                         <xs:complexContent>
35                                                                                 <xs:extension base="jv:pdbentry">
36                                                                                         <xs:sequence>
37                                                                                                 <xs:element name="structureState" minOccurs="0" maxOccurs="unbounded">
38                                                                                                         <xs:complexType>
39                                                                                                                 <xs:simpleContent>
40                                                                                                                         <xs:extension base="xs:string">
41                                                                                                                                 <xs:attribute name="visible" type="xs:boolean"/>
42                                                                                                                                 <xs:attribute name="xpos" type="xs:int"/>
43                                                                                                                                 <xs:attribute name="ypos" type="xs:int"/>
44                                                                                                                                 <xs:attribute name="width" type="xs:int"/>
45                                                                                                                                 <xs:attribute name="height" type="xs:int"/>
46                                                                                                                                 <xs:attribute name="viewId" type="xs:string" use="optional">
47                                                                                                                                         <xs:annotation>
48                                                                                                                                                 <xs:documentation>additional identifier which properly disambiguates
49                                                                                                                                                 the structure view from any other view with the same attributes. This is not an ID,
50                                                                                                                                                 because it is possible to have many references to the same physical structure view
51                                                                                                                                                 from different sequences in an alignment. A structureState element citing the same
52                                                                                                                                                 viewId will appear for each instance.</xs:documentation>
53                                                                                                                                         </xs:annotation>
54                                                                                                                                 </xs:attribute>
55                                                                                                                                 <xs:attribute name="linkAlignPanel" type="xs:boolean" use="optional" default="true">
56                                                                                                                                 <xs:annotation>
57                                                                                                                                 <xs:documentation>
58                                                                                                                                         Flag set if the alignment panel containing this JSeq should be explicitly linked to the Jmol view referred to/created by this structureState (since Jalview 2.7).
59                                                                                                                                 </xs:documentation>
60                                                                                                                                 </xs:annotation>
61                                                                                                                                 </xs:attribute>
62                                                                                                                                 <xs:attribute name="alignwithAlignPanel" type="xs:boolean" use="optional" default="true">
63                                                                                                                                 <xs:annotation>
64                                                                                                                                 <xs:documentation>
65                                                                                                                                         Flag set if the alignment panel containing this JSeq should be included in those used to perform a structure superposition (since Jalview 2.7).
66                                                                                                                                 </xs:documentation>
67                                                                                                                                 </xs:annotation>
68                                                                                                                                 </xs:attribute>
69                                                                                                                                         
70                                                                                                                                 
71                                                                                                                         </xs:extension>
72                                                                                                                 </xs:simpleContent>
73                                                                                                         </xs:complexType>
74                                                                                                 </xs:element>
75                                                                                         </xs:sequence>
76                                                                                 </xs:extension>
77                                                                         </xs:complexContent>
78                                                                 </xs:complexType>
79                                                         </xs:element>
80                                                         <xs:element name="hiddenSequences" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
81                                                 </xs:sequence>
82                                                 <xs:attribute name="colour" type="xs:int" use="optional"/>
83                                                 <xs:attribute name="start" type="xs:int" use="required"/>
84                                                 <xs:attribute name="end" type="xs:int" use="required"/>
85                                                 <xs:attribute name="id" type="xs:string" use="required"/>
86                                                 <xs:attribute name="hidden" type="xs:boolean"/>
87                                         </xs:complexType>
88                                 </xs:element>
89                                 <xs:element name="JGroup" minOccurs="0" maxOccurs="unbounded">
90                                         <xs:complexType>
91                                                 <xs:sequence>
92                                                         <xs:element name="seq" type="xs:string" maxOccurs="unbounded"/>
93                                                 </xs:sequence>
94                                                 <xs:attribute name="start" type="xs:int"/>
95                                                 <xs:attribute name="end" type="xs:int"/>
96                                                 <xs:attribute name="name" type="xs:string"/>
97                                                 <xs:attribute name="colour" type="xs:string"/>
98                                                 <xs:attribute name="consThreshold" type="xs:int"/>
99                                                 <xs:attribute name="pidThreshold" type="xs:int"/>
100                                                 <xs:attribute name="outlineColour" type="xs:int"/>
101                                                 <xs:attribute name="displayBoxes" type="xs:boolean"/>
102                                                 <xs:attribute name="displayText" type="xs:boolean"/>
103                                                 <xs:attribute name="colourText" type="xs:boolean"/>
104                                                 <xs:attribute name="textCol1" type="xs:int"/>
105                                                 <xs:attribute name="textCol2" type="xs:int"/>
106                                                 <xs:attribute name="textColThreshold" type="xs:int"/>
107                                                 <xs:attribute name="showUnconserved" type="xs:boolean" use="optional"/>
108                                                 <xs:attribute name="ignoreGapsinConsensus" type="xs:boolean" use="optional" default="true"/>
109                                                 <xs:attribute name="showConsensusHistogram" type="xs:boolean" use="optional" default="true"/>
110                                                 <xs:attribute name="showSequenceLogo" type="xs:boolean" use="optional" default="false"/>
111                                                 <xs:attribute name="id" type="xs:string" use="optional"><xs:annotation>
112                                                 <xs:documentation>
113                                                 Optional sequence group ID (only needs to be unique for this alignment)
114                                                 </xs:documentation>
115                                                 </xs:annotation></xs:attribute>
116                                         </xs:complexType>
117                                 </xs:element>
118                                 <xs:element name="Viewport" maxOccurs="unbounded">
119                                         <xs:complexType>
120                                                 <xs:sequence>
121                                                         <xs:element name="AnnotationColours" minOccurs="0">
122                                                                 <xs:complexType>
123                                                                         <xs:attribute name="aboveThreshold" type="xs:int"/>
124                                                                         <xs:attribute name="annotation" type="xs:string"/>
125                                                                         <xs:attribute name="minColour" type="xs:int"/>
126                                                                         <xs:attribute name="maxColour" type="xs:int"/>
127                                                                         <xs:attribute name="colourScheme" type="xs:string"/>
128                                                                         <xs:attribute name="threshold" type="xs:float"/>
129                                                                 </xs:complexType>
130                                                         </xs:element>
131                                                         <xs:element name="hiddenColumns" minOccurs="0" maxOccurs="unbounded">
132                                                                 <xs:complexType>
133                                                                         <xs:attribute name="start" type="xs:int"/>
134                                                                         <xs:attribute name="end" type="xs:int"/>
135                                                                 </xs:complexType>
136                                                         </xs:element>
137                                                 </xs:sequence>
138                                                 <xs:attribute name="conservationSelected" type="xs:boolean"/>
139                                                 <xs:attribute name="pidSelected" type="xs:boolean"/>
140                                                 <xs:attribute name="bgColour" type="xs:string"/>
141                                                 <xs:attribute name="consThreshold" type="xs:int"/>
142                                                 <xs:attribute name="pidThreshold" type="xs:int"/>
143                                                 <xs:attribute name="title" type="xs:string"/>
144                                                 <xs:attribute name="showFullId" type="xs:boolean"/>
145                                                 <xs:attribute name="rightAlignIds" type="xs:boolean"/>
146                                                 <xs:attribute name="showText" type="xs:boolean"/>
147                                                 <xs:attribute name="showColourText" type="xs:boolean"/>
148                                                 <xs:attribute name="showUnconserved" type="xs:boolean" use="optional" default="false"/>
149                                                 <xs:attribute name="showBoxes" type="xs:boolean"/>
150                                                 <xs:attribute name="wrapAlignment" type="xs:boolean"/>
151                                                 <xs:attribute name="renderGaps" type="xs:boolean"/>
152                                                 <xs:attribute name="showSequenceFeatures" type="xs:boolean"/>
153                                                 <xs:attribute name="showNPfeatureTooltip" type="xs:boolean" use="optional"/>
154                                                 <xs:attribute name="showDbRefTooltip" type="xs:boolean" use="optional"/>
155                                                 <xs:attribute name="followHighlight" type="xs:boolean" use="optional" default="true"/>
156                                                 <xs:attribute name="followSelection" type="xs:boolean" use="optional" default="true"/>
157                                                 <xs:attribute name="showAnnotation" type="xs:boolean"/>
158                                                 <xs:attribute name="centreColumnLabels" type="xs:boolean" use="optional" default="false"/>
159                                                 <xs:attribute name="showGroupConservation" type="xs:boolean" use="optional" default="false"/>
160                                                 <xs:attribute name="showGroupConsensus" type="xs:boolean" use="optional" default="false"/>
161                                                 <xs:attribute name="showConsensusHistogram" type="xs:boolean" use="optional" default="true"/>
162                                                 <xs:attribute name="showSequenceLogo" type="xs:boolean" use="optional" default="false"/>
163                                                 <xs:attribute name="ignoreGapsinConsensus" type="xs:boolean" use="optional" default="true"/>
164                                                 
165                                                 <xs:attribute name="xpos" type="xs:int"/>
166                                                 <xs:attribute name="ypos" type="xs:int"/>
167                                                 <xs:attribute name="width" type="xs:int"/>
168                                                 <xs:attribute name="height" type="xs:int"/>
169                                                 <xs:attribute name="startRes" type="xs:int"/>
170                                                 <xs:attribute name="startSeq" type="xs:int"/>
171                                                 <xs:attribute name="fontName" type="xs:string"/>
172                                                 <xs:attribute name="fontSize" type="xs:int"/>
173                                                 <xs:attribute name="fontStyle" type="xs:int"/>
174                                                 <xs:attribute name="viewName" type="xs:string"/>
175                                                 <xs:attribute name="sequenceSetId" type="xs:string"/>
176                                                 <xs:attribute name="gatheredViews" type="xs:boolean"/>
177                                                 <xs:attribute name="textCol1" type="xs:int"/>
178                                                 <xs:attribute name="textCol2" type="xs:int"/>
179                                                 <xs:attribute name="textColThreshold" type="xs:int"/>
180                                                 <xs:attribute name="id" type="xs:ID" use="optional">
181                                                         <xs:annotation>
182                                                                 <xs:documentation>
183                                                                         unique id used by jalview to synchronize between stored and instantiated views
184                                                                 </xs:documentation>
185                                                         </xs:annotation>
186                                                 </xs:attribute>
187                                         </xs:complexType>
188                                 </xs:element>
189                                 <xs:element name="UserColours" minOccurs="0" maxOccurs="unbounded">
190                                         <xs:complexType>
191                                                 <xs:sequence>
192                                                         <xs:element name="UserColourScheme" type="jalview:JalviewUserColours"/>
193                                                 </xs:sequence>
194                                                 <xs:attribute name="id" type="xs:string"/>
195                                         </xs:complexType>
196                                 </xs:element>
197                                 <xs:element name="tree" minOccurs="0" maxOccurs="unbounded">
198                                         <xs:complexType>
199                                                 <xs:sequence minOccurs="0">
200                                                         <xs:element name="title" type="xs:string"/>
201                                                         <xs:element name="newick" type="xs:string"/>
202                                                 </xs:sequence>
203                                                 <xs:attribute name="width" type="xs:int"/>
204                                                 <xs:attribute name="height" type="xs:int"/>
205                                                 <xs:attribute name="xpos" type="xs:int"/>
206                                                 <xs:attribute name="ypos" type="xs:int"/>
207                                                 <xs:attribute name="fontName" type="xs:string"/>
208                                                 <xs:attribute name="fontSize" type="xs:int"/>
209                                                 <xs:attribute name="fontStyle" type="xs:int"/>
210                                                 <xs:attribute name="threshold" type="xs:float"/>
211                                                 <xs:attribute name="showBootstrap" type="xs:boolean"/>
212                                                 <xs:attribute name="showDistances" type="xs:boolean"/>
213                                                 <xs:attribute name="markUnlinked" type="xs:boolean"/>
214                                                 <xs:attribute name="fitToWindow" type="xs:boolean"/>
215                                                 <xs:attribute name="currentTree" type="xs:boolean"/>
216                                                 <xs:attribute name="id" type="xs:ID" use="optional">
217                                                         <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>
218                                                 </xs:attribute>
219                                         </xs:complexType>
220                                 </xs:element>
221                                 <xs:element name="FeatureSettings" minOccurs="0">
222                                         <xs:complexType>
223                                                 <xs:sequence>
224                                                         <xs:element name="setting" minOccurs="0" maxOccurs="unbounded">
225                                                                 <xs:complexType>
226                                                                         <xs:attribute name="type" type="xs:string" use="required"/>
227                                                                         <xs:attribute name="colour" type="xs:int" use="required"/>
228                                                                         <xs:attribute name="display" type="xs:boolean" use="required"/>
229                                                                         <xs:attribute name="order" type="xs:float" use="optional"/>
230                                                                         <xs:attribute name="mincolour" type="xs:int" use="optional">
231                                                                         <xs:annotation><xs:documentation>Optional minimum colour for graduated feature colour</xs:documentation>
232                                                                         </xs:annotation></xs:attribute>
233                                                                         <xs:attribute name="threshold" type="xs:float" use="optional">
234                                                                         <xs:annotation><xs:documentation>threshold value for graduated feature colour</xs:documentation>
235                                                                         </xs:annotation></xs:attribute>
236                                                                         <xs:attribute name="threshstate" type="xs:int" use="optional">
237                                                                         <xs:annotation><xs:documentation>threshold type for graduated feature colour</xs:documentation>
238                                                                         </xs:annotation></xs:attribute>
239                                                                         <xs:attribute name="max" type="xs:float" use="optional"/>
240                                                                         <xs:attribute name="min" type="xs:float" use="optional"/>
241                                                                         <xs:attribute name="colourByLabel" type="xs:boolean" use="optional"/>
242                                                                         <xs:attribute name="autoScale" type="xs:boolean" use="optional"/>
243                                                         </xs:complexType>
244                                                         </xs:element>
245                                                         <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
246                                                                 <xs:complexType>
247                                                                         <xs:attribute name="name" type="xs:string" use="required"/>
248                                                                         <xs:attribute name="display" type="xs:boolean" use="required"/>
249                                                                 </xs:complexType>
250                                                         </xs:element>
251                                                 </xs:sequence>
252                                         </xs:complexType>
253                                 </xs:element>
254                         </xs:sequence>
255                 </xs:sequence>
256         </xs:complexType>
257         <xs:complexType name="feature">
258                 <xs:sequence>
259                         <xs:element name="otherData" minOccurs="0" maxOccurs="unbounded">
260                                 <xs:complexType>
261                                         <xs:attribute name="key" type="xs:string" use="required"/>
262                                         <xs:attribute name="value" type="xs:string" use="required"/>
263                                 </xs:complexType>
264                         </xs:element>
265                 </xs:sequence>
266                 <xs:attribute name="begin" type="xs:int" use="required"/>
267                 <xs:attribute name="end" type="xs:int" use="required"/>
268                 <xs:attribute name="type" type="xs:string" use="required"/>
269                 <xs:attribute name="description" type="xs:string" use="optional"/>
270                 <xs:attribute name="status" type="xs:string" use="optional"/>
271                 <xs:attribute name="featureGroup" type="xs:string" use="optional"/>
272                 <xs:attribute name="score" type="xs:float" use="optional"/>
273         </xs:complexType>
274         <xs:complexType name="pdbentry">
275                 <xs:sequence minOccurs="0" maxOccurs="unbounded">
276                         <xs:element name="property" minOccurs="0" maxOccurs="unbounded">
277                                 <xs:complexType>
278                                         <xs:attribute name="name" type="xs:string" use="required"/>
279                                         <xs:attribute name="value" type="xs:string" use="required"/>
280                                 </xs:complexType>
281                         </xs:element>
282                 </xs:sequence>
283                 <xs:attribute name="id" type="xs:string" use="required"/>
284                 <xs:attribute name="type" type="xs:string" use="optional"/>
285                 <xs:attribute name="file" type="xs:string"/>
286         </xs:complexType>
287 </xs:schema>