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