JAL-4107 fix merge and avoid NPE
[jalview.git] / schemas / vamsasJvV1.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 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="www.vamsas.org" targetNamespace="www.vamsas.org" elementFormDefault="qualified" attributeFormDefault="unqualified">
22         <xs:complexType name="VAMSAS">
23                 <xs:sequence>
24                         <xs:element name="Alignment" minOccurs="0" maxOccurs="unbounded">
25                                 <xs:complexType>
26                                         <xs:sequence>
27                                                 <xs:element name="Annotation" minOccurs="0">
28                                                         <xs:complexType>
29                                                                 <xs:sequence>
30                                                                         <xs:element ref="vamsas:annotationElement" maxOccurs="unbounded"/>
31                                                                         <xs:element name="label" type="xs:string"/>
32                                                                         <xs:element name="description" type="xs:string"/>
33                                                                 </xs:sequence>
34                                                                 <xs:attribute name="graph" type="xs:boolean" use="required"/>
35                                                                 <xs:attribute name="graphType" type="xs:int" use="optional"/>
36                                                         </xs:complexType>
37                                                 </xs:element>
38                                                 <xs:element ref="vamsas:SequenceSet"/>
39                                         </xs:sequence>
40                                 </xs:complexType>
41                         </xs:element>
42                         <xs:element name="Tree" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
43                         <xs:element ref="vamsas:SequenceSet" minOccurs="0" maxOccurs="unbounded"/>
44                 </xs:sequence>
45         </xs:complexType>
46         <xs:element name="SequenceSet">
47                 <xs:complexType>
48                         <xs:sequence>
49                                 <xs:element name="Sequence" type="vamsas:SequenceType" maxOccurs="unbounded"/>
50                                 <xs:element name="Annotation" minOccurs="0" maxOccurs="unbounded">
51                                         <xs:complexType>
52                                                 <xs:sequence>
53                                                         <xs:element name="description" type="xs:string" minOccurs="0"/>
54                                                         <xs:element name="status" type="xs:string" minOccurs="0"/>
55                                                         <xs:element ref="vamsas:annotationElement" minOccurs="0" maxOccurs="unbounded"/>
56                                                 </xs:sequence>
57                                                 <xs:attribute name="type" type="xs:string" use="required"/>
58                                                 <xs:attribute name="end" type="xs:string" use="required"/>
59                                                 <xs:attribute name="begin" type="xs:string" use="required"/>
60                                                 <xs:attribute name="seqRef" type="xs:string" use="required"/>
61                                         </xs:complexType>
62                                 </xs:element>
63                         </xs:sequence>
64                         <xs:attribute name="gapChar" type="xs:string" use="required"/>
65                         <xs:attribute name="aligned" type="xs:boolean" use="optional"/>
66                 </xs:complexType>
67         </xs:element>
68         <xs:element name="annotationElement">
69                 <xs:complexType>
70                         <xs:sequence>
71                                 <xs:element name="displayCharacter" type="xs:string"/>
72                                 <xs:element name="description" type="xs:string"/>
73                                 <xs:element name="secondaryStructure">
74                                         <xs:simpleType>
75                                                 <xs:restriction base="xs:string">
76                                                         <xs:length value="1"/>
77                                                 </xs:restriction>
78                                         </xs:simpleType>
79                                 </xs:element>
80                                 <xs:element name="value" type="xs:float"/>
81                         </xs:sequence>
82                         <xs:attribute name="position" type="xs:int" use="required"/>
83                 </xs:complexType>
84         </xs:element>
85         <xs:complexType name="SequenceType">
86                 <xs:sequence>
87                         <xs:element name="sequence" type="xs:string"/>
88                         <xs:element name="name" type="xs:string"/>
89                 </xs:sequence>
90                 <xs:attribute name="id" type="xs:string"/>
91         </xs:complexType>
92 </xs:schema>