f0d1fa862ae150b69648584ce2c26a9a65785f66
[cdmlib.git] / cdmlib-io / src / main / resources / schema / cdm / taxon.xsd
1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2 <xs:schema elementFormDefault="qualified" version="1.0"
3 targetNamespace="http://etaxonomy.eu/cdm/model/taxon/1.0"
4 xmlns:taxon="http://etaxonomy.eu/cdm/model/taxon/1.0"
5 xmlns:reference="http://etaxonomy.eu/cdm/model/reference/1.0"
6 xmlns:common="http://etaxonomy.eu/cdm/model/common/1.0"
7 xmlns:name="http://etaxonomy.eu/cdm/model/name/1.0"
8 xmlns:xs="http://www.w3.org/2001/XMLSchema"
9 xmlns:description="http://etaxonomy.eu/cdm/model/description/1.0"
10 xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
11 xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
12 jxb:extensionBindingPrefixes="xjc"
13 jxb:version="2.1"
14 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
15 xsi:schemaLocation="http://www.w3.org/XML/1998/namespace
16 http://www.w3.org/2005/08/xml.xsd
17 http://www.w3.org/2001/XMLSchema
18 http://www.w3.org/2001/XMLSchema.xsd">
19 <xs:import namespace="http://etaxonomy.eu/cdm/model/common/1.0" schemaLocation="common.xsd"/>
20 <xs:import namespace="http://etaxonomy.eu/cdm/model/description/1.0" schemaLocation="description.xsd"/>
21 <xs:import namespace="http://etaxonomy.eu/cdm/model/name/1.0" schemaLocation="name.xsd"/>
22 <xs:import namespace="http://etaxonomy.eu/cdm/model/reference/1.0" schemaLocation="reference.xsd"/>
23 <xs:annotation>
24 <xs:appinfo>
25 <jxb:schemaBindings>
26 <jxb:package name="eu.etaxonomy.cdm.model.taxon"/>
27 </jxb:schemaBindings>
28 </xs:appinfo>
29 </xs:annotation>
30 <xs:element name="Synonym" type="taxon:Synonym"/>
31
32 <xs:element name="SynonymRelationship" type="taxon:SynonymRelationship"/>
33
34 <xs:element name="SynonymRelationshipType" type="taxon:SynonymRelationshipType"/>
35
36 <xs:element name="Taxon" type="taxon:Taxon"/>
37
38 <xs:element name="TaxonNode" type="taxon:TaxonNode"/>
39
40 <xs:element name="TaxonRelationship" type="taxon:TaxonRelationship"/>
41
42 <xs:element name="TaxonRelationshipType" type="taxon:TaxonRelationshipType"/>
43
44 <xs:element name="TaxonomicTree" type="taxon:TaxonomicTree"/>
45
46 <xs:complexType name="SynonymRelationshipType">
47 <xs:complexContent>
48 <xs:extension base="common:RelationshipTermBase">
49 <xs:sequence/>
50 </xs:extension>
51 </xs:complexContent>
52 </xs:complexType>
53
54 <xs:complexType name="TaxonRelationshipType">
55 <xs:complexContent>
56 <xs:extension base="common:RelationshipTermBase">
57 <xs:sequence/>
58 </xs:extension>
59 </xs:complexContent>
60 </xs:complexType>
61
62 <xs:complexType name="Taxon">
63 <xs:complexContent>
64 <xs:extension base="taxon:TaxonBase">
65 <xs:sequence>
66 <xs:element name="TaxonomicParentCache" type="xs:IDREF" minOccurs="0"/>
67 <xs:element name="taxonNodes" minOccurs="0">
68 <xs:complexType>
69 <xs:sequence>
70 <xs:element name="taxonNode" type="taxon:TaxonNode" minOccurs="0" maxOccurs="unbounded"/>
71 </xs:sequence>
72 </xs:complexType>
73 </xs:element>
74 <xs:element name="TaxonomicChildrenCount" type="xs:int"/>
75 <xs:element name="SynonymRelations" minOccurs="0">
76 <xs:complexType>
77 <xs:sequence>
78 <xs:element ref="taxon:SynonymRelationship" minOccurs="0" maxOccurs="unbounded"/>
79 </xs:sequence>
80 </xs:complexType>
81 </xs:element>
82 <xs:element name="RelationsFromThisTaxon" minOccurs="0">
83 <xs:complexType>
84 <xs:sequence>
85 <xs:element name="FromThisTaxonRelationship" type="taxon:TaxonRelationship" minOccurs="0" maxOccurs="unbounded"/>
86 </xs:sequence>
87 </xs:complexType>
88 </xs:element>
89 <xs:element name="RelationsToThisTaxon" minOccurs="0">
90 <xs:complexType>
91 <xs:sequence>
92 <xs:element name="ToThisTaxonRelationship" type="xs:IDREF" minOccurs="0" maxOccurs="unbounded"/>
93 </xs:sequence>
94 </xs:complexType>
95 </xs:element>
96 <xs:element name="Descriptions" minOccurs="0">
97 <xs:complexType>
98 <xs:sequence>
99 <xs:element name="Description" type="description:TaxonDescription" minOccurs="0" maxOccurs="unbounded"/>
100 </xs:sequence>
101 </xs:complexType>
102 </xs:element>
103 </xs:sequence>
104 <xs:attribute name="taxonStatusUnknown" type="xs:boolean" use="required"/>
105 </xs:extension>
106 </xs:complexContent>
107 </xs:complexType>
108
109 <xs:complexType name="TaxonBase" abstract="true">
110 <xs:complexContent>
111 <xs:extension base="common:IdentifiableEntity">
112 <xs:sequence>
113 <xs:element name="Name" type="xs:IDREF"/>
114 <xs:element name="Sec" type="xs:IDREF" minOccurs="0"/>
115 </xs:sequence>
116 <xs:attribute name="isDoubtful" type="xs:boolean" use="required"/>
117 </xs:extension>
118 </xs:complexContent>
119 </xs:complexType>
120
121 <xs:complexType name="TaxonomicTree">
122 <xs:complexContent>
123 <xs:extension base="common:IdentifiableEntity">
124 <xs:sequence>
125 <xs:element name="Name" type="common:LanguageString" minOccurs="0"/>
126 <xs:element name="rootNodes" minOccurs="0">
127 <xs:complexType>
128 <xs:sequence>
129 <xs:element name="rootNode" type="xs:IDREF" minOccurs="0" maxOccurs="unbounded"/>
130 </xs:sequence>
131 </xs:complexType>
132 </xs:element>
133 <xs:element name="reference" type="xs:IDREF" minOccurs="0"/>
134 <xs:element name="microReference" type="xs:string" minOccurs="0"/>
135 </xs:sequence>
136 </xs:extension>
137 </xs:complexContent>
138 </xs:complexType>
139
140 <xs:complexType name="TaxonNode">
141 <xs:complexContent>
142 <xs:extension base="common:AnnotatableEntity">
143 <xs:sequence>
144 <xs:element name="taxon" type="xs:IDREF" minOccurs="0"/>
145 <xs:element name="parent" type="xs:IDREF" minOccurs="0"/>
146 <xs:element name="taxonomicTree" type="xs:IDREF" minOccurs="0"/>
147 <xs:element name="childNodes" minOccurs="0">
148 <xs:complexType>
149 <xs:sequence>
150 <xs:element name="childNode" type="xs:IDREF" minOccurs="0" maxOccurs="unbounded"/>
151 </xs:sequence>
152 </xs:complexType>
153 </xs:element>
154 <xs:element name="reference" type="xs:IDREF" minOccurs="0"/>
155 <xs:element name="microReference" type="xs:string" minOccurs="0"/>
156 <xs:element name="countChildren" type="xs:int"/>
157 <xs:element name="synonymToBeUsed" type="xs:IDREF" minOccurs="0"/>
158 </xs:sequence>
159 </xs:extension>
160 </xs:complexContent>
161 </xs:complexType>
162
163 <xs:complexType name="SynonymRelationship">
164 <xs:complexContent>
165 <xs:extension base="common:RelationshipBase">
166 <xs:sequence>
167 <xs:element name="RelatedFrom" type="xs:IDREF" minOccurs="0"/>
168 <xs:element name="RelatedTo" type="xs:IDREF" minOccurs="0"/>
169 <xs:element name="Type" type="xs:IDREF" minOccurs="0"/>
170 <xs:element name="IsProParte" type="xs:boolean"/>
171 <xs:element name="IsPartial" type="xs:boolean"/>
172 </xs:sequence>
173 </xs:extension>
174 </xs:complexContent>
175 </xs:complexType>
176
177 <xs:complexType name="Synonym">
178 <xs:complexContent>
179 <xs:extension base="taxon:TaxonBase">
180 <xs:sequence>
181 <xs:element name="SynonymRelations" minOccurs="0">
182 <xs:complexType>
183 <xs:sequence>
184 <xs:element name="SynonymRelationship" type="xs:IDREF" minOccurs="0" maxOccurs="unbounded"/>
185 </xs:sequence>
186 </xs:complexType>
187 </xs:element>
188 </xs:sequence>
189 </xs:extension>
190 </xs:complexContent>
191 </xs:complexType>
192
193 <xs:complexType name="TaxonRelationship">
194 <xs:complexContent>
195 <xs:extension base="common:RelationshipBase">
196 <xs:sequence>
197 <xs:element name="RelatedFrom" type="xs:IDREF" minOccurs="0"/>
198 <xs:element name="RelatedTo" type="xs:IDREF" minOccurs="0"/>
199 <xs:element name="Type" type="xs:IDREF" minOccurs="0"/>
200 </xs:sequence>
201 </xs:extension>
202 </xs:complexContent>
203 </xs:complexType>
204 </xs:schema>
205