exploring making PAE storage in projects more efficient
[jalview.git] / schemas / vamsas.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
4  * Copyright (C) $$Year-Rel$$ The Jalview Authors
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  * The Jalview Authors are detailed in the 'AUTHORS' file.
19 -->
20 <!-- edited with XMLSpy v2006 sp1 U (http://www.altova.com) by ioh[ (o[ih[oh) -->
21 <!-- 
22         Java JAXB binding classes are generated by running command line tool xjc:
23             xjc schemas/jalview.xsd -d src -p jalview.xml.binding.jalview
24         Note this also generates code for included schemas
25 -->
26 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" targetNamespace="www.vamsas.ac.uk/jalview/version2" elementFormDefault="qualified" attributeFormDefault="unqualified">
27         <xs:complexType name="VAMSAS">
28                 <xs:sequence>
29                         <xs:element name="Tree" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
30                         <xs:element ref="vamsas:SequenceSet" minOccurs="0" maxOccurs="unbounded"/>
31                 </xs:sequence>
32         </xs:complexType>
33         <xs:complexType name="mapListType">
34                 <xs:annotation>
35                         <xs:documentation> 
36                                 developed after mapRangeType from http://www.vamsas.ac.uk/schemas/1.0/vamsasTypes
37                         </xs:documentation>
38                         <xs:documentation>
39                                 This effectively represents a java.util.MapList object
40                         </xs:documentation>
41                 </xs:annotation>
42                 <xs:sequence>
43                         <xs:element name="mapListFrom" minOccurs="0" maxOccurs="unbounded">
44                                 <xs:annotation>
45                                         <xs:documentation> a region from start to end inclusive</xs:documentation>
46                                 </xs:annotation>
47                                 <xs:complexType>
48                                         <xs:attribute name="start" type="xs:int" use="required"/>
49                                         <xs:attribute name="end" type="xs:int" use="required"/>
50                                 </xs:complexType>
51                         </xs:element>                                   
52                         <xs:element name="mapListTo" minOccurs="0" maxOccurs="unbounded">
53                                 <xs:annotation>
54                                         <xs:documentation> a region from start to end inclusive</xs:documentation>
55                                 </xs:annotation>
56                                 <xs:complexType>
57                                         <xs:attribute name="start" type="xs:int" use="required"/>
58                                         <xs:attribute name="end" type="xs:int" use="required"/>
59                                 </xs:complexType>
60                         </xs:element>                                   
61                 </xs:sequence>
62                 <xs:attribute name="mapFromUnit" type="xs:positiveInteger" use="required">
63                         <xs:annotation>
64                                 <xs:documentation>number of dictionary symbol widths involved in each
65                                         mapped position on this sequence (for example, 3 for a dna sequence exon
66                                         region that is being mapped to a protein sequence). This is optional,
67                                         since the unit can be usually be inferred from the dictionary type of
68                                         each sequence involved in the mapping. </xs:documentation>
69                         </xs:annotation>
70                 </xs:attribute>
71                 <xs:attribute name="mapToUnit" type="xs:positiveInteger" use="required">
72                         <xs:annotation>
73                                 <xs:documentation>number of dictionary symbol widths involved in each
74                                         mapped position on this sequence (for example, 3 for a dna sequence exon
75                                         region that is being mapped to a protein sequence). This is optional,
76                                         since the unit can be usually be inferred from the dictionary type of
77                                         each sequence involved in the mapping. </xs:documentation>
78                         </xs:annotation>
79                 </xs:attribute>
80         </xs:complexType>
81         <xs:element name="Mapping">
82                 <xs:complexType>
83                         <xs:annotation>
84                                 <xs:documentation>
85                                         Represent the jalview.datamodel.Mapping object - it also provides
86                                         a way of storing sequences that are mapped 'to' without adding them
87                                         to the sequence set (which will mean they are then added to the alignment too).
88                                 </xs:documentation>
89                         </xs:annotation>
90                         <xs:complexContent>
91                                 <xs:extension base="vamsas:mapListType">
92                                         <xs:sequence>
93                                                 <xs:choice minOccurs="0" maxOccurs="1">
94                                                         <xs:element ref="vamsas:Sequence"/>
95                                                         <xs:element name="dseqFor">
96                                                                 <xs:simpleType>
97                                                                         <xs:restriction base="xs:string">
98                                                                                 <xs:annotation>
99                                                                                         <xs:documentation>The sequence whose dataset sequence is to be referenced here</xs:documentation>
100                                                                                 </xs:annotation>
101                                                                         </xs:restriction>
102                                                                 </xs:simpleType>
103                                                         </xs:element>
104                                                 </xs:choice>
105                                         </xs:sequence>
106                                         <xs:attribute name="mappingType" type="xs:string" use="optional">
107                                                 <xs:annotation>
108                                                         <xs:documentation>Biotype of the mapping e.g. CdsToPeptide</xs:documentation>
109                                                 </xs:annotation>
110                                         </xs:attribute>
111                                 </xs:extension>
112                         </xs:complexContent>    
113                 </xs:complexType>
114         </xs:element>
115         <xs:element name="AlcodonFrame">
116                 <xs:complexType>
117                         <xs:sequence>
118                                 <xs:element name="alcodon" minOccurs="0" maxOccurs="unbounded">
119                                         <xs:complexType>
120                                                 <xs:annotation>
121                                                         <xs:documentation>
122                                                                 specifies a series of aligned codons from an associated DNA sequence alignment that when translated correspond to columns of a peptide alignment.
123                                                                 Element may have either all pos1,2,3 attributes specified, or none at all (indicating a gapped column with no translated peptide).
124                                                         </xs:documentation>
125                                                 </xs:annotation>
126                                                 <xs:attribute name="pos1" type="xs:integer" use="optional"/>
127                                                 <xs:attribute name="pos2" type="xs:integer" use="optional"/>
128                                                 <xs:attribute name="pos3" type="xs:integer" use="optional"/>
129                                         </xs:complexType>
130                                 </xs:element>
131                                 <xs:element name="alcodMap" minOccurs="0" maxOccurs="unbounded">
132                                         <xs:complexType>
133                                                 <xs:sequence>
134                                                         <xs:element ref="vamsas:Mapping" maxOccurs="1" minOccurs="1">
135                                                                 <xs:annotation>
136                                                                         <xs:documentation>
137                                                                                 a Mapping entry and an associated protein sequence
138                                                                         </xs:documentation>
139                                                                 </xs:annotation>
140                                                         </xs:element>
141                                                 </xs:sequence>
142                                                 <xs:attribute name="dnasq" type="xs:string" use="required">
143                                                         <xs:annotation>
144                                                                 <xs:documentation>
145                                                                         internal jalview id for the dnasq for this mapping.
146                                                                 </xs:documentation>
147                                                         </xs:annotation>
148                                                 </xs:attribute>
149                                         </xs:complexType>
150                                         
151                                 </xs:element>
152                                 
153                         </xs:sequence>
154                 </xs:complexType>
155         </xs:element>
156         <xs:element name="Sequence">
157                 <xs:complexType>
158                         <xs:complexContent>
159                                 <xs:extension base="vamsas:SequenceType">
160                                         <xs:sequence>
161                                                 <xs:element name="DBRef" minOccurs="0" maxOccurs="unbounded">
162                                                         <xs:complexType>
163                                                                 <xs:sequence>
164                                                                         <xs:element ref="vamsas:Mapping" minOccurs="0" maxOccurs="1"/>
165                                                                 </xs:sequence>                                                                                                  
166                                                                 <xs:attribute name="source" type="xs:string"/>
167                                                                 <xs:attribute name="version" type="xs:string"/>
168                                                                 <xs:attribute name="accessionId" type="xs:string"/>
169                                                                 <xs:attribute name="locus" type="xs:boolean" default="false">
170                                                                         <xs:annotation>
171                                                                                 <xs:documentation>
172                                                                                         true for gene locus mapping, source=species, version=assembly, accession=chromosome
173                                                                                 </xs:documentation>
174                                                                         </xs:annotation>
175                                                                 </xs:attribute>
176                                                                 <xs:attribute name="canonical" type="xs:boolean" default="false">
177                                                                         <xs:annotation>
178                                                                                 <xs:documentation>
179                                                                                         true for the representative accession for databases where multiple accessions map to the same entry (eg. Uniprot)
180                                                                                 </xs:documentation>
181                                                                         </xs:annotation>
182                                                                 </xs:attribute>
183                                                         </xs:complexType>
184                                                 </xs:element>
185                                         </xs:sequence>
186                                         <xs:attribute name="dsseqid" type="xs:string" use="optional">
187                                                 <xs:annotation>
188                                                         <xs:documentation>
189                                                                 dataset sequence id for this sequence. Will be created as union of sequences.
190                                                         </xs:documentation>
191                                                 </xs:annotation>
192                                         </xs:attribute>
193                                         <xs:attribute name="biotype" type="xs:string" use="optional">
194                                                 <xs:annotation>
195                                                         <xs:documentation>
196                                                                 Biotype of the sequence (if known)
197                                                         </xs:documentation>
198                                                 </xs:annotation>
199                                         </xs:attribute>
200                                 </xs:extension>
201                         </xs:complexContent>
202                 </xs:complexType>
203         </xs:element>
204         <xs:element name="Annotation">
205                 <xs:complexType>
206                         <xs:sequence>
207                                 <xs:element ref="vamsas:annotationElement" minOccurs="0"
208                                         maxOccurs="unbounded" />
209                                 <xs:element name="label" type="xs:string" />
210                                 <xs:element name="description" type="xs:string"
211                                         minOccurs="0" />
212                                 <xs:element name="thresholdLine" minOccurs="0">
213                                         <xs:complexType>
214                                                 <xs:attribute name="label" type="xs:string" />
215                                                 <xs:attribute name="value" type="xs:float" />
216                                                 <xs:attribute name="colour" type="xs:int" />
217                                         </xs:complexType>
218                                 </xs:element>
219                                 <xs:element name="contactmatrix" type="vamsas:MatrixType"
220                                         maxOccurs="unbounded" minOccurs="0">
221                                 </xs:element>
222                                 <xs:element name="property" type="vamsas:property" minOccurs="0" maxOccurs="unbounded"/>
223                         </xs:sequence>
224                         <xs:attribute name="graph" type="xs:boolean" use="required" />
225                         <xs:attribute name="graphType" type="xs:int" use="optional" />
226                         <xs:attribute name="sequenceRef" type="xs:string"
227                                 use="optional" />
228                         <xs:attribute name="groupRef" type="xs:string"
229                                 use="optional" />
230                         <xs:attribute name="graphColour" type="xs:int"
231                                 use="optional" />
232                         <xs:attribute name="graphGroup" type="xs:int"
233                                 use="optional" />
234                         <xs:attribute name="graphHeight" type="xs:int" use="optional">
235                         <xs:annotation><xs:documentation>height in pixels for the graph if this is a graph-type annotation.</xs:documentation></xs:annotation></xs:attribute>
236                         <xs:attribute name="id" type="xs:string" use="optional" />
237                         <xs:attribute name="scoreOnly" type="xs:boolean"
238                                 use="optional" default="false" />
239                         <xs:attribute name="score" type="xs:double" use="optional" />
240                         <xs:attribute name="visible" type="xs:boolean"
241                                 use="optional" />
242                         <xs:attribute name="centreColLabels" type="xs:boolean"
243                                 use="optional" />
244                         <xs:attribute name="scaleColLabels" type="xs:boolean"
245                                 use="optional" />
246                         <xs:attribute name="showAllColLabels" type="xs:boolean"
247                                 use="optional" />
248
249
250                         <xs:attribute name="autoCalculated" type="xs:boolean" use="optional" default="false">
251                         <xs:annotation><xs:documentation>is an autocalculated annotation row</xs:documentation>
252                         </xs:annotation></xs:attribute>
253                         <xs:attribute name="belowAlignment" type="xs:boolean" use="optional" default="true">
254                         <xs:annotation><xs:documentation>is to be shown below the alignment - introduced in Jalview 2.8 for visualizing T-COFFEE alignment scores</xs:documentation></xs:annotation></xs:attribute>
255                         <xs:attribute name="calcId" type="xs:string" use="optional">
256                         <xs:annotation><xs:documentation>Optional string identifier used to group sets of annotation produced by a particular calculation. Values are opaque strings but have semantic meaning to Jalview's renderer, data importer and calculation system.</xs:documentation></xs:annotation>
257                         </xs:attribute>
258                 </xs:complexType>
259         </xs:element>   
260         <xs:element name="SequenceSet">
261                 <xs:complexType>
262                         <xs:sequence>
263                                 <xs:element ref="vamsas:Sequence" minOccurs="0" maxOccurs="unbounded"/>
264                                 <xs:element ref="vamsas:Annotation" minOccurs="0" maxOccurs="unbounded"/>
265                                 <xs:element name="sequenceSetProperties" minOccurs="0" maxOccurs="unbounded">
266                                         <xs:complexType>
267                                                 <xs:attribute name="key" type="xs:string"/>
268                                                 <xs:attribute name="value" type="xs:string"/>
269                                         </xs:complexType>
270                                 </xs:element>
271                                 <xs:element ref="vamsas:AlcodonFrame" minOccurs="0" maxOccurs="unbounded"/>
272                                 <xs:element name="Matrices" type="vamsas:MatrixType" minOccurs="0" maxOccurs="unbounded"/>
273                         </xs:sequence>
274                         <xs:attribute name="gapChar" type="xs:string" use="required"/>
275                         <xs:attribute name="datasetId" type="xs:string" use="optional">
276                                 <xs:annotation>
277                                         <xs:documentation>
278                                                 reference to set where jalview will gather the dataset sequences for all sequences in the set. 
279                                         </xs:documentation>
280                                 </xs:annotation>
281                         </xs:attribute>
282                 </xs:complexType>
283         </xs:element>
284         <xs:element name="annotationElement">
285                 <xs:complexType>
286                         <xs:sequence>
287                                 <xs:element name="displayCharacter" type="xs:string" minOccurs="0"/>
288                                 <xs:element name="description" type="xs:string" minOccurs="0"/>
289                                 <xs:element name="secondaryStructure" minOccurs="0">
290                                         <xs:simpleType>
291                                                 <xs:restriction base="xs:string">
292                                                         <xs:length value="1"/>
293                                                 </xs:restriction>
294                                         </xs:simpleType>
295                                 </xs:element>
296                                 <xs:element name="value" type="xs:float" minOccurs="0"/>
297                         </xs:sequence>
298                         <xs:attribute name="position" type="xs:int" use="required"/>
299                         <xs:attribute name="colour" type="xs:int" use="optional"/>
300                 </xs:complexType>
301         </xs:element>
302         <xs:complexType name="SequenceType">
303                 <xs:sequence>
304                         <xs:element name="sequence" type="xs:string" minOccurs="0"/>
305                         <xs:element name="name" type="xs:string" minOccurs="0"/>
306                 </xs:sequence>
307                 <xs:attribute name="id" type="xs:string"/>
308                 <xs:attribute name="description" type="xs:string"/>
309         </xs:complexType>
310         <xs:complexType name="MatrixType">
311                 <xs:sequence>
312                         <xs:element name="elements" type="xs:string" minOccurs="1"
313                                 maxOccurs="1">
314                                 <xs:annotation>
315                                         <xs:documentation>serialised representation of matrix as one or
316                                                 more sets of comma separated values</xs:documentation>
317                                 </xs:annotation>
318                         </xs:element>
319                         <xs:element name="groups" type="xs:string" minOccurs="0"
320                                 maxOccurs="unbounded">
321                                 <xs:annotation>
322                                         <xs:documentation>Comma separated series of longs formed from
323                                                 bitsets defining partitions on the rows/columns of the matrix
324                                         </xs:documentation>
325                                 </xs:annotation>
326                         </xs:element>
327                         <xs:element name="newick" type="xs:string" minOccurs="0"
328                                 maxOccurs="unbounded">
329                                 <xs:annotation>
330                                         <xs:documentation>tree computed for this</xs:documentation>
331                                 </xs:annotation>
332                         </xs:element>
333                         <xs:element name="property" type="vamsas:property"
334                                 minOccurs="0" maxOccurs="unbounded" />
335                         <xs:element name="mapping" type="vamsas:mapListType"
336                                 minOccurs="0" maxOccurs="1">
337                         <xs:annotation>
338                                 <xs:documentation>mapping from the matrix row and column positions to
339                                         associated reference frame</xs:documentation>
340                                 </xs:annotation>
341                         </xs:element>
342                 </xs:sequence>
343
344                 <xs:attribute name="type" type="xs:string" use="required" />
345                 <xs:attribute name="rows" type="xs:integer"
346                         use="required" />
347                 <xs:attribute name="cols" type="xs:integer"
348                         use="required" />
349                 <xs:attribute name="treeMethod" type="xs:string"
350                         use="optional" />
351                 <xs:attribute name="cutHeight" type="xs:double"
352                         use="optional" />
353                 <xs:attribute name="id" type="xs:string" use="required" />
354
355         </xs:complexType>
356         <xs:complexType name="MapOnAMatrixType">
357                 <xs:sequence>
358                         <xs:element name="property" type="vamsas:property"
359                                 minOccurs="0" maxOccurs="unbounded" />
360                         <xs:element name="mapping" type="vamsas:mapListType"
361                                 minOccurs="0" maxOccurs="1">
362                                 <xs:annotation>
363                                         <xs:documentation>mapping from the matrix row and column positions
364                                                 to
365                                                 associated reference frame
366                                         </xs:documentation>
367                                 </xs:annotation>
368                         </xs:element>
369                 </xs:sequence>
370         
371                 <xs:attribute name="matrix" type="xs:string"
372                         use="required">
373         
374                         <xs:annotation>
375                                 <xs:documentation>reference to the matrix type this Map refers to
376                                 </xs:documentation>
377                         </xs:annotation>
378                 </xs:attribute>
379                 <xs:attribute name="id" type="xs:string" use="optional" />
380         </xs:complexType>
381         <xs:complexType name="property">
382                 <xs:attribute name="name" type="xs:string" />
383                 <xs:attribute name="value" type="xs:string" />
384         </xs:complexType>
385                                 
386         
387 </xs:schema>