Committing large number of changes relating to versioning implementation (#108) ...
[cdmlib.git] / cdmlib-io / src / main / resources / schema / cdm / agent.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema elementFormDefault="qualified"
3 attributeFormDefault="unqualified" version="1.0"
4 targetNamespace="http://etaxonomy.eu/cdm/model/agent/1.0" xmlns:agent="http://etaxonomy.eu/cdm/model/agent/1.0"
5 xmlns:common="http://etaxonomy.eu/cdm/model/common/1.0" xmlns:location="http://etaxonomy.eu/cdm/model/location/1.0"
6 xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:media="http://etaxonomy.eu/cdm/model/media/1.0"
7 xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
8 jxb:extensionBindingPrefixes="xjc" jxb:version="2.1"
9 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10 xsi:schemaLocation="http://www.w3.org/XML/1998/namespace
11 http://www.w3.org/2005/08/xml.xsd
12 http://www.w3.org/2001/XMLSchema
13 http://www.w3.org/2001/XMLSchema.xsd">
14 <xs:import namespace="http://etaxonomy.eu/cdm/model/common/1.0"
15 schemaLocation="common.xsd" />
16 <xs:import namespace="http://etaxonomy.eu/cdm/model/media/1.0"
17 schemaLocation="media.xsd" />
18 <xs:import namespace="http://etaxonomy.eu/cdm/model/location/1.0"
19 schemaLocation="location.xsd" />
20 <xs:annotation>
21 <xs:appinfo>
22 <jxb:schemaBindings>
23 <jxb:package name="eu.etaxonomy.cdm.model.agent" />
24 </jxb:schemaBindings>
25 </xs:appinfo>
26 </xs:annotation>
27 <xs:element name="Address">
28 <xs:complexType>
29 <xs:complexContent>
30 <xs:extension base="common:VersionableEntity">
31 <xs:sequence>
32 <xs:element name="POBox" type="xs:string" minOccurs="0" />
33 <xs:element name="Street" type="xs:string" minOccurs="0" />
34 <xs:element name="Postcode" type="xs:string" minOccurs="0" />
35 <xs:element name="Locality" type="xs:string" />
36 <xs:element name="Region" type="xs:string" minOccurs="0" />
37 <xs:element name="Country" type="xs:IDREF" minOccurs="0" />
38 <xs:element name="Location" type="location:Point"
39 minOccurs="0" />
40 </xs:sequence>
41 </xs:extension>
42 </xs:complexContent>
43 </xs:complexType>
44 </xs:element>
45
46 <xs:element name="Contact" type="agent:Contact" />
47
48 <xs:element name="Institution" type="agent:Institution" />
49
50 <xs:element name="InstitutionType" type="agent:InstitutionType" />
51
52 <xs:element name="InstitutionalMembership" type="agent:InstitutionalMembership" />
53
54 <xs:element name="Person">
55 <xs:complexType>
56 <xs:complexContent>
57 <xs:extension base="agent:TeamOrPersonBase">
58 <xs:sequence>
59 <xs:element name="Prefix" type="xs:string" minOccurs="0" />
60 <xs:element name="FirstName" type="xs:string"
61 minOccurs="0" />
62 <xs:element name="LastName" type="xs:string" minOccurs="0" />
63 <xs:element name="Suffix" type="xs:string" minOccurs="0" />
64 <xs:element name="Lifespan" type="common:TimePeriod"
65 minOccurs="0" />
66 <xs:element name="InstitutionalMemberships" minOccurs="0">
67 <xs:complexType>
68 <xs:sequence>
69 <xs:element ref="agent:InstitutionalMembership"
70 minOccurs="0" maxOccurs="unbounded" />
71 </xs:sequence>
72 </xs:complexType>
73 </xs:element>
74 <xs:element name="Keywords" minOccurs="0">
75 <xs:complexType>
76 <xs:sequence>
77 <xs:element name="Keyword" type="xs:IDREF"
78 minOccurs="0" maxOccurs="unbounded" />
79 </xs:sequence>
80 </xs:complexType>
81 </xs:element>
82 </xs:sequence>
83 </xs:extension>
84 </xs:complexContent>
85 </xs:complexType>
86 </xs:element>
87
88 <xs:element name="Team" type="agent:Team" />
89
90 <xs:complexType name="TeamOrPersonBase" abstract="true">
91 <xs:complexContent>
92 <xs:extension base="agent:AgentBase">
93 <xs:sequence>
94 <xs:element name="NomenclaturalTitle" type="xs:string"
95 minOccurs="0" />
96 </xs:sequence>
97 </xs:extension>
98 </xs:complexContent>
99 </xs:complexType>
100
101 <xs:complexType name="AgentBase" abstract="true">
102 <xs:complexContent>
103 <xs:extension base="media:IdentifiableMediaEntity">
104 <xs:sequence>
105 <xs:element name="Contact" type="agent:Contact"
106 minOccurs="0" />
107 </xs:sequence>
108 </xs:extension>
109 </xs:complexContent>
110 </xs:complexType>
111
112 <xs:complexType name="InstitutionalMembership">
113 <xs:complexContent>
114 <xs:extension base="common:VersionableEntity">
115 <xs:sequence>
116 <xs:element name="Period" type="common:TimePeriod"
117 minOccurs="0" />
118 <xs:element name="Department" type="xs:string"
119 minOccurs="0" />
120 <xs:element name="Role" type="xs:string" minOccurs="0" />
121 <xs:element name="Institution" type="xs:IDREF" />
122 <xs:element name="Person" type="xs:IDREF" />
123 </xs:sequence>
124 </xs:extension>
125 </xs:complexContent>
126 </xs:complexType>
127
128 <xs:complexType name="Institution">
129 <xs:complexContent>
130 <xs:extension base="agent:AgentBase">
131 <xs:sequence>
132 <xs:element name="Code" type="xs:string" minOccurs="0" />
133 <xs:element name="Name" type="xs:string" minOccurs="0" />
134 <xs:element name="Types" minOccurs="0">
135 <xs:complexType>
136 <xs:sequence>
137 <xs:element name="Type" type="xs:IDREF" minOccurs="0"
138 maxOccurs="unbounded" />
139 </xs:sequence>
140 </xs:complexType>
141 </xs:element>
142 <xs:element name="IsPartOf" type="xs:IDREF" minOccurs="0" />
143 </xs:sequence>
144 </xs:extension>
145 </xs:complexContent>
146 </xs:complexType>
147
148 <xs:complexType name="InstitutionType">
149 <xs:complexContent>
150 <xs:extension base="common:DefinedTermBase">
151 <xs:sequence />
152 </xs:extension>
153 </xs:complexContent>
154 </xs:complexType>
155
156 <xs:complexType name="Contact">
157 <xs:sequence>
158 <xs:element name="EmailAddresses" minOccurs="0">
159 <xs:complexType>
160 <xs:sequence>
161 <xs:element name="EmailAddress" minOccurs="0"
162 maxOccurs="unbounded">
163 <xs:simpleType>
164 <xs:restriction base="xs:string">
165 <xs:pattern
166 value="[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+)*@[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+)*" />
167 </xs:restriction>
168 </xs:simpleType>
169 </xs:element>
170 </xs:sequence>
171 </xs:complexType>
172 </xs:element>
173 <xs:element name="URLs" minOccurs="0">
174 <xs:complexType>
175 <xs:sequence>
176 <xs:element name="URL" type="xs:anyURI" minOccurs="0"
177 maxOccurs="unbounded" />
178 </xs:sequence>
179 </xs:complexType>
180 </xs:element>
181 <xs:element name="PhoneNumbers" minOccurs="0">
182 <xs:complexType>
183 <xs:sequence>
184 <xs:element name="PhoneNumber" type="xs:string"
185 minOccurs="0" maxOccurs="unbounded" />
186 </xs:sequence>
187 </xs:complexType>
188 </xs:element>
189 <xs:element name="FaxNumbers" minOccurs="0">
190 <xs:complexType>
191 <xs:sequence>
192 <xs:element name="FaxNumber" type="xs:string"
193 minOccurs="0" maxOccurs="unbounded" />
194 </xs:sequence>
195 </xs:complexType>
196 </xs:element>
197 <xs:element name="Addresses" minOccurs="0">
198 <xs:complexType>
199 <xs:sequence>
200 <xs:element ref="agent:Address" minOccurs="0"
201 maxOccurs="unbounded" />
202 </xs:sequence>
203 </xs:complexType>
204 </xs:element>
205 </xs:sequence>
206 </xs:complexType>
207
208 <xs:complexType name="Team">
209 <xs:complexContent>
210 <xs:extension base="agent:TeamOrPersonBase">
211 <xs:sequence>
212 <xs:element name="ProtectedNomenclaturalTitleCache"
213 type="xs:boolean" />
214 <xs:element name="TeamMembers" minOccurs="0">
215 <xs:complexType>
216 <xs:sequence>
217 <xs:element name="TeamMember" type="xs:IDREF"
218 minOccurs="0" maxOccurs="unbounded" />
219 </xs:sequence>
220 </xs:complexType>
221 </xs:element>
222 </xs:sequence>
223 </xs:extension>
224 </xs:complexContent>
225 </xs:complexType>
226 </xs:schema>
227