refactored to vamsas.xsd
[vamsas.git] / schemas / vamsas.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by MSD (EMBL OUTSTATION THE EBI WELLCOME TRUST GENOME CAMPUS) -->
3 <!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by lj (jl) -->
4 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="http://www.vamsas.org" targetNamespace="http://www.vamsas.org" elementFormDefault="qualified" attributeFormDefault="unqualified">
5         <xs:element name="Version" type="xs:string"/>
6         <xs:complexType name="LockFile">
7                 <xs:simpleContent>
8                         <xs:extension base="xs:string"/>
9                 </xs:simpleContent>
10         </xs:complexType>
11         <xs:complexType name="VAMSAS">
12                 <xs:sequence>
13                         <xs:element ref="vamsas:Tree" minOccurs="0" maxOccurs="unbounded"/>
14                         <xs:element ref="vamsas:SequenceSet" minOccurs="0" maxOccurs="unbounded"/>
15                 </xs:sequence>
16                 <xs:attribute name="id" type="xs:ID"  minOccurs="0" maxOccurs="1"/>
17     </xs:complexType>
18     <xs:element name="Tree">
19                 <xs:complexType>
20                 <xs:sequence>
21                         <xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1"/>
22                         <xs:element name="newick" minOccurs="1" maxOccurs="unbounded">
23                           <xs:complexType>
24                           <xs:simpleContent>
25                           <xs:extension base="xs:string">
26                           <xs:attribute name="title" type="xs:string" minOccurs="0" maxOccurs="1"/>
27                           <xs:attribute name="id" type="xs:ID" minOccurs="0" maxOccurs="1"/>
28                           </xs:extension>
29                           </xs:simpleContent>
30                           </xs:complexType>
31                         </xs:element>
32                         <xs:element ref="vamsas:Provenance" minOccurs="1" maxOccurs="1"/>
33                     </xs:sequence>
34                 <xs:attribute name="id" type="xs:ID" minOccurs="0" maxOccurs="1"/>
35         </xs:complexType>
36         </xs:element>
37         <xs:element name="Provenance">
38                 <xs:complexType>
39                         <xs:sequence>
40                                 <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
41                                         <xs:complexType>
42                                                 <xs:sequence>
43                                                         <xs:element name="User" type="xs:string"/>
44                                                         <xs:element name="Action" type="xs:string"/>
45                                                         <xs:element name="Date" type="xs:date"/>
46                                                 </xs:sequence>
47                                                 <xs:attribute name="id" type="xs:ID"  minOccurs="0" maxOccurs="1"/>
48                                         </xs:complexType>
49                                 </xs:element>
50                         </xs:sequence>
51                 </xs:complexType>
52         </xs:element>
53
54         <xs:element name="SequenceSet">
55                 <xs:complexType>
56                         <xs:sequence>
57                                 <xs:element name="Sequence" maxOccurs="unbounded">
58                                         <xs:complexType>
59                                                 <xs:complexContent>
60                                                         <xs:extension base="vamsas:SequenceType">
61                                                                 <xs:sequence>
62                                                                     <xs:element name="dbRef" minOccurs="0" maxOccurs="unbounded">
63                                                                         <xs:complexType>
64                                                                                 <xs:attribute name="source"/>
65                                                                                 <xs:attribute name="version"/>
66                                                                                 <xs:attribute name="accessionId"/>
67                                                                                 <xs:attribute name="id" type="xs:ID" minOccurs="0" maxOccurs="1"/>
68                                                                         </xs:complexType>
69                                                                         </xs:element>
70                                                                 </xs:sequence>
71                                                                 <xs:attribute name="id" type="xs:ID" minOccurs="1" maxOccurs="1"/>
72                                                                 <xs:attribute name="dictionary" type="xs:string"/>
73                                                         </xs:extension>
74                                                 </xs:complexContent>
75                                         </xs:complexType>
76                                 </xs:element>
77                                 <xs:element name="SequenceSetAnnotations" minOccurs="0" maxOccurs="unbounded">
78                                         <xs:complexType>
79                                                 <xs:sequence>
80                                                         <xs:element name="description" type="xs:string" minOccurs="0"/>
81                                                         <xs:element name="status" type="xs:string" minOccurs="0"/>
82                                                         <xs:element ref="vamsas:annotationElement" minOccurs="0" maxOccurs="unbounded"/>
83                                                         <xs:element ref="vamsas:Provenance" minOccurs="0" maxOccurs="unbounded"/>
84                                                 </xs:sequence>
85                                                 <xs:attribute name="type" type="xs:string" use="required"/>
86                                                 <xs:attribute name="end" type="xs:string" use="required"/>
87                                                 <xs:attribute name="begin" type="xs:string" use="required"/>
88                                                 <xs:attribute name="seqRef" type="xs:IDREF" use="required"/>
89                                                 <xs:attribute name="id" type="xs:ID" minOccurs="0" maxOccurs="1"/>
90                                         </xs:complexType>
91                                 </xs:element>
92                                 <xs:element name="Alignment" minOccurs="0" maxOccurs="unbounded">
93                                         <xs:complexType>
94                                                 <xs:sequence>
95                                                         <xs:element name="AlignmentAnnotations" minOccurs="0">
96                                                                 <xs:complexType>
97                                                                         <xs:sequence>
98                                                                                 <xs:element ref="vamsas:annotationElement" maxOccurs="unbounded"/>
99                                                                                 <xs:element name="label" type="xs:string"/>
100                                                                                 <xs:element name="description" type="xs:string"/>
101                                                                                 <xs:element ref="vamsas:Provenance"/>
102                                                                         </xs:sequence>
103                                                                         <xs:attribute name="graph" type="xs:boolean" use="required"/>
104                                                                         <xs:attribute name="id" type="xs:ID" minOccurs="0" maxOccurs="1"/>
105                                                                 </xs:complexType>
106                                                         </xs:element>
107                                                         <xs:element ref="vamsas:Tree" minOccurs="0" maxOccurs="unbounded"/>
108                                                         <xs:element name="alignmentSequence" minOccurs="2" maxOccurs="unbounded">
109                                                                 <xs:complexType>
110                                                                         <xs:complexContent>
111                                                                                 <xs:extension base="vamsas:SequenceType">
112                                                                                         <xs:attribute name="id" type="xs:ID" minOccurs="0" maxOccurs="1"/>
113                                                                                         <xs:attribute name="refid" type="xs:IDREF" use="required"/>
114                                                                                 </xs:extension>
115                                                                         </xs:complexContent>
116                                                                 </xs:complexType>
117                                                         </xs:element>
118                                                         <xs:element ref="vamsas:Provenance"/>
119                                                 </xs:sequence>
120                                                 <xs:attribute name="id" type="xs:ID" minOccurs="0" maxOccurs="1"/>
121                                         </xs:complexType>
122                                 </xs:element>
123                                 <xs:element ref="vamsas:Tree" minOccurs="0" maxOccurs="unbounded"/>
124                                 <xs:element ref="vamsas:Provenance"/>
125                         </xs:sequence>
126                         <xs:attribute name="gapChar" type="xs:string" use="required"/>
127                         <xs:attribute name="aligned" type="xs:boolean" use="optional"/>
128                         <xs:attribute name="id" type="xs:ID"  minOccurs="0" maxOccurs="1"/>
129                 </xs:complexType>
130         </xs:element>
131         <xs:element name="annotationElement">
132                 <xs:complexType>
133                         <xs:sequence>
134                                 <xs:element name="displayCharacter" type="xs:string"/>
135                                 <xs:element name="description" type="xs:string"/>
136                                 <xs:element name="secondaryStructure">
137                                         <xs:simpleType>
138                                                 <xs:restriction base="xs:string">
139                                                         <xs:length value="1"/>
140                                                 </xs:restriction>
141                                         </xs:simpleType>
142                                 </xs:element>
143                                 <xs:element name="value" type="xs:float"/>
144                         </xs:sequence>
145                         <xs:attribute name="position" type="xs:int" use="required"/>
146                         <xs:attribute name="id" type="xs:ID"  minOccurs="0" maxOccurs="1"/>
147                 </xs:complexType>
148         </xs:element>
149     <xs:complexType name="SequenceType">
150                 <xs:sequence>
151                         <xs:element name="sequence" type="xs:string"/>
152                         <xs:element name="name" type="xs:string"/>
153                 </xs:sequence>
154                 <xs:attribute name="start" type="xs:int" use="required"/>
155                 <xs:attribute name="end" type="xs:int" use="required"/>
156         </xs:complexType>
157         
158     <xs:complexType name="ApplicationData">
159                 <xs:sequence>
160                         <xs:element name="Application">
161                                 <xs:complexType>
162                                         <xs:sequence>
163                                           <xs:element name="User">
164                                           <xs:complexType>
165                                                 <xs:attribute name="fullname" type="xs:string"/>
166                                                 <xs:attribute name="organization" type="xs:string"/>
167                                                 <xs:attribute name="data" type="xs:string"/>
168                                           </xs:complexType>
169                                           </xs:element>
170                                         </xs:sequence>
171                                         <xs:attribute name="version" type="xs:string"/>
172                                         <xs:attribute name="name" type="xs:string"/>
173                                         <xs:attribute name="urn" type="xs:string"/>
174                                         <xs:attribute name="data" type="xs:string"/>
175                                 </xs:complexType>
176                         </xs:element>
177                 </xs:sequence>
178         </xs:complexType>
179 </xs:schema>