update author list in license for (JAL-826)
[jalview.git] / schemas / jalview.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
4  * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, 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:attributeGroup ref="jv:swingwindow"/>
42                                                                                                                                 <xs:attribute name="visible" type="xs:boolean"/>
43                                                                                                                                 <xs:attribute name="viewId" type="xs:string" use="optional">
44                                                                                                                                         <xs:annotation>
45                                                                                                                                                 <xs:documentation>additional identifier which properly disambiguates
46                                                                                                                                                 the structure view from any other view with the same attributes. This is not an ID,
47                                                                                                                                                 because it is possible to have many references to the same physical structure view
48                                                                                                                                                 from different sequences in an alignment. A structureState element citing the same
49                                                                                                                                                 viewId will appear for each instance.</xs:documentation>
50                                                                                                                                         </xs:annotation>
51                                                                                                                                 </xs:attribute>
52                                                                                                                                 <xs:attribute name="alignwithAlignPanel" type="xs:boolean" use="optional" default="true">
53                                                                                                                                 <xs:annotation>
54                                                                                                                                 <xs:documentation>
55                                                                                                                                         Flag set if the alignment panel containing this JSeq should be included in those used to perform a structure superposition (since Jalview 2.7).
56                                                                                                                                 </xs:documentation>
57                                                                                                                                 </xs:annotation>
58                                                                                                                                 </xs:attribute>
59                                                                                                                                 <xs:attribute name="colourwithAlignPanel" type="xs:boolean" use="optional" default="false">
60                                                                                                                                 <xs:annotation>
61                                                                                                                                 <xs:documentation>
62                                                                                                                                         Flag set if the alignment panel containing this JSeq should be included in those used to colour its associated sequences in this structureState(since Jalview 2.7).
63                                                                                                                                 </xs:documentation>
64                                                                                                                                 </xs:annotation>
65                                                                                                                                 </xs:attribute>
66                                                                                                                                 <xs:attribute name="colourByJmol" type="xs:boolean" use="optional" default="true">
67                                                                                                                                 <xs:annotation><xs:documentation>
68                                                                                                                                   Flag set if the structure display is coloured by the Jmol state, rather than by one or more linked alignment views.
69                                                                                                                                 </xs:documentation></xs:annotation></xs:attribute>      
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:attributeGroup ref="jv:swingwindow"/>
139                                                 <xs:attribute name="conservationSelected" type="xs:boolean"/>
140                                                 <xs:attribute name="pidSelected" type="xs:boolean"/>
141                                                 <xs:attribute name="bgColour" type="xs:string"/>
142                                                 <xs:attribute name="consThreshold" type="xs:int"/>
143                                                 <xs:attribute name="pidThreshold" type="xs:int"/>
144                                                 <xs:attribute name="title" type="xs:string"/>
145                                                 <xs:attribute name="showFullId" type="xs:boolean"/>
146                                                 <xs:attribute name="rightAlignIds" type="xs:boolean"/>
147                                                 <xs:attribute name="showText" type="xs:boolean"/>
148                                                 <xs:attribute name="showColourText" type="xs:boolean"/>
149                                                 <xs:attribute name="showUnconserved" type="xs:boolean" use="optional" default="false"/>
150                                                 <xs:attribute name="showBoxes" type="xs:boolean"/>
151                                                 <xs:attribute name="wrapAlignment" type="xs:boolean"/>
152                                                 <xs:attribute name="renderGaps" type="xs:boolean"/>
153                                                 <xs:attribute name="showSequenceFeatures" type="xs:boolean"/>
154                                                 <xs:attribute name="showNPfeatureTooltip" type="xs:boolean" use="optional"/>
155                                                 <xs:attribute name="showDbRefTooltip" type="xs:boolean" use="optional"/>
156                                                 <xs:attribute name="followHighlight" type="xs:boolean" use="optional" default="true"/>
157                                                 <xs:attribute name="followSelection" type="xs:boolean" use="optional" default="true"/>
158                                                 <xs:attribute name="showAnnotation" type="xs:boolean"/>
159                                                 <xs:attribute name="centreColumnLabels" type="xs:boolean" use="optional" default="false"/>
160                                                 <xs:attribute name="showGroupConservation" type="xs:boolean" use="optional" default="false"/>
161                                                 <xs:attribute name="showGroupConsensus" type="xs:boolean" use="optional" default="false"/>
162                                                 <xs:attribute name="showConsensusHistogram" type="xs:boolean" use="optional" default="true"/>
163                                                 <xs:attribute name="showSequenceLogo" type="xs:boolean" use="optional" default="false"/>
164                                                 <xs:attribute name="ignoreGapsinConsensus" type="xs:boolean" use="optional" default="true"/>
165                                                 
166                                                 <xs:attribute name="startRes" type="xs:int"/>
167                                                 <xs:attribute name="startSeq" type="xs:int"/>
168                                                 <xs:attribute name="fontName" type="xs:string"/>
169                                                 <xs:attribute name="fontSize" type="xs:int"/>
170                                                 <xs:attribute name="fontStyle" type="xs:int"/>
171                                                 <xs:attribute name="viewName" type="xs:string"/>
172                                                 <xs:attribute name="sequenceSetId" type="xs:string"/>
173                                                 <xs:attribute name="gatheredViews" type="xs:boolean"/>
174                                                 <xs:attribute name="textCol1" type="xs:int"/>
175                                                 <xs:attribute name="textCol2" type="xs:int"/>
176                                                 <xs:attribute name="textColThreshold" type="xs:int"/>
177                                                 <xs:attribute name="id" type="xs:ID" use="optional">
178                                                         <xs:annotation>
179                                                                 <xs:documentation>
180                                                                         unique id used by jalview to synchronize between stored and instantiated views
181                                                                 </xs:documentation>
182                                                         </xs:annotation>
183                                                 </xs:attribute>
184           </xs:complexType>
185                                 </xs:element>
186                                 <xs:element name="UserColours" minOccurs="0" maxOccurs="unbounded">
187                                         <xs:complexType>
188                                                 <xs:sequence>
189                                                         <xs:element name="UserColourScheme" type="jalview:JalviewUserColours"/>
190                                                 </xs:sequence>
191                                                 <xs:attribute name="id" type="xs:string"/>
192                                         </xs:complexType>
193                                 </xs:element>
194                                 <xs:element name="tree" minOccurs="0" maxOccurs="unbounded">
195                                         <xs:complexType>
196                                          <xs:sequence minOccurs="0">
197               <xs:element name="title" type="xs:string"/>
198               <xs:element name="newick" type="xs:string"/>
199             </xs:sequence>
200             <xs:attribute name="fontName" type="xs:string"/>
201             <xs:attribute name="fontSize" type="xs:int"/>
202             <xs:attribute name="fontStyle" type="xs:int"/>
203             <xs:attribute name="threshold" type="xs:float"/>
204             <xs:attribute name="showBootstrap" type="xs:boolean"/>
205             <xs:attribute name="showDistances" type="xs:boolean"/>
206             <xs:attribute name="markUnlinked" type="xs:boolean"/>
207             <xs:attribute name="fitToWindow" type="xs:boolean"/>
208             <xs:attribute name="currentTree" type="xs:boolean"/>
209             <xs:attribute name="id" type="xs:ID" use="optional">
210               <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>
211             </xs:attribute>
212           <xs:attributeGroup ref="jv:swingwindow"/>
213           </xs:complexType>
214                                 </xs:element>
215                                 <xs:element name="FeatureSettings" minOccurs="0">
216                                         <xs:complexType>
217                                                 <xs:sequence>
218                                                         <xs:element name="setting" minOccurs="0" maxOccurs="unbounded">
219                                                                 <xs:complexType>
220                                                                         <xs:attribute name="type" type="xs:string" use="required"/>
221                                                                         <xs:attribute name="colour" type="xs:int" use="required"/>
222                                                                         <xs:attribute name="display" type="xs:boolean" use="required"/>
223                                                                         <xs:attribute name="order" type="xs:float" use="optional"/>
224                                                                         <xs:attribute name="mincolour" type="xs:int" use="optional">
225                                                                         <xs:annotation><xs:documentation>Optional minimum colour for graduated feature colour</xs:documentation>
226                                                                         </xs:annotation></xs:attribute>
227                                                                         <xs:attribute name="threshold" type="xs:float" use="optional">
228                                                                         <xs:annotation><xs:documentation>threshold value for graduated feature colour</xs:documentation>
229                                                                         </xs:annotation></xs:attribute>
230                                                                         <xs:attribute name="threshstate" type="xs:int" use="optional">
231                                                                         <xs:annotation><xs:documentation>threshold type for graduated feature colour</xs:documentation>
232                                                                         </xs:annotation></xs:attribute>
233                                                                         <xs:attribute name="max" type="xs:float" use="optional"/>
234                                                                         <xs:attribute name="min" type="xs:float" use="optional"/>
235                                                                         <xs:attribute name="colourByLabel" type="xs:boolean" use="optional"/>
236                                                                         <xs:attribute name="autoScale" type="xs:boolean" use="optional"/>
237                                                         </xs:complexType>
238                                                         </xs:element>
239                                                         <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
240                                                                 <xs:complexType>
241                                                                         <xs:attribute name="name" type="xs:string" use="required"/>
242                                                                         <xs:attribute name="display" type="xs:boolean" use="required"/>
243                                                                 </xs:complexType>
244                                                         </xs:element>
245                                                 </xs:sequence>
246                                         </xs:complexType>
247                                 </xs:element>
248                         </xs:sequence>
249                 </xs:sequence>
250         </xs:complexType>
251         <xs:complexType name="feature">
252                 <xs:sequence>
253                         <xs:element name="otherData" minOccurs="0" maxOccurs="unbounded">
254                                 <xs:complexType>
255                                         <xs:attribute name="key" type="xs:string" use="required"/>
256                                         <xs:attribute name="value" type="xs:string" use="required"/>
257                                 </xs:complexType>
258                         </xs:element>
259                 </xs:sequence>
260                 <xs:attribute name="begin" type="xs:int" use="required"/>
261                 <xs:attribute name="end" type="xs:int" use="required"/>
262                 <xs:attribute name="type" type="xs:string" use="required"/>
263                 <xs:attribute name="description" type="xs:string" use="optional"/>
264                 <xs:attribute name="status" type="xs:string" use="optional"/>
265                 <xs:attribute name="featureGroup" type="xs:string" use="optional"/>
266                 <xs:attribute name="score" type="xs:float" use="optional"/>
267         </xs:complexType>
268         <xs:complexType name="pdbentry">
269                 <xs:sequence minOccurs="0" maxOccurs="unbounded">
270                         <xs:element name="property" minOccurs="0" maxOccurs="unbounded">
271                                 <xs:complexType>
272                                         <xs:attribute name="name" type="xs:string" use="required"/>
273                                         <xs:attribute name="value" type="xs:string" use="required"/>
274                                 </xs:complexType>
275                         </xs:element>
276                 </xs:sequence>
277                 <xs:attribute name="id" type="xs:string" use="required"/>
278                 <xs:attribute name="type" type="xs:string" use="optional"/>
279                 <xs:attribute name="file" type="xs:string"/>
280         </xs:complexType>
281         <!-- 
282         <xs:complexType name="reportWindow">
283         <xs:annotation>
284         <xs:documentation>Generic type for windows containing mime-typed data associated with other jalview windows</xs:documentation>
285         </xs:annotation>
286         <xs:sequence>
287         </xs:sequence>
288     <xs:attribute name="id" type="xs:string" use="required"/>
289     <xs:attribute name="type" type="xs:string" use="optional"/>
290     <xs:attribute name="file" type="xs:string" use="optional"/>
291         </xs:complexType>
292  -->
293     <xs:attributeGroup name="swingwindow">
294     <xs:annotation>
295     <xs:documentation>
296       base attributes for windows displayed in Jalview desktop.
297     </xs:documentation>
298     </xs:annotation>
299       <xs:attribute name="width" type="xs:int"/>
300       <xs:attribute name="height" type="xs:int"/>
301       <xs:attribute name="xpos" type="xs:int"/>
302       <xs:attribute name="ypos" type="xs:int"/>
303     </xs:attributeGroup>
304 </xs:schema>