c037b1ab2cde30f965cddc3fd60644b9d0b0f31f
[jalview.git] / schemas / jalviewJvV1.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
4   Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, 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"
20                                  xmlns:vamsas="www.vamsas.org"
21                                  xmlns:jalview="www.jalview.org/colours"
22                                  xmlns:jv="www.jalview.org" 
23                                  targetNamespace="www.jalview.org" elementFormDefault="qualified" attributeFormDefault="unqualified">
24                                  
25         <xs:import schemaLocation="vamsasJvV1.xsd" namespace="www.vamsas.org"/>
26         <xs:import schemaLocation="jalviewUserColours.xsd" namespace="www.jalview.org/colours"/>
27         <xs:complexType name="JalviewModel">
28                 <xs:sequence>
29                         <xs:element name="creationDate" type="xs:dateTime"/>
30                         <xs:element name="version" type="xs:string"/>
31                         <xs:element name="vamsasModel" type="vamsas:VAMSAS"/>
32                         <xs:sequence>
33                                 <xs:element name="JSeq" maxOccurs="unbounded">
34                                         <xs:complexType>
35                                                 <xs:sequence>
36                                                          <xs:element name="features" type="jv:feature" minOccurs="0" maxOccurs="unbounded"/>
37                                                          <xs:element name="pdbids" type="jv:pdbentry" minOccurs="0" maxOccurs="unbounded"/>
38                                               </xs:sequence>
39                                               
40                                                     <xs:attribute name="colour" type="xs:int" use="optional"/>
41                                                         <xs:attribute name="start" type="xs:int" use="required"/>
42                                                         <xs:attribute name="end" type="xs:int" use="required"/>
43                                                         <xs:attribute name="id" type="xs:int" use="required"/>
44                                                 </xs:complexType>
45                                 </xs:element>
46                                 <xs:element name="JGroup" minOccurs="0" maxOccurs="unbounded">
47                                         <xs:complexType>
48                                                 <xs:sequence minOccurs="1">
49                                                         <xs:element name="seq" maxOccurs="unbounded" type="xs:int"/>
50                                                 </xs:sequence>
51                                                 <xs:attribute name="start" type="xs:int"/>
52                                                 <xs:attribute name="end" type="xs:int"/>
53                                                 <xs:attribute name="name" type="xs:string"/>
54                                                 <xs:attribute name="colour" type="xs:string"/>
55                                                 <xs:attribute name="consThreshold" type="xs:int"/>
56                                                 <xs:attribute name="pidThreshold" type="xs:int"/>
57                                                 <xs:attribute name="outlineColour" type="xs:int"/>
58                                                 <xs:attribute name="displayBoxes" type="xs:boolean"/>
59                                                 <xs:attribute name="displayText" type="xs:boolean"/>
60                                                 <xs:attribute name="colourText" type="xs:boolean"/>
61                                         </xs:complexType>
62                                 </xs:element>
63                                 <xs:element name="Viewport" maxOccurs="unbounded">
64                                         <xs:complexType>
65                                                 <xs:attribute name="conservationSelected" type="xs:boolean"/>
66                                                 <xs:attribute name="pidSelected" type="xs:boolean"/>
67                                                 <xs:attribute name="bgColour" type="xs:string"/>
68                                                 <xs:attribute name="consThreshold" type="xs:int"/>
69                                                 <xs:attribute name="pidThreshold" type="xs:int"/>
70                                                 <xs:attribute name="title" type="xs:string"/>
71                                                 <xs:attribute name="showFullId" type="xs:boolean"/>
72                                                 <xs:attribute name="showText" type="xs:boolean"/>
73                                                 <xs:attribute name="showColourText" type="xs:boolean"/>
74                                                 <xs:attribute name="showBoxes" type="xs:boolean"/>
75                                                 <xs:attribute name="wrapAlignment" type="xs:boolean"/>
76                                                 <xs:attribute name="renderGaps" type="xs:boolean"/>
77                                                 <xs:attribute name="showSequenceFeatures" type="xs:boolean"/>
78                                                 <xs:attribute name="showAnnotation" type="xs:boolean"/>
79                                                 <xs:attribute name="showConservation" type="xs:boolean"/>
80                                                 <xs:attribute name="showQuality" type="xs:boolean"/>
81                                                 <xs:attribute name="showIdentity" type="xs:boolean"/>
82                                                 <xs:attribute name="xpos" type="xs:int"/>
83                                                 <xs:attribute name="ypos" type="xs:int"/>
84                                                 <xs:attribute name="width" type="xs:int"/>
85                                                 <xs:attribute name="height" type="xs:int"/>
86                                                 <xs:attribute name="startRes" type="xs:int"/>
87                                                 <xs:attribute name="startSeq" type="xs:int"/>
88                                                 <xs:attribute name="fontName" type="xs:string"/>
89                                                 <xs:attribute name="fontSize" type="xs:int"/>
90                                                 <xs:attribute name="fontStyle" type="xs:int"/>
91                                         </xs:complexType>
92                                 </xs:element>
93                                 <xs:element name="UserColours" minOccurs="0" maxOccurs="unbounded">
94                                         <xs:complexType>
95                                                 <xs:sequence minOccurs="1">
96                                                         <xs:element name="UserColourScheme" type="jalview:JalviewUserColours"/>
97                                                 </xs:sequence>
98                                                 <xs:attribute name="id" type="xs:string"/>
99                                         </xs:complexType>
100                                 </xs:element>
101                                 <xs:element name="tree" minOccurs="0" maxOccurs="unbounded">
102                                         <xs:complexType>
103                                                 <xs:sequence minOccurs="0" maxOccurs="1">
104                                                         <xs:element name="title" type="xs:string"/>
105                                                         <xs:element name="newick" type="xs:string"/>
106                                                 </xs:sequence>
107                                                 <xs:attribute name="width" type="xs:int"/>
108                                                 <xs:attribute name="height" type="xs:int"/>
109                                                 <xs:attribute name="xpos" type="xs:int"/>
110                                                 <xs:attribute name="ypos" type="xs:int"/>
111                                                 <xs:attribute name="fontName" type="xs:string"/>
112                                                 <xs:attribute name="fontSize" type="xs:int"/>
113                                                 <xs:attribute name="fontStyle" type="xs:int"/>
114                                                 <xs:attribute name="threshold" type="xs:float"/>
115                                                 <xs:attribute name="showBootstrap" type="xs:boolean"/>
116                                                 <xs:attribute name="showDistances" type="xs:boolean"/>
117                                                 <xs:attribute name="markUnlinked" type="xs:boolean"/>
118                                                 <xs:attribute name="fitToWindow" type="xs:boolean"/>
119                                                 <xs:attribute name="currentTree" type="xs:boolean"/>
120                                         </xs:complexType>
121                                 </xs:element>
122                                 
123                                 <xs:element name="FeatureSettings" minOccurs="0" maxOccurs="1">
124                                                 <xs:complexType>
125                                 <xs:sequence>
126                                         <xs:element name="setting" minOccurs="0" maxOccurs="unbounded">
127                                                 <xs:complexType>
128                                                         <xs:attribute name="type" type="xs:string" use="required"/>
129                                                         <xs:attribute name="colour" type="xs:int" use="required"/>
130                                                         <xs:attribute name="display" type="xs:boolean" use="required"/>
131                                                 </xs:complexType>
132                                         </xs:element>
133                                 </xs:sequence>
134                                 </xs:complexType>
135                                 </xs:element>
136                                 
137                         </xs:sequence>
138                 </xs:sequence>
139         </xs:complexType>
140         
141         <xs:complexType name="feature">
142                 <xs:attribute name="begin" type="xs:int" use="required"/>
143                 <xs:attribute name="end" type="xs:int" use="required"/>
144                 <xs:attribute name="type" type="xs:string" use="required"/>
145                 <xs:attribute name="description" type="xs:string" use="optional"/>
146                 <xs:attribute name="status" type="xs:string" use="optional"/>
147         </xs:complexType>
148                 
149         <xs:complexType name="pdbentry">
150                 <xs:sequence minOccurs="0" maxOccurs="unbounded">
151                         <xs:element name="property" minOccurs="0" maxOccurs="unbounded">
152                                 <xs:complexType>
153                                         <xs:attribute name="name" type="xs:string" use="required"/>
154                                         <xs:attribute name="value" type="xs:string" use="required"/>
155                                 </xs:complexType>
156                         </xs:element>
157                 </xs:sequence>
158                 <xs:attribute name="id" type="xs:string" use="required"/>
159                 <xs:attribute name="type" type="xs:string" use="optional"/>
160         </xs:complexType>
161         
162 </xs:schema>