made vamsas a proper root element in schema and added example document.
[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:annotation>
7                 <xs:documentation>Vamsas Document Version Number</xs:documentation>
8         </xs:annotation>
9         <xs:element name="LockFile">
10                 <xs:complexType>
11                         <xs:simpleContent>
12                                 <xs:extension base="xs:string"/>
13                         </xs:simpleContent>
14                 </xs:complexType>
15         </xs:element>
16         <xs:element name="VAMSAS">
17                 <xs:complexType>
18                         <xs:sequence>
19                                 <xs:element ref="vamsas:Tree" minOccurs="0" maxOccurs="unbounded"/>
20                                 <xs:element ref="vamsas:SequenceSet" minOccurs="0" maxOccurs="unbounded"/>
21                         </xs:sequence>
22                         <xs:attribute name="id" type="xs:ID" use="optional"/>
23                 </xs:complexType>
24         </xs:element>
25         <xs:element name="Tree">
26                 <xs:complexType>
27                         <xs:sequence>
28                                 <xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1"/>
29                                 <xs:element name="newick" minOccurs="1" maxOccurs="unbounded">
30                                         <xs:complexType>
31                                                 <xs:simpleContent>
32                                                         <xs:extension base="xs:string">
33                                                                 <xs:attribute name="title" type="xs:string" use="optional"/>
34                                                                 <xs:attribute name="id" type="xs:ID" use="optional"/>
35                                                         </xs:extension>
36                                                 </xs:simpleContent>
37                                         </xs:complexType>
38                                 </xs:element>
39                                 <xs:element ref="vamsas:Provenance" minOccurs="1" maxOccurs="1"/>
40                         </xs:sequence>
41                         <xs:attribute name="id" type="xs:ID" use="optional"/>
42                 </xs:complexType>
43         </xs:element>
44         <xs:element name="Provenance">
45                 <xs:complexType>
46                         <xs:sequence>
47                                 <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
48                                         <xs:complexType>
49                                                 <xs:sequence>
50                                                         <xs:element name="User" type="xs:string"/>
51                                                         <xs:element name="Action" type="xs:string"/>
52                                                         <xs:element name="Date" type="xs:date"/>
53                                                 </xs:sequence>
54                                                 <xs:attribute name="id" type="xs:ID" use="optional"/>
55                                         </xs:complexType>
56                                 </xs:element>
57                         </xs:sequence>
58                 </xs:complexType>
59         </xs:element>
60         <xs:element name="SequenceSet">
61                 <xs:complexType>
62                         <xs:sequence>
63                                 <xs:element name="Sequence" maxOccurs="unbounded">
64                                         <xs:complexType>
65                                                 <xs:complexContent>
66                                                         <xs:extension base="vamsas:SequenceType">
67                                                                 <xs:sequence>
68                                                                         <xs:element name="dbRef" minOccurs="0" maxOccurs="unbounded">
69                                                                                 <xs:complexType>
70                                                                                         <xs:attribute name="source"/>
71                                                                                         <xs:attribute name="version"/>
72                                                                                         <xs:attribute name="accessionId"/>
73                                                                                         <xs:attribute name="id" type="xs:ID" use="optional"/>
74                                                                                 </xs:complexType>
75                                                                         </xs:element>
76                                                                 </xs:sequence>
77                                                                 <xs:attribute name="id" type="xs:ID" use="required"/>
78                                                                 <xs:attribute name="dictionary" type="xs:string"/>
79                                                         </xs:extension>
80                                                 </xs:complexContent>
81                                         </xs:complexType>
82                                 </xs:element>
83                                 <xs:element name="SequenceSetAnnotations" minOccurs="0" maxOccurs="unbounded">
84                                         <xs:complexType>
85                                                 <xs:sequence>
86                                                         <xs:element name="description" type="xs:string" minOccurs="0"/>
87                                                         <xs:element name="status" type="xs:string" minOccurs="0"/>
88                                                         <xs:element ref="vamsas:annotationElement" minOccurs="0" maxOccurs="unbounded"/>
89                                                         <xs:element ref="vamsas:Provenance" minOccurs="0" maxOccurs="unbounded"/>
90                                                 </xs:sequence>
91                                                 <xs:attribute name="type" type="xs:string" use="required"/>
92                                                 <xs:attribute name="end" type="xs:string" use="required"/>
93                                                 <xs:attribute name="begin" type="xs:string" use="required"/>
94                                                 <xs:attribute name="seqRef" type="xs:IDREF" use="required"/>
95                                                 <xs:attribute name="id" type="xs:ID" use="optional"/>
96                                         </xs:complexType>
97                                 </xs:element>
98                                 <xs:element name="Alignment" minOccurs="0" maxOccurs="unbounded">
99                                         <xs:complexType>
100                                                 <xs:sequence>
101                                                         <xs:element name="AlignmentAnnotations" minOccurs="0">
102                                                                 <xs:complexType>
103                                                                         <xs:sequence>
104                                                                                 <xs:element ref="vamsas:annotationElement" maxOccurs="unbounded"/>
105                                                                                 <xs:element name="label" type="xs:string"/>
106                                                                                 <xs:element name="description" type="xs:string"/>
107                                                                                 <xs:element ref="vamsas:Provenance"/>
108                                                                         </xs:sequence>
109                                                                         <xs:attribute name="graph" type="xs:boolean" use="required"/>
110                                                                         <xs:attribute name="id" type="xs:ID" use="optional"/>
111                                                                 </xs:complexType>
112                                                         </xs:element>
113                                                         <xs:element ref="vamsas:Tree" minOccurs="0" maxOccurs="unbounded"/>
114                                                         <xs:element name="alignmentSequence" minOccurs="2" maxOccurs="unbounded">
115                                                                 <xs:complexType>
116                                                                         <xs:complexContent>
117                                                                                 <xs:extension base="vamsas:SequenceType">
118                                                                                         <xs:attribute name="id" type="xs:ID" use="optional"/>
119                                                                                         <xs:attribute name="refid" type="xs:IDREF" use="required"/>
120                                                                                 </xs:extension>
121                                                                         </xs:complexContent>
122                                                                 </xs:complexType>
123                                                         </xs:element>
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" use="optional"/>
129                                         </xs:complexType>
130                                 </xs:element>
131                                 <xs:element ref="vamsas:Tree" minOccurs="0" maxOccurs="unbounded"/>
132                                 <xs:element ref="vamsas:Provenance"/>
133                         </xs:sequence>
134                         <xs:attribute name="id" type="xs:ID" use="optional"/>
135                 </xs:complexType>
136         </xs:element>
137         <xs:element name="annotationElement">
138                 <xs:complexType>
139                         <xs:sequence>
140                                 <xs:element name="displayCharacter" type="xs:string"/>
141                                 <xs:element name="description" type="xs:string"/>
142                                 <xs:element name="secondaryStructure">
143                                         <xs:simpleType>
144                                                 <xs:restriction base="xs:string">
145                                                         <xs:length value="1"/>
146                                                 </xs:restriction>
147                                         </xs:simpleType>
148                                 </xs:element>
149                                 <xs:element name="value" type="xs:float"/>
150                         </xs:sequence>
151                         <xs:attribute name="position" type="xs:int" use="required"/>
152                         <xs:attribute name="id" type="xs:ID" use="optional"/>
153                 </xs:complexType>
154         </xs:element>
155         <xs:complexType name="SequenceType">
156                 <xs:sequence>
157                         <xs:element name="sequence" type="xs:string"/>
158                         <xs:element name="name" type="xs:string"/>
159                 </xs:sequence>
160                 <xs:attribute name="start" type="xs:int" use="required"/>
161                 <xs:attribute name="end" type="xs:int" use="required"/>
162         </xs:complexType>
163         <xs:element name="ApplicationData">
164                 <xs:complexType>
165                         <xs:sequence>
166                                 <xs:element name="Application">
167                                         <xs:complexType>
168                                                 <xs:sequence>
169                                                         <xs:element name="User">
170                                                                 <xs:complexType>
171                                                                         <xs:attribute name="fullname" type="xs:string"/>
172                                                                         <xs:attribute name="organization" type="xs:string"/>
173                                                                         <xs:attribute name="data" type="xs:string"/>
174                                                                 </xs:complexType>
175                                                         </xs:element>
176                                                 </xs:sequence>
177                                                 <xs:attribute name="version" type="xs:string"/>
178                                                 <xs:attribute name="name" type="xs:string"/>
179                                                 <xs:attribute name="urn" type="xs:string"/>
180                                                 <xs:attribute name="data" type="xs:string"/>
181                                         </xs:complexType>
182                                 </xs:element>
183                         </xs:sequence>
184                 </xs:complexType>
185         </xs:element>
186 </xs:schema>