View Javadoc

1   //
2   // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 
3   // See <a href="http://java.sun.com/xml/jaxb"&gt;http://java.sun.com/xml/jaxb</a> 
4   // Any modifications to this file will be lost upon recompilation of the source schema. 
5   // Generated on: 2019.02.11 at 04:29:56 PM CET 
6   //
7   package org.datacite.schema.kernel_4;
8   
9   import java.io.Serializable;
10  import java.util.ArrayList;
11  import java.util.List;
12  import javax.xml.bind.JAXBElement;
13  import javax.xml.bind.annotation.XmlAccessType;
14  import javax.xml.bind.annotation.XmlAccessorType;
15  import javax.xml.bind.annotation.XmlAttribute;
16  import javax.xml.bind.annotation.XmlElement;
17  import javax.xml.bind.annotation.XmlElementRef;
18  import javax.xml.bind.annotation.XmlElements;
19  import javax.xml.bind.annotation.XmlMixed;
20  import javax.xml.bind.annotation.XmlRootElement;
21  import javax.xml.bind.annotation.XmlSchemaType;
22  import javax.xml.bind.annotation.XmlType;
23  import javax.xml.bind.annotation.XmlValue;
24  import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
25  import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
26  
27  /**
28   * <p>
29   * Java class for anonymous complex type.
30   *
31   * <p>
32   * The following schema fragment specifies the expected content contained within
33   * this class.
34   *
35   * <pre>
36   * &lt;complexType&gt;
37   *   &lt;complexContent&gt;
38   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
39   *       &lt;all&gt;
40   *         &lt;element name="identifier"&gt;
41   *           &lt;complexType&gt;
42   *             &lt;simpleContent&gt;
43   *               &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;doiType"&gt;
44   *                 &lt;attribute name="identifierType" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="DOI" /&gt;
45   *               &lt;/extension&gt;
46   *             &lt;/simpleContent&gt;
47   *           &lt;/complexType&gt;
48   *         &lt;/element&gt;
49   *         &lt;element name="creators"&gt;
50   *           &lt;complexType&gt;
51   *             &lt;complexContent&gt;
52   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
53   *                 &lt;sequence&gt;
54   *                   &lt;element name="creator" maxOccurs="unbounded"&gt;
55   *                     &lt;complexType&gt;
56   *                       &lt;complexContent&gt;
57   *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
58   *                           &lt;sequence&gt;
59   *                             &lt;element name="creatorName"&gt;
60   *                               &lt;complexType&gt;
61   *                                 &lt;simpleContent&gt;
62   *                                   &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
63   *                                     &lt;attribute name="nameType" type="{http://datacite.org/schema/kernel-4}nameType" /&gt;
64   *                                   &lt;/extension&gt;
65   *                                 &lt;/simpleContent&gt;
66   *                               &lt;/complexType&gt;
67   *                             &lt;/element&gt;
68   *                             &lt;element name="givenName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
69   *                             &lt;element name="familyName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
70   *                             &lt;element name="nameIdentifier" maxOccurs="unbounded" minOccurs="0"&gt;
71   *                               &lt;complexType&gt;
72   *                                 &lt;simpleContent&gt;
73   *                                   &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
74   *                                     &lt;attribute name="nameIdentifierScheme" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
75   *                                     &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
76   *                                   &lt;/extension&gt;
77   *                                 &lt;/simpleContent&gt;
78   *                               &lt;/complexType&gt;
79   *                             &lt;/element&gt;
80   *                             &lt;element name="affiliation" type="{http://www.w3.org/2001/XMLSchema}anyType" maxOccurs="unbounded" minOccurs="0"/&gt;
81   *                           &lt;/sequence&gt;
82   *                         &lt;/restriction&gt;
83   *                       &lt;/complexContent&gt;
84   *                     &lt;/complexType&gt;
85   *                   &lt;/element&gt;
86   *                 &lt;/sequence&gt;
87   *               &lt;/restriction&gt;
88   *             &lt;/complexContent&gt;
89   *           &lt;/complexType&gt;
90   *         &lt;/element&gt;
91   *         &lt;element name="titles"&gt;
92   *           &lt;complexType&gt;
93   *             &lt;complexContent&gt;
94   *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
95   *                 &lt;sequence&gt;
96   *                   &lt;element name="title" maxOccurs="unbounded"&gt;
97   *                     &lt;complexType&gt;
98   *                       &lt;simpleContent&gt;
99   *                         &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
100  *                           &lt;attribute name="titleType" type="{http://datacite.org/schema/kernel-4}titleType" /&gt;
101  *                           &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
102  *                         &lt;/extension&gt;
103  *                       &lt;/simpleContent&gt;
104  *                     &lt;/complexType&gt;
105  *                   &lt;/element&gt;
106  *                 &lt;/sequence&gt;
107  *               &lt;/restriction&gt;
108  *             &lt;/complexContent&gt;
109  *           &lt;/complexType&gt;
110  *         &lt;/element&gt;
111  *         &lt;element name="publisher"&gt;
112  *           &lt;simpleType&gt;
113  *             &lt;restriction base="{http://datacite.org/schema/kernel-4}nonemptycontentStringType"&gt;
114  *             &lt;/restriction&gt;
115  *           &lt;/simpleType&gt;
116  *         &lt;/element&gt;
117  *         &lt;element name="publicationYear"&gt;
118  *           &lt;simpleType&gt;
119  *             &lt;restriction base="{http://datacite.org/schema/kernel-4}yearType"&gt;
120  *             &lt;/restriction&gt;
121  *           &lt;/simpleType&gt;
122  *         &lt;/element&gt;
123  *         &lt;element name="resourceType"&gt;
124  *           &lt;complexType&gt;
125  *             &lt;simpleContent&gt;
126  *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
127  *                 &lt;attribute name="resourceTypeGeneral" use="required" type="{http://datacite.org/schema/kernel-4}resourceType" /&gt;
128  *               &lt;/extension&gt;
129  *             &lt;/simpleContent&gt;
130  *           &lt;/complexType&gt;
131  *         &lt;/element&gt;
132  *         &lt;element name="subjects" minOccurs="0"&gt;
133  *           &lt;complexType&gt;
134  *             &lt;complexContent&gt;
135  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
136  *                 &lt;sequence&gt;
137  *                   &lt;element name="subject" maxOccurs="unbounded" minOccurs="0"&gt;
138  *                     &lt;complexType&gt;
139  *                       &lt;simpleContent&gt;
140  *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
141  *                           &lt;attribute name="subjectScheme" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
142  *                           &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
143  *                           &lt;attribute name="valueURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
144  *                           &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
145  *                         &lt;/extension&gt;
146  *                       &lt;/simpleContent&gt;
147  *                     &lt;/complexType&gt;
148  *                   &lt;/element&gt;
149  *                 &lt;/sequence&gt;
150  *               &lt;/restriction&gt;
151  *             &lt;/complexContent&gt;
152  *           &lt;/complexType&gt;
153  *         &lt;/element&gt;
154  *         &lt;element name="contributors" minOccurs="0"&gt;
155  *           &lt;complexType&gt;
156  *             &lt;complexContent&gt;
157  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
158  *                 &lt;sequence&gt;
159  *                   &lt;element name="contributor" maxOccurs="unbounded" minOccurs="0"&gt;
160  *                     &lt;complexType&gt;
161  *                       &lt;complexContent&gt;
162  *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
163  *                           &lt;sequence&gt;
164  *                             &lt;element name="contributorName"&gt;
165  *                               &lt;complexType&gt;
166  *                                 &lt;simpleContent&gt;
167  *                                   &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
168  *                                     &lt;attribute name="nameType" type="{http://datacite.org/schema/kernel-4}nameType" /&gt;
169  *                                   &lt;/extension&gt;
170  *                                 &lt;/simpleContent&gt;
171  *                               &lt;/complexType&gt;
172  *                             &lt;/element&gt;
173  *                             &lt;element name="givenName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
174  *                             &lt;element name="familyName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
175  *                             &lt;element name="nameIdentifier" maxOccurs="unbounded" minOccurs="0"&gt;
176  *                               &lt;complexType&gt;
177  *                                 &lt;simpleContent&gt;
178  *                                   &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
179  *                                     &lt;attribute name="nameIdentifierScheme" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
180  *                                     &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
181  *                                   &lt;/extension&gt;
182  *                                 &lt;/simpleContent&gt;
183  *                               &lt;/complexType&gt;
184  *                             &lt;/element&gt;
185  *                             &lt;element name="affiliation" type="{http://www.w3.org/2001/XMLSchema}anyType" maxOccurs="unbounded" minOccurs="0"/&gt;
186  *                           &lt;/sequence&gt;
187  *                           &lt;attribute name="contributorType" use="required" type="{http://datacite.org/schema/kernel-4}contributorType" /&gt;
188  *                         &lt;/restriction&gt;
189  *                       &lt;/complexContent&gt;
190  *                     &lt;/complexType&gt;
191  *                   &lt;/element&gt;
192  *                 &lt;/sequence&gt;
193  *               &lt;/restriction&gt;
194  *             &lt;/complexContent&gt;
195  *           &lt;/complexType&gt;
196  *         &lt;/element&gt;
197  *         &lt;element name="dates" minOccurs="0"&gt;
198  *           &lt;complexType&gt;
199  *             &lt;complexContent&gt;
200  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
201  *                 &lt;sequence&gt;
202  *                   &lt;element name="date" maxOccurs="unbounded" minOccurs="0"&gt;
203  *                     &lt;complexType&gt;
204  *                       &lt;simpleContent&gt;
205  *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
206  *                           &lt;attribute name="dateType" use="required" type="{http://datacite.org/schema/kernel-4}dateType" /&gt;
207  *                           &lt;attribute name="dateInformation" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
208  *                         &lt;/extension&gt;
209  *                       &lt;/simpleContent&gt;
210  *                     &lt;/complexType&gt;
211  *                   &lt;/element&gt;
212  *                 &lt;/sequence&gt;
213  *               &lt;/restriction&gt;
214  *             &lt;/complexContent&gt;
215  *           &lt;/complexType&gt;
216  *         &lt;/element&gt;
217  *         &lt;element name="language" type="{http://www.w3.org/2001/XMLSchema}language" minOccurs="0"/&gt;
218  *         &lt;element name="alternateIdentifiers" minOccurs="0"&gt;
219  *           &lt;complexType&gt;
220  *             &lt;complexContent&gt;
221  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
222  *                 &lt;sequence&gt;
223  *                   &lt;element name="alternateIdentifier" maxOccurs="unbounded" minOccurs="0"&gt;
224  *                     &lt;complexType&gt;
225  *                       &lt;simpleContent&gt;
226  *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
227  *                           &lt;attribute name="alternateIdentifierType" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
228  *                         &lt;/extension&gt;
229  *                       &lt;/simpleContent&gt;
230  *                     &lt;/complexType&gt;
231  *                   &lt;/element&gt;
232  *                 &lt;/sequence&gt;
233  *               &lt;/restriction&gt;
234  *             &lt;/complexContent&gt;
235  *           &lt;/complexType&gt;
236  *         &lt;/element&gt;
237  *         &lt;element name="relatedIdentifiers" minOccurs="0"&gt;
238  *           &lt;complexType&gt;
239  *             &lt;complexContent&gt;
240  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
241  *                 &lt;sequence&gt;
242  *                   &lt;element name="relatedIdentifier" maxOccurs="unbounded" minOccurs="0"&gt;
243  *                     &lt;complexType&gt;
244  *                       &lt;simpleContent&gt;
245  *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
246  *                           &lt;attribute name="resourceTypeGeneral" type="{http://datacite.org/schema/kernel-4}resourceType" /&gt;
247  *                           &lt;attribute name="relatedIdentifierType" use="required" type="{http://datacite.org/schema/kernel-4}relatedIdentifierType" /&gt;
248  *                           &lt;attribute name="relationType" use="required" type="{http://datacite.org/schema/kernel-4}relationType" /&gt;
249  *                           &lt;attribute name="relatedMetadataScheme" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
250  *                           &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
251  *                           &lt;attribute name="schemeType" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
252  *                         &lt;/extension&gt;
253  *                       &lt;/simpleContent&gt;
254  *                     &lt;/complexType&gt;
255  *                   &lt;/element&gt;
256  *                 &lt;/sequence&gt;
257  *               &lt;/restriction&gt;
258  *             &lt;/complexContent&gt;
259  *           &lt;/complexType&gt;
260  *         &lt;/element&gt;
261  *         &lt;element name="sizes" minOccurs="0"&gt;
262  *           &lt;complexType&gt;
263  *             &lt;complexContent&gt;
264  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
265  *                 &lt;sequence&gt;
266  *                   &lt;element name="size" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
267  *                 &lt;/sequence&gt;
268  *               &lt;/restriction&gt;
269  *             &lt;/complexContent&gt;
270  *           &lt;/complexType&gt;
271  *         &lt;/element&gt;
272  *         &lt;element name="formats" minOccurs="0"&gt;
273  *           &lt;complexType&gt;
274  *             &lt;complexContent&gt;
275  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
276  *                 &lt;sequence&gt;
277  *                   &lt;element name="format" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
278  *                 &lt;/sequence&gt;
279  *               &lt;/restriction&gt;
280  *             &lt;/complexContent&gt;
281  *           &lt;/complexType&gt;
282  *         &lt;/element&gt;
283  *         &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
284  *         &lt;element name="rightsList" minOccurs="0"&gt;
285  *           &lt;complexType&gt;
286  *             &lt;complexContent&gt;
287  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
288  *                 &lt;sequence&gt;
289  *                   &lt;element name="rights" maxOccurs="unbounded" minOccurs="0"&gt;
290  *                     &lt;complexType&gt;
291  *                       &lt;simpleContent&gt;
292  *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
293  *                           &lt;attribute name="rightsURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
294  *                           &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
295  *                         &lt;/extension&gt;
296  *                       &lt;/simpleContent&gt;
297  *                     &lt;/complexType&gt;
298  *                   &lt;/element&gt;
299  *                 &lt;/sequence&gt;
300  *               &lt;/restriction&gt;
301  *             &lt;/complexContent&gt;
302  *           &lt;/complexType&gt;
303  *         &lt;/element&gt;
304  *         &lt;element name="descriptions" minOccurs="0"&gt;
305  *           &lt;complexType&gt;
306  *             &lt;complexContent&gt;
307  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
308  *                 &lt;sequence&gt;
309  *                   &lt;element name="description" maxOccurs="unbounded" minOccurs="0"&gt;
310  *                     &lt;complexType&gt;
311  *                       &lt;complexContent&gt;
312  *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
313  *                           &lt;choice&gt;
314  *                             &lt;element name="br" maxOccurs="unbounded" minOccurs="0"&gt;
315  *                               &lt;simpleType&gt;
316  *                                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
317  *                                   &lt;length value="0"/&gt;
318  *                                 &lt;/restriction&gt;
319  *                               &lt;/simpleType&gt;
320  *                             &lt;/element&gt;
321  *                           &lt;/choice&gt;
322  *                           &lt;attribute name="descriptionType" use="required" type="{http://datacite.org/schema/kernel-4}descriptionType" /&gt;
323  *                           &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
324  *                         &lt;/restriction&gt;
325  *                       &lt;/complexContent&gt;
326  *                     &lt;/complexType&gt;
327  *                   &lt;/element&gt;
328  *                 &lt;/sequence&gt;
329  *               &lt;/restriction&gt;
330  *             &lt;/complexContent&gt;
331  *           &lt;/complexType&gt;
332  *         &lt;/element&gt;
333  *         &lt;element name="geoLocations" minOccurs="0"&gt;
334  *           &lt;complexType&gt;
335  *             &lt;complexContent&gt;
336  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
337  *                 &lt;sequence&gt;
338  *                   &lt;element name="geoLocation" maxOccurs="unbounded" minOccurs="0"&gt;
339  *                     &lt;complexType&gt;
340  *                       &lt;complexContent&gt;
341  *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
342  *                           &lt;choice maxOccurs="unbounded"&gt;
343  *                             &lt;element name="geoLocationPlace" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
344  *                             &lt;element name="geoLocationPoint" type="{http://datacite.org/schema/kernel-4}point" minOccurs="0"/&gt;
345  *                             &lt;element name="geoLocationBox" type="{http://datacite.org/schema/kernel-4}box" minOccurs="0"/&gt;
346  *                             &lt;element name="geoLocationPolygon" maxOccurs="unbounded" minOccurs="0"&gt;
347  *                               &lt;complexType&gt;
348  *                                 &lt;complexContent&gt;
349  *                                   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
350  *                                     &lt;sequence&gt;
351  *                                       &lt;element name="polygonPoint" type="{http://datacite.org/schema/kernel-4}point" maxOccurs="unbounded" minOccurs="4"/&gt;
352  *                                       &lt;element name="inPolygonPoint" type="{http://datacite.org/schema/kernel-4}point" minOccurs="0"/&gt;
353  *                                     &lt;/sequence&gt;
354  *                                   &lt;/restriction&gt;
355  *                                 &lt;/complexContent&gt;
356  *                               &lt;/complexType&gt;
357  *                             &lt;/element&gt;
358  *                           &lt;/choice&gt;
359  *                         &lt;/restriction&gt;
360  *                       &lt;/complexContent&gt;
361  *                     &lt;/complexType&gt;
362  *                   &lt;/element&gt;
363  *                 &lt;/sequence&gt;
364  *               &lt;/restriction&gt;
365  *             &lt;/complexContent&gt;
366  *           &lt;/complexType&gt;
367  *         &lt;/element&gt;
368  *         &lt;element name="fundingReferences" minOccurs="0"&gt;
369  *           &lt;complexType&gt;
370  *             &lt;complexContent&gt;
371  *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
372  *                 &lt;sequence&gt;
373  *                   &lt;element name="fundingReference" maxOccurs="unbounded" minOccurs="0"&gt;
374  *                     &lt;complexType&gt;
375  *                       &lt;complexContent&gt;
376  *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
377  *                           &lt;all&gt;
378  *                             &lt;element name="funderName"&gt;
379  *                               &lt;simpleType&gt;
380  *                                 &lt;restriction base="{http://datacite.org/schema/kernel-4}nonemptycontentStringType"&gt;
381  *                                 &lt;/restriction&gt;
382  *                               &lt;/simpleType&gt;
383  *                             &lt;/element&gt;
384  *                             &lt;element name="funderIdentifier" minOccurs="0"&gt;
385  *                               &lt;complexType&gt;
386  *                                 &lt;simpleContent&gt;
387  *                                   &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
388  *                                     &lt;attribute name="funderIdentifierType" use="required" type="{http://datacite.org/schema/kernel-4}funderIdentifierType" /&gt;
389  *                                   &lt;/extension&gt;
390  *                                 &lt;/simpleContent&gt;
391  *                               &lt;/complexType&gt;
392  *                             &lt;/element&gt;
393  *                             &lt;element name="awardNumber" minOccurs="0"&gt;
394  *                               &lt;complexType&gt;
395  *                                 &lt;simpleContent&gt;
396  *                                   &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
397  *                                     &lt;attribute name="awardURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
398  *                                   &lt;/extension&gt;
399  *                                 &lt;/simpleContent&gt;
400  *                               &lt;/complexType&gt;
401  *                             &lt;/element&gt;
402  *                             &lt;element name="awardTitle" minOccurs="0"&gt;
403  *                               &lt;simpleType&gt;
404  *                                 &lt;restriction base="{http://datacite.org/schema/kernel-4}nonemptycontentStringType"&gt;
405  *                                 &lt;/restriction&gt;
406  *                               &lt;/simpleType&gt;
407  *                             &lt;/element&gt;
408  *                           &lt;/all&gt;
409  *                         &lt;/restriction&gt;
410  *                       &lt;/complexContent&gt;
411  *                     &lt;/complexType&gt;
412  *                   &lt;/element&gt;
413  *                 &lt;/sequence&gt;
414  *               &lt;/restriction&gt;
415  *             &lt;/complexContent&gt;
416  *           &lt;/complexType&gt;
417  *         &lt;/element&gt;
418  *       &lt;/all&gt;
419  *     &lt;/restriction&gt;
420  *   &lt;/complexContent&gt;
421  * &lt;/complexType&gt;
422  * </pre>
423  *
424  *
425  */
426 @XmlAccessorType(XmlAccessType.FIELD)
427 @XmlType(name = "", propOrder = {})
428 @XmlRootElement(name = "resource")
429 public class Resource {
430 
431     @XmlElement(required = true)
432     protected Resource.Identifier identifier;
433     @XmlElement(required = true)
434     protected Resource.Creators creators;
435     @XmlElement(required = true)
436     protected Resource.Titles titles;
437     @XmlElement(required = true)
438     protected String publisher;
439     @XmlElement(required = true)
440     @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
441     protected String publicationYear;
442     @XmlElement(required = true)
443     protected Resource.ResourceType resourceType;
444     protected Resource.Subjects subjects;
445     protected Resource.Contributors contributors;
446     protected Resource.Dates dates;
447     @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
448     @XmlSchemaType(name = "language")
449     protected String language;
450     protected Resource.AlternateIdentifiers alternateIdentifiers;
451     protected Resource.RelatedIdentifiers relatedIdentifiers;
452     protected Resource.Sizes sizes;
453     protected Resource.Formats formats;
454     protected String version;
455     protected Resource.RightsList rightsList;
456     protected Resource.Descriptions descriptions;
457     protected Resource.GeoLocations geoLocations;
458     protected Resource.FundingReferences fundingReferences;
459 
460     /**
461      * Gets the value of the identifier property.
462      *
463      * @return possible object is {@link Resource.Identifier }
464      *
465      */
466     public Resource.Identifier getIdentifier() {
467         return identifier;
468     }
469 
470     /**
471      * Sets the value of the identifier property.
472      *
473      * @param value allowed object is {@link Resource.Identifier }
474      *
475      */
476     public void setIdentifier(Resource.Identifier value) {
477         this.identifier = value;
478     }
479 
480     /**
481      * Gets the value of the creators property.
482      *
483      * @return possible object is {@link Resource.Creators }
484      *
485      */
486     public Resource.Creators getCreators() {
487         return creators;
488     }
489 
490     /**
491      * Sets the value of the creators property.
492      *
493      * @param value allowed object is {@link Resource.Creators }
494      *
495      */
496     public void setCreators(Resource.Creators value) {
497         this.creators = value;
498     }
499 
500     /**
501      * Gets the value of the titles property.
502      *
503      * @return possible object is {@link Resource.Titles }
504      *
505      */
506     public Resource.Titles getTitles() {
507         return titles;
508     }
509 
510     /**
511      * Sets the value of the titles property.
512      *
513      * @param value allowed object is {@link Resource.Titles }
514      *
515      */
516     public void setTitles(Resource.Titles value) {
517         this.titles = value;
518     }
519 
520     /**
521      * Gets the value of the publisher property.
522      *
523      * @return possible object is {@link String }
524      *
525      */
526     public String getPublisher() {
527         return publisher;
528     }
529 
530     /**
531      * Sets the value of the publisher property.
532      *
533      * @param value allowed object is {@link String }
534      *
535      */
536     public void setPublisher(String value) {
537         this.publisher = value;
538     }
539 
540     /**
541      * Gets the value of the publicationYear property.
542      *
543      * @return possible object is {@link String }
544      *
545      */
546     public String getPublicationYear() {
547         return publicationYear;
548     }
549 
550     /**
551      * Sets the value of the publicationYear property.
552      *
553      * @param value allowed object is {@link String }
554      *
555      */
556     public void setPublicationYear(String value) {
557         this.publicationYear = value;
558     }
559 
560     /**
561      * Gets the value of the resourceType property.
562      *
563      * @return possible object is {@link Resource.ResourceType }
564      *
565      */
566     public Resource.ResourceType getResourceType() {
567         return resourceType;
568     }
569 
570     /**
571      * Sets the value of the resourceType property.
572      *
573      * @param value allowed object is {@link Resource.ResourceType }
574      *
575      */
576     public void setResourceType(Resource.ResourceType value) {
577         this.resourceType = value;
578     }
579 
580     /**
581      * Gets the value of the subjects property.
582      *
583      * @return possible object is {@link Resource.Subjects }
584      *
585      */
586     public Resource.Subjects getSubjects() {
587         return subjects;
588     }
589 
590     /**
591      * Sets the value of the subjects property.
592      *
593      * @param value allowed object is {@link Resource.Subjects }
594      *
595      */
596     public void setSubjects(Resource.Subjects value) {
597         this.subjects = value;
598     }
599 
600     /**
601      * Gets the value of the contributors property.
602      *
603      * @return possible object is {@link Resource.Contributors }
604      *
605      */
606     public Resource.Contributors getContributors() {
607         return contributors;
608     }
609 
610     /**
611      * Sets the value of the contributors property.
612      *
613      * @param value allowed object is {@link Resource.Contributors }
614      *
615      */
616     public void setContributors(Resource.Contributors value) {
617         this.contributors = value;
618     }
619 
620     /**
621      * Gets the value of the dates property.
622      *
623      * @return possible object is {@link Resource.Dates }
624      *
625      */
626     public Resource.Dates getDates() {
627         return dates;
628     }
629 
630     /**
631      * Sets the value of the dates property.
632      *
633      * @param value allowed object is {@link Resource.Dates }
634      *
635      */
636     public void setDates(Resource.Dates value) {
637         this.dates = value;
638     }
639 
640     /**
641      * Gets the value of the language property.
642      *
643      * @return possible object is {@link String }
644      *
645      */
646     public String getLanguage() {
647         return language;
648     }
649 
650     /**
651      * Sets the value of the language property.
652      *
653      * @param value allowed object is {@link String }
654      *
655      */
656     public void setLanguage(String value) {
657         this.language = value;
658     }
659 
660     /**
661      * Gets the value of the alternateIdentifiers property.
662      *
663      * @return possible object is {@link Resource.AlternateIdentifiers }
664      *
665      */
666     public Resource.AlternateIdentifiers getAlternateIdentifiers() {
667         return alternateIdentifiers;
668     }
669 
670     /**
671      * Sets the value of the alternateIdentifiers property.
672      *
673      * @param value allowed object is {@link Resource.AlternateIdentifiers }
674      *
675      */
676     public void setAlternateIdentifiers(Resource.AlternateIdentifiers value) {
677         this.alternateIdentifiers = value;
678     }
679 
680     /**
681      * Gets the value of the relatedIdentifiers property.
682      *
683      * @return possible object is {@link Resource.RelatedIdentifiers }
684      *
685      */
686     public Resource.RelatedIdentifiers getRelatedIdentifiers() {
687         return relatedIdentifiers;
688     }
689 
690     /**
691      * Sets the value of the relatedIdentifiers property.
692      *
693      * @param value allowed object is {@link Resource.RelatedIdentifiers }
694      *
695      */
696     public void setRelatedIdentifiers(Resource.RelatedIdentifiers value) {
697         this.relatedIdentifiers = value;
698     }
699 
700     /**
701      * Gets the value of the sizes property.
702      *
703      * @return possible object is {@link Resource.Sizes }
704      *
705      */
706     public Resource.Sizes getSizes() {
707         return sizes;
708     }
709 
710     /**
711      * Sets the value of the sizes property.
712      *
713      * @param value allowed object is {@link Resource.Sizes }
714      *
715      */
716     public void setSizes(Resource.Sizes value) {
717         this.sizes = value;
718     }
719 
720     /**
721      * Gets the value of the formats property.
722      *
723      * @return possible object is {@link Resource.Formats }
724      *
725      */
726     public Resource.Formats getFormats() {
727         return formats;
728     }
729 
730     /**
731      * Sets the value of the formats property.
732      *
733      * @param value allowed object is {@link Resource.Formats }
734      *
735      */
736     public void setFormats(Resource.Formats value) {
737         this.formats = value;
738     }
739 
740     /**
741      * Gets the value of the version property.
742      *
743      * @return possible object is {@link String }
744      *
745      */
746     public String getVersion() {
747         return version;
748     }
749 
750     /**
751      * Sets the value of the version property.
752      *
753      * @param value allowed object is {@link String }
754      *
755      */
756     public void setVersion(String value) {
757         this.version = value;
758     }
759 
760     /**
761      * Gets the value of the rightsList property.
762      *
763      * @return possible object is {@link Resource.RightsList }
764      *
765      */
766     public Resource.RightsList getRightsList() {
767         return rightsList;
768     }
769 
770     /**
771      * Sets the value of the rightsList property.
772      *
773      * @param value allowed object is {@link Resource.RightsList }
774      *
775      */
776     public void setRightsList(Resource.RightsList value) {
777         this.rightsList = value;
778     }
779 
780     /**
781      * Gets the value of the descriptions property.
782      *
783      * @return possible object is {@link Resource.Descriptions }
784      *
785      */
786     public Resource.Descriptions getDescriptions() {
787         return descriptions;
788     }
789 
790     /**
791      * Sets the value of the descriptions property.
792      *
793      * @param value allowed object is {@link Resource.Descriptions }
794      *
795      */
796     public void setDescriptions(Resource.Descriptions value) {
797         this.descriptions = value;
798     }
799 
800     /**
801      * Gets the value of the geoLocations property.
802      *
803      * @return possible object is {@link Resource.GeoLocations }
804      *
805      */
806     public Resource.GeoLocations getGeoLocations() {
807         return geoLocations;
808     }
809 
810     /**
811      * Sets the value of the geoLocations property.
812      *
813      * @param value allowed object is {@link Resource.GeoLocations }
814      *
815      */
816     public void setGeoLocations(Resource.GeoLocations value) {
817         this.geoLocations = value;
818     }
819 
820     /**
821      * Gets the value of the fundingReferences property.
822      *
823      * @return possible object is {@link Resource.FundingReferences }
824      *
825      */
826     public Resource.FundingReferences getFundingReferences() {
827         return fundingReferences;
828     }
829 
830     /**
831      * Sets the value of the fundingReferences property.
832      *
833      * @param value allowed object is {@link Resource.FundingReferences }
834      *
835      */
836     public void setFundingReferences(Resource.FundingReferences value) {
837         this.fundingReferences = value;
838     }
839 
840     /**
841      * <p>
842      * Java class for anonymous complex type.
843      *
844      * <p>
845      * The following schema fragment specifies the expected content contained
846      * within this class.
847      *
848      * <pre>
849      * &lt;complexType&gt;
850      *   &lt;complexContent&gt;
851      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
852      *       &lt;sequence&gt;
853      *         &lt;element name="alternateIdentifier" maxOccurs="unbounded" minOccurs="0"&gt;
854      *           &lt;complexType&gt;
855      *             &lt;simpleContent&gt;
856      *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
857      *                 &lt;attribute name="alternateIdentifierType" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
858      *               &lt;/extension&gt;
859      *             &lt;/simpleContent&gt;
860      *           &lt;/complexType&gt;
861      *         &lt;/element&gt;
862      *       &lt;/sequence&gt;
863      *     &lt;/restriction&gt;
864      *   &lt;/complexContent&gt;
865      * &lt;/complexType&gt;
866      * </pre>
867      *
868      *
869      */
870     @XmlAccessorType(XmlAccessType.FIELD)
871     @XmlType(name = "", propOrder = {
872         "alternateIdentifier"
873     })
874     public static class AlternateIdentifiers {
875 
876         protected List<Resource.AlternateIdentifiers.AlternateIdentifier> alternateIdentifier;
877 
878         /**
879          * Gets the value of the alternateIdentifier property.
880          *
881          * <p>
882          * This accessor method returns a reference to the live list, not a
883          * snapshot. Therefore any modification you make to the returned list
884          * will be present inside the JAXB object. This is why there is not a
885          * <CODE>set</CODE> method for the alternateIdentifier property.
886          *
887          * <p>
888          * For example, to add a new item, do as follows:
889          * <pre>
890          *    getAlternateIdentifier().add(newItem);
891          * </pre>
892          *
893          *
894          * <p>
895          * Objects of the following type(s) are allowed in the list
896          * {@link Resource.AlternateIdentifiers.AlternateIdentifier }
897          *
898          *
899          * @return the alternateIdentifier
900          */
901         public List<Resource.AlternateIdentifiers.AlternateIdentifier> getAlternateIdentifier() {
902             if (alternateIdentifier == null) {
903                 alternateIdentifier = new ArrayList<Resource.AlternateIdentifiers.AlternateIdentifier>();
904             }
905             return this.alternateIdentifier;
906         }
907 
908         /**
909          * <p>
910          * Java class for anonymous complex type.
911          *
912          * <p>
913          * The following schema fragment specifies the expected content
914          * contained within this class.
915          *
916          * <pre>
917          * &lt;complexType&gt;
918          *   &lt;simpleContent&gt;
919          *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
920          *       &lt;attribute name="alternateIdentifierType" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
921          *     &lt;/extension&gt;
922          *   &lt;/simpleContent&gt;
923          * &lt;/complexType&gt;
924          * </pre>
925          *
926          *
927          */
928         @XmlAccessorType(XmlAccessType.FIELD)
929         @XmlType(name = "", propOrder = {
930             "value"
931         })
932         public static class AlternateIdentifier {
933 
934             @XmlValue
935             protected String value;
936             @XmlAttribute(name = "alternateIdentifierType", required = true)
937             @XmlSchemaType(name = "anySimpleType")
938             protected String alternateIdentifierType;
939 
940             /**
941              * Gets the value of the value property.
942              *
943              * @return possible object is {@link String }
944              *
945              */
946             public String getValue() {
947                 return value;
948             }
949 
950             /**
951              * Sets the value of the value property.
952              *
953              * @param value allowed object is {@link String }
954              *
955              */
956             public void setValue(String value) {
957                 this.value = value;
958             }
959 
960             /**
961              * Gets the value of the alternateIdentifierType property.
962              *
963              * @return possible object is {@link String }
964              *
965              */
966             public String getAlternateIdentifierType() {
967                 return alternateIdentifierType;
968             }
969 
970             /**
971              * Sets the value of the alternateIdentifierType property.
972              *
973              * @param value allowed object is {@link String }
974              *
975              */
976             public void setAlternateIdentifierType(String value) {
977                 this.alternateIdentifierType = value;
978             }
979 
980         }
981 
982     }
983 
984     /**
985      * <p>
986      * Java class for anonymous complex type.
987      *
988      * <p>
989      * The following schema fragment specifies the expected content contained
990      * within this class.
991      *
992      * <pre>
993      * &lt;complexType&gt;
994      *   &lt;complexContent&gt;
995      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
996      *       &lt;sequence&gt;
997      *         &lt;element name="contributor" maxOccurs="unbounded" minOccurs="0"&gt;
998      *           &lt;complexType&gt;
999      *             &lt;complexContent&gt;
1000      *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
1001      *                 &lt;sequence&gt;
1002      *                   &lt;element name="contributorName"&gt;
1003      *                     &lt;complexType&gt;
1004      *                       &lt;simpleContent&gt;
1005      *                         &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
1006      *                           &lt;attribute name="nameType" type="{http://datacite.org/schema/kernel-4}nameType" /&gt;
1007      *                         &lt;/extension&gt;
1008      *                       &lt;/simpleContent&gt;
1009      *                     &lt;/complexType&gt;
1010      *                   &lt;/element&gt;
1011      *                   &lt;element name="givenName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
1012      *                   &lt;element name="familyName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
1013      *                   &lt;element name="nameIdentifier" maxOccurs="unbounded" minOccurs="0"&gt;
1014      *                     &lt;complexType&gt;
1015      *                       &lt;simpleContent&gt;
1016      *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
1017      *                           &lt;attribute name="nameIdentifierScheme" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
1018      *                           &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
1019      *                         &lt;/extension&gt;
1020      *                       &lt;/simpleContent&gt;
1021      *                     &lt;/complexType&gt;
1022      *                   &lt;/element&gt;
1023      *                   &lt;element name="affiliation" type="{http://www.w3.org/2001/XMLSchema}anyType" maxOccurs="unbounded" minOccurs="0"/&gt;
1024      *                 &lt;/sequence&gt;
1025      *                 &lt;attribute name="contributorType" use="required" type="{http://datacite.org/schema/kernel-4}contributorType" /&gt;
1026      *               &lt;/restriction&gt;
1027      *             &lt;/complexContent&gt;
1028      *           &lt;/complexType&gt;
1029      *         &lt;/element&gt;
1030      *       &lt;/sequence&gt;
1031      *     &lt;/restriction&gt;
1032      *   &lt;/complexContent&gt;
1033      * &lt;/complexType&gt;
1034      * </pre>
1035      *
1036      *
1037      */
1038     @XmlAccessorType(XmlAccessType.FIELD)
1039     @XmlType(name = "", propOrder = {
1040         "contributor"
1041     })
1042     public static class Contributors {
1043 
1044         protected List<Resource.Contributors.Contributor> contributor;
1045 
1046         /**
1047          * Gets the value of the contributor property.
1048          *
1049          * <p>
1050          * This accessor method returns a reference to the live list, not a
1051          * snapshot. Therefore any modification you make to the returned list
1052          * will be present inside the JAXB object. This is why there is not a
1053          * <CODE>set</CODE> method for the contributor property.
1054          *
1055          * <p>
1056          * For example, to add a new item, do as follows:
1057          * <pre>
1058          *    getContributor().add(newItem);
1059          * </pre>
1060          *
1061          *
1062          * <p>
1063          * Objects of the following type(s) are allowed in the list
1064          * {@link Resource.Contributors.Contributor }
1065          *
1066          *
1067          * @return the contributor
1068          */
1069         public List<Resource.Contributors.Contributor> getContributor() {
1070             if (contributor == null) {
1071                 contributor = new ArrayList<Resource.Contributors.Contributor>();
1072             }
1073             return this.contributor;
1074         }
1075 
1076         /**
1077          * <p>
1078          * Java class for anonymous complex type.
1079          *
1080          * <p>
1081          * The following schema fragment specifies the expected content
1082          * contained within this class.
1083          *
1084          * <pre>
1085          * &lt;complexType&gt;
1086          *   &lt;complexContent&gt;
1087          *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
1088          *       &lt;sequence&gt;
1089          *         &lt;element name="contributorName"&gt;
1090          *           &lt;complexType&gt;
1091          *             &lt;simpleContent&gt;
1092          *               &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
1093          *                 &lt;attribute name="nameType" type="{http://datacite.org/schema/kernel-4}nameType" /&gt;
1094          *               &lt;/extension&gt;
1095          *             &lt;/simpleContent&gt;
1096          *           &lt;/complexType&gt;
1097          *         &lt;/element&gt;
1098          *         &lt;element name="givenName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
1099          *         &lt;element name="familyName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
1100          *         &lt;element name="nameIdentifier" maxOccurs="unbounded" minOccurs="0"&gt;
1101          *           &lt;complexType&gt;
1102          *             &lt;simpleContent&gt;
1103          *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
1104          *                 &lt;attribute name="nameIdentifierScheme" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
1105          *                 &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
1106          *               &lt;/extension&gt;
1107          *             &lt;/simpleContent&gt;
1108          *           &lt;/complexType&gt;
1109          *         &lt;/element&gt;
1110          *         &lt;element name="affiliation" type="{http://www.w3.org/2001/XMLSchema}anyType" maxOccurs="unbounded" minOccurs="0"/&gt;
1111          *       &lt;/sequence&gt;
1112          *       &lt;attribute name="contributorType" use="required" type="{http://datacite.org/schema/kernel-4}contributorType" /&gt;
1113          *     &lt;/restriction&gt;
1114          *   &lt;/complexContent&gt;
1115          * &lt;/complexType&gt;
1116          * </pre>
1117          *
1118          *
1119          */
1120         @XmlAccessorType(XmlAccessType.FIELD)
1121         @XmlType(name = "", propOrder = {
1122             "contributorName",
1123             "givenName",
1124             "familyName",
1125             "nameIdentifier",
1126             "affiliation"
1127         })
1128         public static class Contributor {
1129 
1130             @XmlElement(required = true)
1131             protected Resource.Contributors.Contributor.ContributorName contributorName;
1132             protected String givenName;
1133             protected String familyName;
1134             protected List<Resource.Contributors.Contributor.NameIdentifier> nameIdentifier;
1135             protected List<String> affiliation;
1136             @XmlAttribute(name = "contributorType", required = true)
1137             protected ContributorType contributorType;
1138 
1139             /**
1140              * Gets the value of the contributorName property.
1141              *
1142              * @return possible object is {@link Resource.Contributors.Contributor.ContributorName
1143              * }
1144              *
1145              */
1146             public Resource.Contributors.Contributor.ContributorName getContributorName() {
1147                 return contributorName;
1148             }
1149 
1150             /**
1151              * Sets the value of the contributorName property.
1152              *
1153              * @param value allowed object is
1154              *     {@link Resource.Contributors.Contributor.ContributorName }
1155              *
1156              */
1157             public void setContributorName(Resource.Contributors.Contributor.ContributorName value) {
1158                 this.contributorName = value;
1159             }
1160 
1161             /**
1162              * Gets the value of the givenName property.
1163              *
1164              * @return possible object is {@link String }
1165              *
1166              */
1167             public String getGivenName() {
1168                 return givenName;
1169             }
1170 
1171             /**
1172              * Sets the value of the givenName property.
1173              *
1174              * @param value allowed object is {@link String }
1175              *
1176              */
1177             public void setGivenName(String value) {
1178                 this.givenName = value;
1179             }
1180 
1181             /**
1182              * Gets the value of the familyName property.
1183              *
1184              * @return possible object is {@link String }
1185              *
1186              */
1187             public String getFamilyName() {
1188                 return familyName;
1189             }
1190 
1191             /**
1192              * Sets the value of the familyName property.
1193              *
1194              * @param value allowed object is {@link String }
1195              *
1196              */
1197             public void setFamilyName(String value) {
1198                 this.familyName = value;
1199             }
1200 
1201             /**
1202              * Gets the value of the nameIdentifier property.
1203              *
1204              * <p>
1205              * This accessor method returns a reference to the live list, not a
1206              * snapshot. Therefore any modification you make to the returned
1207              * list will be present inside the JAXB object. This is why there is
1208              * not a <CODE>set</CODE> method for the nameIdentifier property.
1209              *
1210              * <p>
1211              * For example, to add a new item, do as follows:
1212              * <pre>
1213              *    getNameIdentifier().add(newItem);
1214              * </pre>
1215              *
1216              *
1217              * <p>
1218              * Objects of the following type(s) are allowed in the list
1219              * {@link Resource.Contributors.Contributor.NameIdentifier }
1220              *
1221              *
1222              * @return the nameIdentifier
1223              */
1224             public List<Resource.Contributors.Contributor.NameIdentifier> getNameIdentifier() {
1225                 if (nameIdentifier == null) {
1226                     nameIdentifier = new ArrayList<>();
1227                 }
1228                 return this.nameIdentifier;
1229             }
1230 
1231             /**
1232              * Gets the value of the affiliation property.
1233              *
1234              * <p>
1235              * This accessor method returns a reference to the live list, not a
1236              * snapshot. Therefore any modification you make to the returned
1237              * list will be present inside the JAXB object. This is why there is
1238              * not a <CODE>set</CODE> method for the affiliation property.
1239              *
1240              * <p>
1241              * For example, to add a new item, do as follows:
1242              * <pre>
1243              *    getAffiliation().add(newItem);
1244              * </pre>
1245              *
1246              *
1247              * <p>
1248              * Objects of the following type(s) are allowed in the list {@link String
1249              * }
1250              *
1251              *
1252              * @return the affiliation
1253              */
1254             public List<String> getAffiliation() {
1255                 if (affiliation == null) {
1256                     affiliation = new ArrayList<>();
1257                 }
1258                 return this.affiliation;
1259             }
1260 
1261             /**
1262              * Gets the value of the contributorType property.
1263              *
1264              * @return possible object is {@link ContributorType }
1265              *
1266              */
1267             public ContributorType getContributorType() {
1268                 return contributorType;
1269             }
1270 
1271             /**
1272              * Sets the value of the contributorType property.
1273              *
1274              * @param value allowed object is {@link ContributorType }
1275              *
1276              */
1277             public void setContributorType(ContributorType value) {
1278                 this.contributorType = value;
1279             }
1280 
1281             /**
1282              * <p>
1283              * Java class for anonymous complex type.
1284              *
1285              * <p>
1286              * The following schema fragment specifies the expected content
1287              * contained within this class.
1288              *
1289              * <pre>
1290              * &lt;complexType&gt;
1291              *   &lt;simpleContent&gt;
1292              *     &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
1293              *       &lt;attribute name="nameType" type="{http://datacite.org/schema/kernel-4}nameType" /&gt;
1294              *     &lt;/extension&gt;
1295              *   &lt;/simpleContent&gt;
1296              * &lt;/complexType&gt;
1297              * </pre>
1298              *
1299              *
1300              */
1301             @XmlAccessorType(XmlAccessType.FIELD)
1302             @XmlType(name = "", propOrder = {
1303                 "value"
1304             })
1305             public static class ContributorName {
1306 
1307                 @XmlValue
1308                 protected String value;
1309                 @XmlAttribute(name = "nameType")
1310                 protected NameType nameType;
1311 
1312                 /**
1313                  * Gets the value of the value property.
1314                  *
1315                  * @return possible object is {@link String }
1316                  *
1317                  */
1318                 public String getValue() {
1319                     return value;
1320                 }
1321 
1322                 /**
1323                  * Sets the value of the value property.
1324                  *
1325                  * @param value allowed object is {@link String }
1326                  *
1327                  */
1328                 public void setValue(String value) {
1329                     this.value = value;
1330                 }
1331 
1332                 /**
1333                  * Gets the value of the nameType property.
1334                  *
1335                  * @return possible object is {@link NameType }
1336                  *
1337                  */
1338                 public NameType getNameType() {
1339                     return nameType;
1340                 }
1341 
1342                 /**
1343                  * Sets the value of the nameType property.
1344                  *
1345                  * @param value allowed object is {@link NameType }
1346                  *
1347                  */
1348                 public void setNameType(NameType value) {
1349                     this.nameType = value;
1350                 }
1351 
1352             }
1353 
1354             /**
1355              * <p>
1356              * Java class for anonymous complex type.
1357              *
1358              * <p>
1359              * The following schema fragment specifies the expected content
1360              * contained within this class.
1361              *
1362              * <pre>
1363              * &lt;complexType&gt;
1364              *   &lt;simpleContent&gt;
1365              *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
1366              *       &lt;attribute name="nameIdentifierScheme" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
1367              *       &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
1368              *     &lt;/extension&gt;
1369              *   &lt;/simpleContent&gt;
1370              * &lt;/complexType&gt;
1371              * </pre>
1372              *
1373              *
1374              */
1375             @XmlAccessorType(XmlAccessType.FIELD)
1376             @XmlType(name = "", propOrder = {
1377                 "value"
1378             })
1379             public static class NameIdentifier {
1380 
1381                 @XmlValue
1382                 protected String value;
1383                 @XmlAttribute(name = "nameIdentifierScheme", required = true)
1384                 @XmlSchemaType(name = "anySimpleType")
1385                 protected String nameIdentifierScheme;
1386                 @XmlAttribute(name = "schemeURI")
1387                 @XmlSchemaType(name = "anyURI")
1388                 protected String schemeURI;
1389 
1390                 /**
1391                  * Gets the value of the value property.
1392                  *
1393                  * @return possible object is {@link String }
1394                  *
1395                  */
1396                 public String getValue() {
1397                     return value;
1398                 }
1399 
1400                 /**
1401                  * Sets the value of the value property.
1402                  *
1403                  * @param value allowed object is {@link String }
1404                  *
1405                  */
1406                 public void setValue(String value) {
1407                     this.value = value;
1408                 }
1409 
1410                 /**
1411                  * Gets the value of the nameIdentifierScheme property.
1412                  *
1413                  * @return possible object is {@link String }
1414                  *
1415                  */
1416                 public String getNameIdentifierScheme() {
1417                     return nameIdentifierScheme;
1418                 }
1419 
1420                 /**
1421                  * Sets the value of the nameIdentifierScheme property.
1422                  *
1423                  * @param value allowed object is {@link String }
1424                  *
1425                  */
1426                 public void setNameIdentifierScheme(String value) {
1427                     this.nameIdentifierScheme = value;
1428                 }
1429 
1430                 /**
1431                  * Gets the value of the schemeURI property.
1432                  *
1433                  * @return possible object is {@link String }
1434                  *
1435                  */
1436                 public String getSchemeURI() {
1437                     return schemeURI;
1438                 }
1439 
1440                 /**
1441                  * Sets the value of the schemeURI property.
1442                  *
1443                  * @param value allowed object is {@link String }
1444                  *
1445                  */
1446                 public void setSchemeURI(String value) {
1447                     this.schemeURI = value;
1448                 }
1449 
1450             }
1451 
1452         }
1453 
1454     }
1455 
1456     /**
1457      * <p>
1458      * Java class for anonymous complex type.
1459      *
1460      * <p>
1461      * The following schema fragment specifies the expected content contained
1462      * within this class.
1463      *
1464      * <pre>
1465      * &lt;complexType&gt;
1466      *   &lt;complexContent&gt;
1467      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
1468      *       &lt;sequence&gt;
1469      *         &lt;element name="creator" maxOccurs="unbounded"&gt;
1470      *           &lt;complexType&gt;
1471      *             &lt;complexContent&gt;
1472      *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
1473      *                 &lt;sequence&gt;
1474      *                   &lt;element name="creatorName"&gt;
1475      *                     &lt;complexType&gt;
1476      *                       &lt;simpleContent&gt;
1477      *                         &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
1478      *                           &lt;attribute name="nameType" type="{http://datacite.org/schema/kernel-4}nameType" /&gt;
1479      *                         &lt;/extension&gt;
1480      *                       &lt;/simpleContent&gt;
1481      *                     &lt;/complexType&gt;
1482      *                   &lt;/element&gt;
1483      *                   &lt;element name="givenName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
1484      *                   &lt;element name="familyName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
1485      *                   &lt;element name="nameIdentifier" maxOccurs="unbounded" minOccurs="0"&gt;
1486      *                     &lt;complexType&gt;
1487      *                       &lt;simpleContent&gt;
1488      *                         &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
1489      *                           &lt;attribute name="nameIdentifierScheme" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
1490      *                           &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
1491      *                         &lt;/extension&gt;
1492      *                       &lt;/simpleContent&gt;
1493      *                     &lt;/complexType&gt;
1494      *                   &lt;/element&gt;
1495      *                   &lt;element name="affiliation" type="{http://www.w3.org/2001/XMLSchema}anyType" maxOccurs="unbounded" minOccurs="0"/&gt;
1496      *                 &lt;/sequence&gt;
1497      *               &lt;/restriction&gt;
1498      *             &lt;/complexContent&gt;
1499      *           &lt;/complexType&gt;
1500      *         &lt;/element&gt;
1501      *       &lt;/sequence&gt;
1502      *     &lt;/restriction&gt;
1503      *   &lt;/complexContent&gt;
1504      * &lt;/complexType&gt;
1505      * </pre>
1506      *
1507      *
1508      */
1509     @XmlAccessorType(XmlAccessType.FIELD)
1510     @XmlType(name = "", propOrder = {
1511         "creator"
1512     })
1513     public static class Creators {
1514 
1515         @XmlElement(required = true)
1516         protected List<Resource.Creators.Creator> creator;
1517 
1518         /**
1519          * Gets the value of the creator property.
1520          *
1521          * <p>
1522          * This accessor method returns a reference to the live list, not a
1523          * snapshot. Therefore any modification you make to the returned list
1524          * will be present inside the JAXB object. This is why there is not a
1525          * <CODE>set</CODE> method for the creator property.
1526          *
1527          * <p>
1528          * For example, to add a new item, do as follows:
1529          * <pre>
1530          *    getCreator().add(newItem);
1531          * </pre>
1532          *
1533          *
1534          * <p>
1535          * Objects of the following type(s) are allowed in the list
1536          * {@link Resource.Creators.Creator }
1537          *
1538          *
1539          * @return the creator
1540          */
1541         public List<Resource.Creators.Creator> getCreator() {
1542             if (creator == null) {
1543                 creator = new ArrayList<>();
1544             }
1545             return this.creator;
1546         }
1547 
1548         /**
1549          * <p>
1550          * Java class for anonymous complex type.
1551          *
1552          * <p>
1553          * The following schema fragment specifies the expected content
1554          * contained within this class.
1555          *
1556          * <pre>
1557          * &lt;complexType&gt;
1558          *   &lt;complexContent&gt;
1559          *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
1560          *       &lt;sequence&gt;
1561          *         &lt;element name="creatorName"&gt;
1562          *           &lt;complexType&gt;
1563          *             &lt;simpleContent&gt;
1564          *               &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
1565          *                 &lt;attribute name="nameType" type="{http://datacite.org/schema/kernel-4}nameType" /&gt;
1566          *               &lt;/extension&gt;
1567          *             &lt;/simpleContent&gt;
1568          *           &lt;/complexType&gt;
1569          *         &lt;/element&gt;
1570          *         &lt;element name="givenName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
1571          *         &lt;element name="familyName" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
1572          *         &lt;element name="nameIdentifier" maxOccurs="unbounded" minOccurs="0"&gt;
1573          *           &lt;complexType&gt;
1574          *             &lt;simpleContent&gt;
1575          *               &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
1576          *                 &lt;attribute name="nameIdentifierScheme" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
1577          *                 &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
1578          *               &lt;/extension&gt;
1579          *             &lt;/simpleContent&gt;
1580          *           &lt;/complexType&gt;
1581          *         &lt;/element&gt;
1582          *         &lt;element name="affiliation" type="{http://www.w3.org/2001/XMLSchema}anyType" maxOccurs="unbounded" minOccurs="0"/&gt;
1583          *       &lt;/sequence&gt;
1584          *     &lt;/restriction&gt;
1585          *   &lt;/complexContent&gt;
1586          * &lt;/complexType&gt;
1587          * </pre>
1588          *
1589          *
1590          */
1591         @XmlAccessorType(XmlAccessType.FIELD)
1592         @XmlType(name = "", propOrder = {
1593             "creatorName",
1594             "givenName",
1595             "familyName",
1596             "nameIdentifier",
1597             "affiliation"
1598         })
1599         public static class Creator {
1600 
1601             @XmlElement(required = true)
1602             protected Resource.Creators.Creator.CreatorName creatorName;
1603             protected String givenName;
1604             protected String familyName;
1605             protected List<Resource.Creators.Creator.NameIdentifier> nameIdentifier;
1606             protected List<String> affiliation;
1607 
1608             /**
1609              * Gets the value of the creatorName property.
1610              *
1611              * @return possible object is {@link Resource.Creators.Creator.CreatorName
1612              * }
1613              *
1614              */
1615             public Resource.Creators.Creator.CreatorName getCreatorName() {
1616                 return creatorName;
1617             }
1618 
1619             /**
1620              * Sets the value of the creatorName property.
1621              *
1622              * @param value allowed object is {@link Resource.Creators.Creator.CreatorName
1623              * }
1624              *
1625              */
1626             public void setCreatorName(Resource.Creators.Creator.CreatorName value) {
1627                 this.creatorName = value;
1628             }
1629 
1630             /**
1631              * Gets the value of the givenName property.
1632              *
1633              * @return possible object is {@link Object }
1634              *
1635              */
1636             public String getGivenName() {
1637                 return givenName;
1638             }
1639 
1640             /**
1641              * Sets the value of the givenName property.
1642              *
1643              * @param value allowed object is {@link String }
1644              *
1645              */
1646             public void setGivenName(String value) {
1647                 this.givenName = value;
1648             }
1649 
1650             /**
1651              * Gets the value of the familyName property.
1652              *
1653              * @return possible object is {@link String }
1654              *
1655              */
1656             public String getFamilyName() {
1657                 return familyName;
1658             }
1659 
1660             /**
1661              * Sets the value of the familyName property.
1662              *
1663              * @param value allowed object is {@link String }
1664              *
1665              */
1666             public void setFamilyName(String value) {
1667                 this.familyName = value;
1668             }
1669 
1670             /**
1671              * Gets the value of the nameIdentifier property.
1672              *
1673              * <p>
1674              * This accessor method returns a reference to the live list, not a
1675              * snapshot. Therefore any modification you make to the returned
1676              * list will be present inside the JAXB object. This is why there is
1677              * not a <CODE>set</CODE> method for the nameIdentifier property.
1678              *
1679              * <p>
1680              * For example, to add a new item, do as follows:
1681              * <pre>
1682              *    getNameIdentifier().add(newItem);
1683              * </pre>
1684              *
1685              *
1686              * <p>
1687              * Objects of the following type(s) are allowed in the list
1688              * {@link Resource.Creators.Creator.NameIdentifier }
1689              *
1690              *
1691              * @return the nameIdentifier
1692              */
1693             public List<Resource.Creators.Creator.NameIdentifier> getNameIdentifier() {
1694                 if (nameIdentifier == null) {
1695                     nameIdentifier = new ArrayList<>();
1696                 }
1697                 return this.nameIdentifier;
1698             }
1699 
1700             /**
1701              * Gets the value of the affiliation property.
1702              *
1703              * <p>
1704              * This accessor method returns a reference to the live list, not a
1705              * snapshot. Therefore any modification you make to the returned
1706              * list will be present inside the JAXB object. This is why there is
1707              * not a <CODE>set</CODE> method for the affiliation property.
1708              *
1709              * <p>
1710              * For example, to add a new item, do as follows:
1711              * <pre>
1712              *    getAffiliation().add(newItem);
1713              * </pre>
1714              *
1715              *
1716              * <p>
1717              * Objects of the following type(s) are allowed in the list {@link String
1718              * }
1719              *
1720              *
1721              * @return the affiliation
1722              */
1723             public List<String> getAffiliation() {
1724                 if (affiliation == null) {
1725                     affiliation = new ArrayList<>();
1726                 }
1727                 return this.affiliation;
1728             }
1729 
1730             /**
1731              * <p>
1732              * Java class for anonymous complex type.
1733              *
1734              * <p>
1735              * The following schema fragment specifies the expected content
1736              * contained within this class.
1737              *
1738              * <pre>
1739              * &lt;complexType&gt;
1740              *   &lt;simpleContent&gt;
1741              *     &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
1742              *       &lt;attribute name="nameType" type="{http://datacite.org/schema/kernel-4}nameType" /&gt;
1743              *     &lt;/extension&gt;
1744              *   &lt;/simpleContent&gt;
1745              * &lt;/complexType&gt;
1746              * </pre>
1747              *
1748              *
1749              */
1750             @XmlAccessorType(XmlAccessType.FIELD)
1751             @XmlType(name = "", propOrder = {
1752                 "value"
1753             })
1754             public static class CreatorName {
1755 
1756                 @XmlValue
1757                 protected String value;
1758                 @XmlAttribute(name = "nameType")
1759                 protected NameType nameType;
1760 
1761                 /**
1762                  * Gets the value of the value property.
1763                  *
1764                  * @return possible object is {@link String }
1765                  *
1766                  */
1767                 public String getValue() {
1768                     return value;
1769                 }
1770 
1771                 /**
1772                  * Sets the value of the value property.
1773                  *
1774                  * @param value allowed object is {@link String }
1775                  *
1776                  */
1777                 public void setValue(String value) {
1778                     this.value = value;
1779                 }
1780 
1781                 /**
1782                  * Gets the value of the nameType property.
1783                  *
1784                  * @return possible object is {@link NameType }
1785                  *
1786                  */
1787                 public NameType getNameType() {
1788                     return nameType;
1789                 }
1790 
1791                 /**
1792                  * Sets the value of the nameType property.
1793                  *
1794                  * @param value allowed object is {@link NameType }
1795                  *
1796                  */
1797                 public void setNameType(NameType value) {
1798                     this.nameType = value;
1799                 }
1800 
1801             }
1802 
1803             /**
1804              * <p>
1805              * Java class for anonymous complex type.
1806              *
1807              * <p>
1808              * The following schema fragment specifies the expected content
1809              * contained within this class.
1810              *
1811              * <pre>
1812              * &lt;complexType&gt;
1813              *   &lt;simpleContent&gt;
1814              *     &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
1815              *       &lt;attribute name="nameIdentifierScheme" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
1816              *       &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
1817              *     &lt;/extension&gt;
1818              *   &lt;/simpleContent&gt;
1819              * &lt;/complexType&gt;
1820              * </pre>
1821              *
1822              *
1823              */
1824             @XmlAccessorType(XmlAccessType.FIELD)
1825             @XmlType(name = "", propOrder = {
1826                 "value"
1827             })
1828             public static class NameIdentifier {
1829 
1830                 @XmlValue
1831                 protected String value;
1832                 @XmlAttribute(name = "nameIdentifierScheme", required = true)
1833                 @XmlSchemaType(name = "anySimpleType")
1834                 protected String nameIdentifierScheme;
1835                 @XmlAttribute(name = "schemeURI")
1836                 @XmlSchemaType(name = "anyURI")
1837                 protected String schemeURI;
1838 
1839                 /**
1840                  * Gets the value of the value property.
1841                  *
1842                  * @return possible object is {@link String }
1843                  *
1844                  */
1845                 public String getValue() {
1846                     return value;
1847                 }
1848 
1849                 /**
1850                  * Sets the value of the value property.
1851                  *
1852                  * @param value allowed object is {@link String }
1853                  *
1854                  */
1855                 public void setValue(String value) {
1856                     this.value = value;
1857                 }
1858 
1859                 /**
1860                  * Gets the value of the nameIdentifierScheme property.
1861                  *
1862                  * @return possible object is {@link String }
1863                  *
1864                  */
1865                 public String getNameIdentifierScheme() {
1866                     return nameIdentifierScheme;
1867                 }
1868 
1869                 /**
1870                  * Sets the value of the nameIdentifierScheme property.
1871                  *
1872                  * @param value allowed object is {@link String }
1873                  *
1874                  */
1875                 public void setNameIdentifierScheme(String value) {
1876                     this.nameIdentifierScheme = value;
1877                 }
1878 
1879                 /**
1880                  * Gets the value of the schemeURI property.
1881                  *
1882                  * @return possible object is {@link String }
1883                  *
1884                  */
1885                 public String getSchemeURI() {
1886                     return schemeURI;
1887                 }
1888 
1889                 /**
1890                  * Sets the value of the schemeURI property.
1891                  *
1892                  * @param value allowed object is {@link String }
1893                  *
1894                  */
1895                 public void setSchemeURI(String value) {
1896                     this.schemeURI = value;
1897                 }
1898 
1899             }
1900 
1901         }
1902 
1903     }
1904 
1905     /**
1906      * <p>
1907      * Java class for anonymous complex type.
1908      *
1909      * <p>
1910      * The following schema fragment specifies the expected content contained
1911      * within this class.
1912      *
1913      * <pre>
1914      * &lt;complexType&gt;
1915      *   &lt;complexContent&gt;
1916      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
1917      *       &lt;sequence&gt;
1918      *         &lt;element name="date" maxOccurs="unbounded" minOccurs="0"&gt;
1919      *           &lt;complexType&gt;
1920      *             &lt;simpleContent&gt;
1921      *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
1922      *                 &lt;attribute name="dateType" use="required" type="{http://datacite.org/schema/kernel-4}dateType" /&gt;
1923      *                 &lt;attribute name="dateInformation" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
1924      *               &lt;/extension&gt;
1925      *             &lt;/simpleContent&gt;
1926      *           &lt;/complexType&gt;
1927      *         &lt;/element&gt;
1928      *       &lt;/sequence&gt;
1929      *     &lt;/restriction&gt;
1930      *   &lt;/complexContent&gt;
1931      * &lt;/complexType&gt;
1932      * </pre>
1933      *
1934      *
1935      */
1936     @XmlAccessorType(XmlAccessType.FIELD)
1937     @XmlType(name = "", propOrder = {
1938         "date"
1939     })
1940     public static class Dates {
1941 
1942         protected List<Resource.Dates.Date> date;
1943 
1944         /**
1945          * Gets the value of the date property.
1946          *
1947          * <p>
1948          * This accessor method returns a reference to the live list, not a
1949          * snapshot. Therefore any modification you make to the returned list
1950          * will be present inside the JAXB object. This is why there is not a
1951          * <CODE>set</CODE> method for the date property.
1952          *
1953          * <p>
1954          * For example, to add a new item, do as follows:
1955          * <pre>
1956          *    getDate().add(newItem);
1957          * </pre>
1958          *
1959          *
1960          * <p>
1961          * Objects of the following type(s) are allowed in the list {@link Resource.Dates.Date
1962          * }
1963          *
1964          *
1965          * @return the date
1966          */
1967         public List<Resource.Dates.Date> getDate() {
1968             if (date == null) {
1969                 date = new ArrayList<>();
1970             }
1971             return this.date;
1972         }
1973 
1974         /**
1975          * <p>
1976          * Java class for anonymous complex type.
1977          *
1978          * <p>
1979          * The following schema fragment specifies the expected content
1980          * contained within this class.
1981          *
1982          * <pre>
1983          * &lt;complexType&gt;
1984          *   &lt;simpleContent&gt;
1985          *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
1986          *       &lt;attribute name="dateType" use="required" type="{http://datacite.org/schema/kernel-4}dateType" /&gt;
1987          *       &lt;attribute name="dateInformation" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
1988          *     &lt;/extension&gt;
1989          *   &lt;/simpleContent&gt;
1990          * &lt;/complexType&gt;
1991          * </pre>
1992          *
1993          *
1994          */
1995         @XmlAccessorType(XmlAccessType.FIELD)
1996         @XmlType(name = "", propOrder = {
1997             "value"
1998         })
1999         public static class Date {
2000 
2001             @XmlValue
2002             protected String value;
2003             @XmlAttribute(name = "dateType", required = true)
2004             protected DateType dateType;
2005             @XmlAttribute(name = "dateInformation")
2006             @XmlSchemaType(name = "anySimpleType")
2007             protected String dateInformation;
2008 
2009             /**
2010              * Gets the value of the value property.
2011              *
2012              * @return possible object is {@link String }
2013              *
2014              */
2015             public String getValue() {
2016                 return value;
2017             }
2018 
2019             /**
2020              * Sets the value of the value property.
2021              *
2022              * @param value allowed object is {@link String }
2023              *
2024              */
2025             public void setValue(String value) {
2026                 this.value = value;
2027             }
2028 
2029             /**
2030              * Gets the value of the dateType property.
2031              *
2032              * @return possible object is {@link DateType }
2033              *
2034              */
2035             public DateType getDateType() {
2036                 return dateType;
2037             }
2038 
2039             /**
2040              * Sets the value of the dateType property.
2041              *
2042              * @param value allowed object is {@link DateType }
2043              *
2044              */
2045             public void setDateType(DateType value) {
2046                 this.dateType = value;
2047             }
2048 
2049             /**
2050              * Gets the value of the dateInformation property.
2051              *
2052              * @return possible object is {@link String }
2053              *
2054              */
2055             public String getDateInformation() {
2056                 return dateInformation;
2057             }
2058 
2059             /**
2060              * Sets the value of the dateInformation property.
2061              *
2062              * @param value allowed object is {@link String }
2063              *
2064              */
2065             public void setDateInformation(String value) {
2066                 this.dateInformation = value;
2067             }
2068 
2069         }
2070 
2071     }
2072 
2073     /**
2074      * <p>
2075      * Java class for anonymous complex type.
2076      *
2077      * <p>
2078      * The following schema fragment specifies the expected content contained
2079      * within this class.
2080      *
2081      * <pre>
2082      * &lt;complexType&gt;
2083      *   &lt;complexContent&gt;
2084      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2085      *       &lt;sequence&gt;
2086      *         &lt;element name="description" maxOccurs="unbounded" minOccurs="0"&gt;
2087      *           &lt;complexType&gt;
2088      *             &lt;complexContent&gt;
2089      *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2090      *                 &lt;choice&gt;
2091      *                   &lt;element name="br" maxOccurs="unbounded" minOccurs="0"&gt;
2092      *                     &lt;simpleType&gt;
2093      *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
2094      *                         &lt;length value="0"/&gt;
2095      *                       &lt;/restriction&gt;
2096      *                     &lt;/simpleType&gt;
2097      *                   &lt;/element&gt;
2098      *                 &lt;/choice&gt;
2099      *                 &lt;attribute name="descriptionType" use="required" type="{http://datacite.org/schema/kernel-4}descriptionType" /&gt;
2100      *                 &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
2101      *               &lt;/restriction&gt;
2102      *             &lt;/complexContent&gt;
2103      *           &lt;/complexType&gt;
2104      *         &lt;/element&gt;
2105      *       &lt;/sequence&gt;
2106      *     &lt;/restriction&gt;
2107      *   &lt;/complexContent&gt;
2108      * &lt;/complexType&gt;
2109      * </pre>
2110      *
2111      *
2112      */
2113     @XmlAccessorType(XmlAccessType.FIELD)
2114     @XmlType(name = "", propOrder = {
2115         "description"
2116     })
2117     public static class Descriptions {
2118 
2119         protected List<Resource.Descriptions.Description> description;
2120 
2121         /**
2122          * Gets the value of the description property.
2123          *
2124          * <p>
2125          * This accessor method returns a reference to the live list, not a
2126          * snapshot. Therefore any modification you make to the returned list
2127          * will be present inside the JAXB object. This is why there is not a
2128          * <CODE>set</CODE> method for the description property.
2129          *
2130          * <p>
2131          * For example, to add a new item, do as follows:
2132          * <pre>
2133          *    getDescription().add(newItem);
2134          * </pre>
2135          *
2136          *
2137          * <p>
2138          * Objects of the following type(s) are allowed in the list
2139          * {@link Resource.Descriptions.Description }
2140          *
2141          *
2142          * @return the description
2143          */
2144         public List<Resource.Descriptions.Description> getDescription() {
2145             if (description == null) {
2146                 description = new ArrayList<>();
2147             }
2148             return this.description;
2149         }
2150 
2151         /**
2152          * <p>
2153          * Java class for anonymous complex type.
2154          *
2155          * <p>
2156          * The following schema fragment specifies the expected content
2157          * contained within this class.
2158          *
2159          * <pre>
2160          * &lt;complexType&gt;
2161          *   &lt;complexContent&gt;
2162          *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2163          *       &lt;choice&gt;
2164          *         &lt;element name="br" maxOccurs="unbounded" minOccurs="0"&gt;
2165          *           &lt;simpleType&gt;
2166          *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
2167          *               &lt;length value="0"/&gt;
2168          *             &lt;/restriction&gt;
2169          *           &lt;/simpleType&gt;
2170          *         &lt;/element&gt;
2171          *       &lt;/choice&gt;
2172          *       &lt;attribute name="descriptionType" use="required" type="{http://datacite.org/schema/kernel-4}descriptionType" /&gt;
2173          *       &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
2174          *     &lt;/restriction&gt;
2175          *   &lt;/complexContent&gt;
2176          * &lt;/complexType&gt;
2177          * </pre>
2178          *
2179          *
2180          */
2181         @XmlAccessorType(XmlAccessType.FIELD)
2182         @XmlType(name = "", propOrder = {
2183             "content"
2184         })
2185         public static class Description {
2186 
2187             @XmlElementRef(name = "br", namespace = "http://datacite.org/schema/kernel-4", type = JAXBElement.class, required = false)
2188             @XmlMixed
2189             protected List<Serializable> content;
2190             @XmlAttribute(name = "descriptionType", required = true)
2191             protected DescriptionType descriptionType;
2192             @XmlAttribute(name = "lang", namespace = "http://www.w3.org/XML/1998/namespace")
2193             protected String lang;
2194 
2195             /**
2196              * Gets the value of the content property.
2197              *
2198              * <p>
2199              * This accessor method returns a reference to the live list, not a
2200              * snapshot. Therefore any modification you make to the returned
2201              * list will be present inside the JAXB object. This is why there is
2202              * not a <CODE>set</CODE> method for the content property.
2203              *
2204              * <p>
2205              * For example, to add a new item, do as follows:
2206              * <pre>
2207              *    getContent().add(newItem);
2208              * </pre>
2209              *
2210              *
2211              * <p>
2212              * Objects of the following type(s) are allowed in the list null
2213              * null null null null null null             {@link JAXBElement }{@code <}{@link String }{@code >}
2214              * {@link String }
2215              * {@link JAXBElement }{@code <}{@link String }{@code >}
2216              *
2217              *
2218              * @return the content
2219              */
2220             public List<Serializable> getContent() {
2221                 if (content == null) {
2222                     content = new ArrayList<>();
2223                 }
2224                 return this.content;
2225             }
2226 
2227             /**
2228              * Gets the value of the descriptionType property.
2229              *
2230              * @return possible object is {@link DescriptionType }
2231              *
2232              */
2233             public DescriptionType getDescriptionType() {
2234                 return descriptionType;
2235             }
2236 
2237             /**
2238              * Sets the value of the descriptionType property.
2239              *
2240              * @param value allowed object is {@link DescriptionType }
2241              *
2242              */
2243             public void setDescriptionType(DescriptionType value) {
2244                 this.descriptionType = value;
2245             }
2246 
2247             /**
2248              * Gets the value of the lang property.
2249              *
2250              * @return possible object is {@link String }
2251              *
2252              */
2253             public String getLang() {
2254                 return lang;
2255             }
2256 
2257             /**
2258              * Sets the value of the lang property.
2259              *
2260              * @param value allowed object is {@link String }
2261              *
2262              */
2263             public void setLang(String value) {
2264                 this.lang = value;
2265             }
2266 
2267         }
2268 
2269     }
2270 
2271     /**
2272      * <p>
2273      * Java class for anonymous complex type.
2274      *
2275      * <p>
2276      * The following schema fragment specifies the expected content contained
2277      * within this class.
2278      *
2279      * <pre>
2280      * &lt;complexType&gt;
2281      *   &lt;complexContent&gt;
2282      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2283      *       &lt;sequence&gt;
2284      *         &lt;element name="format" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
2285      *       &lt;/sequence&gt;
2286      *     &lt;/restriction&gt;
2287      *   &lt;/complexContent&gt;
2288      * &lt;/complexType&gt;
2289      * </pre>
2290      *
2291      *
2292      */
2293     @XmlAccessorType(XmlAccessType.FIELD)
2294     @XmlType(name = "", propOrder = {
2295         "format"
2296     })
2297     public static class Formats {
2298 
2299         protected List<String> format;
2300 
2301         /**
2302          * Gets the value of the format property.
2303          *
2304          * <p>
2305          * This accessor method returns a reference to the live list, not a
2306          * snapshot. Therefore any modification you make to the returned list
2307          * will be present inside the JAXB object. This is why there is not a
2308          * <CODE>set</CODE> method for the format property.
2309          *
2310          * <p>
2311          * For example, to add a new item, do as follows:
2312          * <pre>
2313          *    getFormat().add(newItem);
2314          * </pre>
2315          *
2316          *
2317          * <p>
2318          * Objects of the following type(s) are allowed in the list {@link String
2319          * }
2320          *
2321          *
2322          * @return the format
2323          */
2324         public List<String> getFormat() {
2325             if (format == null) {
2326                 format = new ArrayList<String>();
2327             }
2328             return this.format;
2329         }
2330 
2331     }
2332 
2333     /**
2334      * <p>
2335      * Java class for anonymous complex type.
2336      *
2337      * <p>
2338      * The following schema fragment specifies the expected content contained
2339      * within this class.
2340      *
2341      * <pre>
2342      * &lt;complexType&gt;
2343      *   &lt;complexContent&gt;
2344      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2345      *       &lt;sequence&gt;
2346      *         &lt;element name="fundingReference" maxOccurs="unbounded" minOccurs="0"&gt;
2347      *           &lt;complexType&gt;
2348      *             &lt;complexContent&gt;
2349      *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2350      *                 &lt;all&gt;
2351      *                   &lt;element name="funderName"&gt;
2352      *                     &lt;simpleType&gt;
2353      *                       &lt;restriction base="{http://datacite.org/schema/kernel-4}nonemptycontentStringType"&gt;
2354      *                       &lt;/restriction&gt;
2355      *                     &lt;/simpleType&gt;
2356      *                   &lt;/element&gt;
2357      *                   &lt;element name="funderIdentifier" minOccurs="0"&gt;
2358      *                     &lt;complexType&gt;
2359      *                       &lt;simpleContent&gt;
2360      *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
2361      *                           &lt;attribute name="funderIdentifierType" use="required" type="{http://datacite.org/schema/kernel-4}funderIdentifierType" /&gt;
2362      *                         &lt;/extension&gt;
2363      *                       &lt;/simpleContent&gt;
2364      *                     &lt;/complexType&gt;
2365      *                   &lt;/element&gt;
2366      *                   &lt;element name="awardNumber" minOccurs="0"&gt;
2367      *                     &lt;complexType&gt;
2368      *                       &lt;simpleContent&gt;
2369      *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
2370      *                           &lt;attribute name="awardURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
2371      *                         &lt;/extension&gt;
2372      *                       &lt;/simpleContent&gt;
2373      *                     &lt;/complexType&gt;
2374      *                   &lt;/element&gt;
2375      *                   &lt;element name="awardTitle" minOccurs="0"&gt;
2376      *                     &lt;simpleType&gt;
2377      *                       &lt;restriction base="{http://datacite.org/schema/kernel-4}nonemptycontentStringType"&gt;
2378      *                       &lt;/restriction&gt;
2379      *                     &lt;/simpleType&gt;
2380      *                   &lt;/element&gt;
2381      *                 &lt;/all&gt;
2382      *               &lt;/restriction&gt;
2383      *             &lt;/complexContent&gt;
2384      *           &lt;/complexType&gt;
2385      *         &lt;/element&gt;
2386      *       &lt;/sequence&gt;
2387      *     &lt;/restriction&gt;
2388      *   &lt;/complexContent&gt;
2389      * &lt;/complexType&gt;
2390      * </pre>
2391      *
2392      *
2393      */
2394     @XmlAccessorType(XmlAccessType.FIELD)
2395     @XmlType(name = "", propOrder = {
2396         "fundingReference"
2397     })
2398     public static class FundingReferences {
2399 
2400         protected List<Resource.FundingReferences.FundingReference> fundingReference;
2401 
2402         /**
2403          * Gets the value of the fundingReference property.
2404          *
2405          * <p>
2406          * This accessor method returns a reference to the live list, not a
2407          * snapshot. Therefore any modification you make to the returned list
2408          * will be present inside the JAXB object. This is why there is not a
2409          * <CODE>set</CODE> method for the fundingReference property.
2410          *
2411          * <p>
2412          * For example, to add a new item, do as follows:
2413          * <pre>
2414          *    getFundingReference().add(newItem);
2415          * </pre>
2416          *
2417          *
2418          * <p>
2419          * Objects of the following type(s) are allowed in the list
2420          * {@link Resource.FundingReferences.FundingReference }
2421          *
2422          *
2423          * @return the fundingReference
2424          */
2425         public List<Resource.FundingReferences.FundingReference> getFundingReference() {
2426             if (fundingReference == null) {
2427                 fundingReference = new ArrayList<>();
2428             }
2429             return this.fundingReference;
2430         }
2431 
2432         /**
2433          * <p>
2434          * Java class for anonymous complex type.
2435          *
2436          * <p>
2437          * The following schema fragment specifies the expected content
2438          * contained within this class.
2439          *
2440          * <pre>
2441          * &lt;complexType&gt;
2442          *   &lt;complexContent&gt;
2443          *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2444          *       &lt;all&gt;
2445          *         &lt;element name="funderName"&gt;
2446          *           &lt;simpleType&gt;
2447          *             &lt;restriction base="{http://datacite.org/schema/kernel-4}nonemptycontentStringType"&gt;
2448          *             &lt;/restriction&gt;
2449          *           &lt;/simpleType&gt;
2450          *         &lt;/element&gt;
2451          *         &lt;element name="funderIdentifier" minOccurs="0"&gt;
2452          *           &lt;complexType&gt;
2453          *             &lt;simpleContent&gt;
2454          *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
2455          *                 &lt;attribute name="funderIdentifierType" use="required" type="{http://datacite.org/schema/kernel-4}funderIdentifierType" /&gt;
2456          *               &lt;/extension&gt;
2457          *             &lt;/simpleContent&gt;
2458          *           &lt;/complexType&gt;
2459          *         &lt;/element&gt;
2460          *         &lt;element name="awardNumber" minOccurs="0"&gt;
2461          *           &lt;complexType&gt;
2462          *             &lt;simpleContent&gt;
2463          *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
2464          *                 &lt;attribute name="awardURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
2465          *               &lt;/extension&gt;
2466          *             &lt;/simpleContent&gt;
2467          *           &lt;/complexType&gt;
2468          *         &lt;/element&gt;
2469          *         &lt;element name="awardTitle" minOccurs="0"&gt;
2470          *           &lt;simpleType&gt;
2471          *             &lt;restriction base="{http://datacite.org/schema/kernel-4}nonemptycontentStringType"&gt;
2472          *             &lt;/restriction&gt;
2473          *           &lt;/simpleType&gt;
2474          *         &lt;/element&gt;
2475          *       &lt;/all&gt;
2476          *     &lt;/restriction&gt;
2477          *   &lt;/complexContent&gt;
2478          * &lt;/complexType&gt;
2479          * </pre>
2480          *
2481          *
2482          */
2483         @XmlAccessorType(XmlAccessType.FIELD)
2484         @XmlType(name = "", propOrder = {})
2485         public static class FundingReference {
2486 
2487             @XmlElement(required = true)
2488             protected String funderName;
2489             protected Resource.FundingReferences.FundingReference.FunderIdentifier funderIdentifier;
2490             protected Resource.FundingReferences.FundingReference.AwardNumber awardNumber;
2491             protected String awardTitle;
2492 
2493             /**
2494              * Gets the value of the funderName property.
2495              *
2496              * @return possible object is {@link String }
2497              *
2498              */
2499             public String getFunderName() {
2500                 return funderName;
2501             }
2502 
2503             /**
2504              * Sets the value of the funderName property.
2505              *
2506              * @param value allowed object is {@link String }
2507              *
2508              */
2509             public void setFunderName(String value) {
2510                 this.funderName = value;
2511             }
2512 
2513             /**
2514              * Gets the value of the funderIdentifier property.
2515              *
2516              * @return possible object is
2517              *     {@link Resource.FundingReferences.FundingReference.FunderIdentifier }
2518              *
2519              */
2520             public Resource.FundingReferences.FundingReference.FunderIdentifier getFunderIdentifier() {
2521                 return funderIdentifier;
2522             }
2523 
2524             /**
2525              * Sets the value of the funderIdentifier property.
2526              *
2527              * @param value allowed object is
2528              *     {@link Resource.FundingReferences.FundingReference.FunderIdentifier }
2529              *
2530              */
2531             public void setFunderIdentifier(
2532                     Resource.FundingReferences.FundingReference.FunderIdentifier value) {
2533                 this.funderIdentifier = value;
2534             }
2535 
2536             /**
2537              * Gets the value of the awardNumber property.
2538              *
2539              * @return possible object is
2540              *     {@link Resource.FundingReferences.FundingReference.AwardNumber }
2541              *
2542              */
2543             public Resource.FundingReferences.FundingReference.AwardNumber getAwardNumber() {
2544                 return awardNumber;
2545             }
2546 
2547             /**
2548              * Sets the value of the awardNumber property.
2549              *
2550              * @param value allowed object is
2551              *     {@link Resource.FundingReferences.FundingReference.AwardNumber }
2552              *
2553              */
2554             public void setAwardNumber(Resource.FundingReferences.FundingReference.AwardNumber value) {
2555                 this.awardNumber = value;
2556             }
2557 
2558             /**
2559              * Gets the value of the awardTitle property.
2560              *
2561              * @return possible object is {@link String }
2562              *
2563              */
2564             public String getAwardTitle() {
2565                 return awardTitle;
2566             }
2567 
2568             /**
2569              * Sets the value of the awardTitle property.
2570              *
2571              * @param value allowed object is {@link String }
2572              *
2573              */
2574             public void setAwardTitle(String value) {
2575                 this.awardTitle = value;
2576             }
2577 
2578             /**
2579              * <p>
2580              * Java class for anonymous complex type.
2581              *
2582              * <p>
2583              * The following schema fragment specifies the expected content
2584              * contained within this class.
2585              *
2586              * <pre>
2587              * &lt;complexType&gt;
2588              *   &lt;simpleContent&gt;
2589              *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
2590              *       &lt;attribute name="awardURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
2591              *     &lt;/extension&gt;
2592              *   &lt;/simpleContent&gt;
2593              * &lt;/complexType&gt;
2594              * </pre>
2595              *
2596              *
2597              */
2598             @XmlAccessorType(XmlAccessType.FIELD)
2599             @XmlType(name = "", propOrder = {
2600                 "value"
2601             })
2602             public static class AwardNumber {
2603 
2604                 @XmlValue
2605                 protected String value;
2606                 @XmlAttribute(name = "awardURI")
2607                 @XmlSchemaType(name = "anyURI")
2608                 protected String awardURI;
2609 
2610                 /**
2611                  * Gets the value of the value property.
2612                  *
2613                  * @return possible object is {@link String }
2614                  *
2615                  */
2616                 public String getValue() {
2617                     return value;
2618                 }
2619 
2620                 /**
2621                  * Sets the value of the value property.
2622                  *
2623                  * @param value allowed object is {@link String }
2624                  *
2625                  */
2626                 public void setValue(String value) {
2627                     this.value = value;
2628                 }
2629 
2630                 /**
2631                  * Gets the value of the awardURI property.
2632                  *
2633                  * @return possible object is {@link String }
2634                  *
2635                  */
2636                 public String getAwardURI() {
2637                     return awardURI;
2638                 }
2639 
2640                 /**
2641                  * Sets the value of the awardURI property.
2642                  *
2643                  * @param value allowed object is {@link String }
2644                  *
2645                  */
2646                 public void setAwardURI(String value) {
2647                     this.awardURI = value;
2648                 }
2649 
2650             }
2651 
2652             /**
2653              * <p>
2654              * Java class for anonymous complex type.
2655              *
2656              * <p>
2657              * The following schema fragment specifies the expected content
2658              * contained within this class.
2659              *
2660              * <pre>
2661              * &lt;complexType&gt;
2662              *   &lt;simpleContent&gt;
2663              *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
2664              *       &lt;attribute name="funderIdentifierType" use="required" type="{http://datacite.org/schema/kernel-4}funderIdentifierType" /&gt;
2665              *     &lt;/extension&gt;
2666              *   &lt;/simpleContent&gt;
2667              * &lt;/complexType&gt;
2668              * </pre>
2669              *
2670              *
2671              */
2672             @XmlAccessorType(XmlAccessType.FIELD)
2673             @XmlType(name = "", propOrder = {
2674                 "value"
2675             })
2676             public static class FunderIdentifier {
2677 
2678                 @XmlValue
2679                 protected String value;
2680                 @XmlAttribute(name = "funderIdentifierType", required = true)
2681                 protected FunderIdentifierType funderIdentifierType;
2682 
2683                 /**
2684                  * Gets the value of the value property.
2685                  *
2686                  * @return possible object is {@link String }
2687                  *
2688                  */
2689                 public String getValue() {
2690                     return value;
2691                 }
2692 
2693                 /**
2694                  * Sets the value of the value property.
2695                  *
2696                  * @param value allowed object is {@link String }
2697                  *
2698                  */
2699                 public void setValue(String value) {
2700                     this.value = value;
2701                 }
2702 
2703                 /**
2704                  * Gets the value of the funderIdentifierType property.
2705                  *
2706                  * @return possible object is {@link FunderIdentifierType }
2707                  *
2708                  */
2709                 public FunderIdentifierType getFunderIdentifierType() {
2710                     return funderIdentifierType;
2711                 }
2712 
2713                 /**
2714                  * Sets the value of the funderIdentifierType property.
2715                  *
2716                  * @param value allowed object is {@link FunderIdentifierType }
2717                  *
2718                  */
2719                 public void setFunderIdentifierType(FunderIdentifierType value) {
2720                     this.funderIdentifierType = value;
2721                 }
2722 
2723             }
2724 
2725         }
2726 
2727     }
2728 
2729     /**
2730      * <p>
2731      * Java class for anonymous complex type.
2732      *
2733      * <p>
2734      * The following schema fragment specifies the expected content contained
2735      * within this class.
2736      *
2737      * <pre>
2738      * &lt;complexType&gt;
2739      *   &lt;complexContent&gt;
2740      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2741      *       &lt;sequence&gt;
2742      *         &lt;element name="geoLocation" maxOccurs="unbounded" minOccurs="0"&gt;
2743      *           &lt;complexType&gt;
2744      *             &lt;complexContent&gt;
2745      *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2746      *                 &lt;choice maxOccurs="unbounded"&gt;
2747      *                   &lt;element name="geoLocationPlace" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
2748      *                   &lt;element name="geoLocationPoint" type="{http://datacite.org/schema/kernel-4}point" minOccurs="0"/&gt;
2749      *                   &lt;element name="geoLocationBox" type="{http://datacite.org/schema/kernel-4}box" minOccurs="0"/&gt;
2750      *                   &lt;element name="geoLocationPolygon" maxOccurs="unbounded" minOccurs="0"&gt;
2751      *                     &lt;complexType&gt;
2752      *                       &lt;complexContent&gt;
2753      *                         &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2754      *                           &lt;sequence&gt;
2755      *                             &lt;element name="polygonPoint" type="{http://datacite.org/schema/kernel-4}point" maxOccurs="unbounded" minOccurs="4"/&gt;
2756      *                             &lt;element name="inPolygonPoint" type="{http://datacite.org/schema/kernel-4}point" minOccurs="0"/&gt;
2757      *                           &lt;/sequence&gt;
2758      *                         &lt;/restriction&gt;
2759      *                       &lt;/complexContent&gt;
2760      *                     &lt;/complexType&gt;
2761      *                   &lt;/element&gt;
2762      *                 &lt;/choice&gt;
2763      *               &lt;/restriction&gt;
2764      *             &lt;/complexContent&gt;
2765      *           &lt;/complexType&gt;
2766      *         &lt;/element&gt;
2767      *       &lt;/sequence&gt;
2768      *     &lt;/restriction&gt;
2769      *   &lt;/complexContent&gt;
2770      * &lt;/complexType&gt;
2771      * </pre>
2772      *
2773      *
2774      */
2775     @XmlAccessorType(XmlAccessType.FIELD)
2776     @XmlType(name = "", propOrder = {
2777         "geoLocation"
2778     })
2779     public static class GeoLocations {
2780 
2781         protected List<Resource.GeoLocations.GeoLocation> geoLocation;
2782 
2783         /**
2784          * Gets the value of the geoLocation property.
2785          *
2786          * <p>
2787          * This accessor method returns a reference to the live list, not a
2788          * snapshot. Therefore any modification you make to the returned list
2789          * will be present inside the JAXB object. This is why there is not a
2790          * <CODE>set</CODE> method for the geoLocation property.
2791          *
2792          * <p>
2793          * For example, to add a new item, do as follows:
2794          * <pre>
2795          *    getGeoLocation().add(newItem);
2796          * </pre>
2797          *
2798          *
2799          * <p>
2800          * Objects of the following type(s) are allowed in the list
2801          * {@link Resource.GeoLocations.GeoLocation }
2802          *
2803          *
2804          * @return the geoLocation
2805          */
2806         public List<Resource.GeoLocations.GeoLocation> getGeoLocation() {
2807             if (geoLocation == null) {
2808                 geoLocation = new ArrayList<>();
2809             }
2810             return this.geoLocation;
2811         }
2812 
2813         /**
2814          * <p>
2815          * Java class for anonymous complex type.
2816          *
2817          * <p>
2818          * The following schema fragment specifies the expected content
2819          * contained within this class.
2820          *
2821          * <pre>
2822          * &lt;complexType&gt;
2823          *   &lt;complexContent&gt;
2824          *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2825          *       &lt;choice maxOccurs="unbounded"&gt;
2826          *         &lt;element name="geoLocationPlace" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/&gt;
2827          *         &lt;element name="geoLocationPoint" type="{http://datacite.org/schema/kernel-4}point" minOccurs="0"/&gt;
2828          *         &lt;element name="geoLocationBox" type="{http://datacite.org/schema/kernel-4}box" minOccurs="0"/&gt;
2829          *         &lt;element name="geoLocationPolygon" maxOccurs="unbounded" minOccurs="0"&gt;
2830          *           &lt;complexType&gt;
2831          *             &lt;complexContent&gt;
2832          *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2833          *                 &lt;sequence&gt;
2834          *                   &lt;element name="polygonPoint" type="{http://datacite.org/schema/kernel-4}point" maxOccurs="unbounded" minOccurs="4"/&gt;
2835          *                   &lt;element name="inPolygonPoint" type="{http://datacite.org/schema/kernel-4}point" minOccurs="0"/&gt;
2836          *                 &lt;/sequence&gt;
2837          *               &lt;/restriction&gt;
2838          *             &lt;/complexContent&gt;
2839          *           &lt;/complexType&gt;
2840          *         &lt;/element&gt;
2841          *       &lt;/choice&gt;
2842          *     &lt;/restriction&gt;
2843          *   &lt;/complexContent&gt;
2844          * &lt;/complexType&gt;
2845          * </pre>
2846          *
2847          *
2848          */
2849         @XmlAccessorType(XmlAccessType.FIELD)
2850         @XmlType(name = "", propOrder = {
2851             "geoLocationPlaceOrGeoLocationPointOrGeoLocationBox"
2852         })
2853         public static class GeoLocation {
2854 
2855             @XmlElements({
2856                 @XmlElement(name = "geoLocationPlace"),
2857                 @XmlElement(name = "geoLocationPoint", type = Point.class),
2858                 @XmlElement(name = "geoLocationBox", type = Box.class),
2859                 @XmlElement(name = "geoLocationPolygon", type = Resource.GeoLocations.GeoLocation.GeoLocationPolygon.class)
2860             })
2861             protected List<Object> geoLocationPlaceOrGeoLocationPointOrGeoLocationBox;
2862 
2863             /**
2864              * Gets the value of the
2865              * geoLocationPlaceOrGeoLocationPointOrGeoLocationBox property.
2866              *
2867              * <p>
2868              * This accessor method returns a reference to the live list, not a
2869              * snapshot. Therefore any modification you make to the returned
2870              * list will be present inside the JAXB object. This is why there is
2871              * not a <CODE>set</CODE> method for the
2872              * geoLocationPlaceOrGeoLocationPointOrGeoLocationBox property.
2873              *
2874              * <p>
2875              * For example, to add a new item, do as follows:
2876              * <pre>
2877              *    getGeoLocationPlaceOrGeoLocationPointOrGeoLocationBox().add(newItem);
2878              * </pre>
2879              *
2880              *
2881              * <p>
2882              * Objects of the following type(s) are allowed in the list null
2883              * null null             {@link Object }
2884              * {@link Point }
2885              * {@link Box }
2886              * {@link Resource.GeoLocations.GeoLocation.GeoLocationPolygon }
2887              *
2888              *
2889              * @return the geoLocationPlaceOrGeoLocationPointOrGeoLocationBox
2890              */
2891             public List<Object> getGeoLocationPlaceOrGeoLocationPointOrGeoLocationBox() {
2892                 if (geoLocationPlaceOrGeoLocationPointOrGeoLocationBox == null) {
2893                     geoLocationPlaceOrGeoLocationPointOrGeoLocationBox = new ArrayList<>();
2894                 }
2895                 return this.geoLocationPlaceOrGeoLocationPointOrGeoLocationBox;
2896             }
2897 
2898             /**
2899              * <p>
2900              * Java class for anonymous complex type.
2901              *
2902              * <p>
2903              * The following schema fragment specifies the expected content
2904              * contained within this class.
2905              *
2906              * <pre>
2907              * &lt;complexType&gt;
2908              *   &lt;complexContent&gt;
2909              *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
2910              *       &lt;sequence&gt;
2911              *         &lt;element name="polygonPoint" type="{http://datacite.org/schema/kernel-4}point" maxOccurs="unbounded" minOccurs="4"/&gt;
2912              *         &lt;element name="inPolygonPoint" type="{http://datacite.org/schema/kernel-4}point" minOccurs="0"/&gt;
2913              *       &lt;/sequence&gt;
2914              *     &lt;/restriction&gt;
2915              *   &lt;/complexContent&gt;
2916              * &lt;/complexType&gt;
2917              * </pre>
2918              *
2919              *
2920              */
2921             @XmlAccessorType(XmlAccessType.FIELD)
2922             @XmlType(name = "", propOrder = {
2923                 "polygonPoint",
2924                 "inPolygonPoint"
2925             })
2926             public static class GeoLocationPolygon {
2927 
2928                 @XmlElement(required = true)
2929                 protected List<Point> polygonPoint;
2930                 protected Point inPolygonPoint;
2931 
2932                 /**
2933                  * Gets the value of the polygonPoint property.
2934                  *
2935                  * <p>
2936                  * This accessor method returns a reference to the live list,
2937                  * not a snapshot. Therefore any modification you make to the
2938                  * returned list will be present inside the JAXB object. This is
2939                  * why there is not a <CODE>set</CODE> method for the
2940                  * polygonPoint property.
2941                  *
2942                  * <p>
2943                  * For example, to add a new item, do as follows:
2944                  * <pre>
2945                  *    getPolygonPoint().add(newItem);
2946                  * </pre>
2947                  *
2948                  *
2949                  * <p>
2950                  * Objects of the following type(s) are allowed in the list {@link Point
2951                  * }
2952                  *
2953                  *
2954                  * @return the polygon
2955                  */
2956                 public List<Point> getPolygonPoint() {
2957                     if (polygonPoint == null) {
2958                         polygonPoint = new ArrayList<>();
2959                     }
2960                     return this.polygonPoint;
2961                 }
2962 
2963                 /**
2964                  * Gets the value of the inPolygonPoint property.
2965                  *
2966                  * @return possible object is {@link Point }
2967                  *
2968                  */
2969                 public Point getInPolygonPoint() {
2970                     return inPolygonPoint;
2971                 }
2972 
2973                 /**
2974                  * Sets the value of the inPolygonPoint property.
2975                  *
2976                  * @param value allowed object is {@link Point }
2977                  *
2978                  */
2979                 public void setInPolygonPoint(Point value) {
2980                     this.inPolygonPoint = value;
2981                 }
2982 
2983             }
2984 
2985         }
2986 
2987     }
2988 
2989     /**
2990      * <p>
2991      * Java class for anonymous complex type.
2992      *
2993      * <p>
2994      * The following schema fragment specifies the expected content contained
2995      * within this class.
2996      *
2997      * <pre>
2998      * &lt;complexType&gt;
2999      *   &lt;simpleContent&gt;
3000      *     &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;doiType"&gt;
3001      *       &lt;attribute name="identifierType" use="required" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="DOI" /&gt;
3002      *     &lt;/extension&gt;
3003      *   &lt;/simpleContent&gt;
3004      * &lt;/complexType&gt;
3005      * </pre>
3006      *
3007      *
3008      */
3009     @XmlAccessorType(XmlAccessType.FIELD)
3010     @XmlType(name = "", propOrder = {
3011         "value"
3012     })
3013     public static class Identifier {
3014 
3015         /**
3016          *
3017          *
3018          */
3019         @XmlAttribute(name = "identifierType", required = true)
3020         @XmlSchemaType(name = "anySimpleType")
3021         public final static String IDENTIFIER_TYPE = "DOI";
3022 
3023         @XmlValue
3024         @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
3025         protected String value;
3026 
3027         /**
3028          * Gets the value of the value property.
3029          *
3030          * @return possible object is {@link String }
3031          *
3032          */
3033         public String getValue() {
3034             return value;
3035         }
3036 
3037         /**
3038          * Sets the value of the value property.
3039          *
3040          * @param value allowed object is {@link String }
3041          *
3042          */
3043         public void setValue(String value) {
3044             this.value = value;
3045         }
3046 
3047     }
3048 
3049     /**
3050      * <p>
3051      * Java class for anonymous complex type.
3052      *
3053      * <p>
3054      * The following schema fragment specifies the expected content contained
3055      * within this class.
3056      *
3057      * <pre>
3058      * &lt;complexType&gt;
3059      *   &lt;complexContent&gt;
3060      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
3061      *       &lt;sequence&gt;
3062      *         &lt;element name="relatedIdentifier" maxOccurs="unbounded" minOccurs="0"&gt;
3063      *           &lt;complexType&gt;
3064      *             &lt;simpleContent&gt;
3065      *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
3066      *                 &lt;attribute name="resourceTypeGeneral" type="{http://datacite.org/schema/kernel-4}resourceType" /&gt;
3067      *                 &lt;attribute name="relatedIdentifierType" use="required" type="{http://datacite.org/schema/kernel-4}relatedIdentifierType" /&gt;
3068      *                 &lt;attribute name="relationType" use="required" type="{http://datacite.org/schema/kernel-4}relationType" /&gt;
3069      *                 &lt;attribute name="relatedMetadataScheme" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
3070      *                 &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
3071      *                 &lt;attribute name="schemeType" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
3072      *               &lt;/extension&gt;
3073      *             &lt;/simpleContent&gt;
3074      *           &lt;/complexType&gt;
3075      *         &lt;/element&gt;
3076      *       &lt;/sequence&gt;
3077      *     &lt;/restriction&gt;
3078      *   &lt;/complexContent&gt;
3079      * &lt;/complexType&gt;
3080      * </pre>
3081      *
3082      *
3083      */
3084     @XmlAccessorType(XmlAccessType.FIELD)
3085     @XmlType(name = "", propOrder = {
3086         "relatedIdentifier"
3087     })
3088     public static class RelatedIdentifiers {
3089 
3090         protected List<Resource.RelatedIdentifiers.RelatedIdentifier> relatedIdentifier;
3091 
3092         /**
3093          * Gets the value of the relatedIdentifier property.
3094          *
3095          * <p>
3096          * This accessor method returns a reference to the live list, not a
3097          * snapshot. Therefore any modification you make to the returned list
3098          * will be present inside the JAXB object. This is why there is not a
3099          * <CODE>set</CODE> method for the relatedIdentifier property.
3100          *
3101          * <p>
3102          * For example, to add a new item, do as follows:
3103          * <pre>
3104          *    getRelatedIdentifier().add(newItem);
3105          * </pre>
3106          *
3107          *
3108          * <p>
3109          * Objects of the following type(s) are allowed in the list
3110          * {@link Resource.RelatedIdentifiers.RelatedIdentifier }
3111          *
3112          *
3113          * @return the relatedIdentifier
3114          */
3115         public List<Resource.RelatedIdentifiers.RelatedIdentifier> getRelatedIdentifier() {
3116             if (relatedIdentifier == null) {
3117                 relatedIdentifier = new ArrayList<>();
3118             }
3119             return this.relatedIdentifier;
3120         }
3121 
3122         /**
3123          * <p>
3124          * Java class for anonymous complex type.
3125          *
3126          * <p>
3127          * The following schema fragment specifies the expected content
3128          * contained within this class.
3129          *
3130          * <pre>
3131          * &lt;complexType&gt;
3132          *   &lt;simpleContent&gt;
3133          *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
3134          *       &lt;attribute name="resourceTypeGeneral" type="{http://datacite.org/schema/kernel-4}resourceType" /&gt;
3135          *       &lt;attribute name="relatedIdentifierType" use="required" type="{http://datacite.org/schema/kernel-4}relatedIdentifierType" /&gt;
3136          *       &lt;attribute name="relationType" use="required" type="{http://datacite.org/schema/kernel-4}relationType" /&gt;
3137          *       &lt;attribute name="relatedMetadataScheme" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
3138          *       &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
3139          *       &lt;attribute name="schemeType" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
3140          *     &lt;/extension&gt;
3141          *   &lt;/simpleContent&gt;
3142          * &lt;/complexType&gt;
3143          * </pre>
3144          *
3145          *
3146          */
3147         @XmlAccessorType(XmlAccessType.FIELD)
3148         @XmlType(name = "", propOrder = {
3149             "value"
3150         })
3151         public static class RelatedIdentifier {
3152 
3153             @XmlValue
3154             protected String value;
3155             @XmlAttribute(name = "resourceTypeGeneral")
3156             protected org.datacite.schema.kernel_4.ResourceType resourceTypeGeneral;
3157             @XmlAttribute(name = "relatedIdentifierType", required = true)
3158             protected RelatedIdentifierType relatedIdentifierType;
3159             @XmlAttribute(name = "relationType", required = true)
3160             protected RelationType relationType;
3161             @XmlAttribute(name = "relatedMetadataScheme")
3162             @XmlSchemaType(name = "anySimpleType")
3163             protected String relatedMetadataScheme;
3164             @XmlAttribute(name = "schemeURI")
3165             @XmlSchemaType(name = "anyURI")
3166             protected String schemeURI;
3167             @XmlAttribute(name = "schemeType")
3168             @XmlSchemaType(name = "anySimpleType")
3169             protected String schemeType;
3170 
3171             /**
3172              * Gets the value of the value property.
3173              *
3174              * @return possible object is {@link String }
3175              *
3176              */
3177             public String getValue() {
3178                 return value;
3179             }
3180 
3181             /**
3182              * Sets the value of the value property.
3183              *
3184              * @param value allowed object is {@link String }
3185              *
3186              */
3187             public void setValue(String value) {
3188                 this.value = value;
3189             }
3190 
3191             /**
3192              * Gets the value of the resourceTypeGeneral property.
3193              *
3194              * @return possible object is {@link org.datacite.schema.kernel_4.ResourceType
3195              * }
3196              *
3197              */
3198             public org.datacite.schema.kernel_4.ResourceType getResourceTypeGeneral() {
3199                 return resourceTypeGeneral;
3200             }
3201 
3202             /**
3203              * Sets the value of the resourceTypeGeneral property.
3204              *
3205              * @param value allowed object is {@link org.datacite.schema.kernel_4.ResourceType
3206              * }
3207              *
3208              */
3209             public void setResourceTypeGeneral(org.datacite.schema.kernel_4.ResourceType value) {
3210                 this.resourceTypeGeneral = value;
3211             }
3212 
3213             /**
3214              * Gets the value of the relatedIdentifierType property.
3215              *
3216              * @return possible object is {@link RelatedIdentifierType }
3217              *
3218              */
3219             public RelatedIdentifierType getRelatedIdentifierType() {
3220                 return relatedIdentifierType;
3221             }
3222 
3223             /**
3224              * Sets the value of the relatedIdentifierType property.
3225              *
3226              * @param value allowed object is {@link RelatedIdentifierType }
3227              *
3228              */
3229             public void setRelatedIdentifierType(RelatedIdentifierType value) {
3230                 this.relatedIdentifierType = value;
3231             }
3232 
3233             /**
3234              * Gets the value of the relationType property.
3235              *
3236              * @return possible object is {@link RelationType }
3237              *
3238              */
3239             public RelationType getRelationType() {
3240                 return relationType;
3241             }
3242 
3243             /**
3244              * Sets the value of the relationType property.
3245              *
3246              * @param value allowed object is {@link RelationType }
3247              *
3248              */
3249             public void setRelationType(RelationType value) {
3250                 this.relationType = value;
3251             }
3252 
3253             /**
3254              * Gets the value of the relatedMetadataScheme property.
3255              *
3256              * @return possible object is {@link String }
3257              *
3258              */
3259             public String getRelatedMetadataScheme() {
3260                 return relatedMetadataScheme;
3261             }
3262 
3263             /**
3264              * Sets the value of the relatedMetadataScheme property.
3265              *
3266              * @param value allowed object is {@link String }
3267              *
3268              */
3269             public void setRelatedMetadataScheme(String value) {
3270                 this.relatedMetadataScheme = value;
3271             }
3272 
3273             /**
3274              * Gets the value of the schemeURI property.
3275              *
3276              * @return possible object is {@link String }
3277              *
3278              */
3279             public String getSchemeURI() {
3280                 return schemeURI;
3281             }
3282 
3283             /**
3284              * Sets the value of the schemeURI property.
3285              *
3286              * @param value allowed object is {@link String }
3287              *
3288              */
3289             public void setSchemeURI(String value) {
3290                 this.schemeURI = value;
3291             }
3292 
3293             /**
3294              * Gets the value of the schemeType property.
3295              *
3296              * @return possible object is {@link String }
3297              *
3298              */
3299             public String getSchemeType() {
3300                 return schemeType;
3301             }
3302 
3303             /**
3304              * Sets the value of the schemeType property.
3305              *
3306              * @param value allowed object is {@link String }
3307              *
3308              */
3309             public void setSchemeType(String value) {
3310                 this.schemeType = value;
3311             }
3312 
3313         }
3314 
3315     }
3316 
3317     /**
3318      * <p>
3319      * Java class for anonymous complex type.
3320      *
3321      * <p>
3322      * The following schema fragment specifies the expected content contained
3323      * within this class.
3324      *
3325      * <pre>
3326      * &lt;complexType&gt;
3327      *   &lt;simpleContent&gt;
3328      *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
3329      *       &lt;attribute name="resourceTypeGeneral" use="required" type="{http://datacite.org/schema/kernel-4}resourceType" /&gt;
3330      *     &lt;/extension&gt;
3331      *   &lt;/simpleContent&gt;
3332      * &lt;/complexType&gt;
3333      * </pre>
3334      *
3335      *
3336      */
3337     @XmlAccessorType(XmlAccessType.FIELD)
3338     @XmlType(name = "", propOrder = {
3339         "value"
3340     })
3341     public static class ResourceType {
3342 
3343         @XmlValue
3344         protected String value;
3345         @XmlAttribute(name = "resourceTypeGeneral", required = true)
3346         protected org.datacite.schema.kernel_4.ResourceType resourceTypeGeneral;
3347 
3348         /**
3349          * Gets the value of the value property.
3350          *
3351          * @return possible object is {@link String }
3352          *
3353          */
3354         public String getValue() {
3355             return value;
3356         }
3357 
3358         /**
3359          * Sets the value of the value property.
3360          *
3361          * @param value allowed object is {@link String }
3362          *
3363          */
3364         public void setValue(String value) {
3365             this.value = value;
3366         }
3367 
3368         /**
3369          * Gets the value of the resourceTypeGeneral property.
3370          *
3371          * @return possible object is {@link org.datacite.schema.kernel_4.ResourceType
3372          * }
3373          *
3374          */
3375         public org.datacite.schema.kernel_4.ResourceType getResourceTypeGeneral() {
3376             return resourceTypeGeneral;
3377         }
3378 
3379         /**
3380          * Sets the value of the resourceTypeGeneral property.
3381          *
3382          * @param value allowed object is {@link org.datacite.schema.kernel_4.ResourceType
3383          * }
3384          *
3385          */
3386         public void setResourceTypeGeneral(org.datacite.schema.kernel_4.ResourceType value) {
3387             this.resourceTypeGeneral = value;
3388         }
3389 
3390     }
3391 
3392     /**
3393      * <p>
3394      * Java class for anonymous complex type.
3395      *
3396      * <p>
3397      * The following schema fragment specifies the expected content contained
3398      * within this class.
3399      *
3400      * <pre>
3401      * &lt;complexType&gt;
3402      *   &lt;complexContent&gt;
3403      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
3404      *       &lt;sequence&gt;
3405      *         &lt;element name="rights" maxOccurs="unbounded" minOccurs="0"&gt;
3406      *           &lt;complexType&gt;
3407      *             &lt;simpleContent&gt;
3408      *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
3409      *                 &lt;attribute name="rightsURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
3410      *                 &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
3411      *               &lt;/extension&gt;
3412      *             &lt;/simpleContent&gt;
3413      *           &lt;/complexType&gt;
3414      *         &lt;/element&gt;
3415      *       &lt;/sequence&gt;
3416      *     &lt;/restriction&gt;
3417      *   &lt;/complexContent&gt;
3418      * &lt;/complexType&gt;
3419      * </pre>
3420      *
3421      *
3422      */
3423     @XmlAccessorType(XmlAccessType.FIELD)
3424     @XmlType(name = "", propOrder = {
3425         "rights"
3426     })
3427     public static class RightsList {
3428 
3429         protected List<Resource.RightsList.Rights> rights;
3430 
3431         /**
3432          * Gets the value of the rights property.
3433          *
3434          * <p>
3435          * This accessor method returns a reference to the live list, not a
3436          * snapshot. Therefore any modification you make to the returned list
3437          * will be present inside the JAXB object. This is why there is not a
3438          * <CODE>set</CODE> method for the rights property.
3439          *
3440          * <p>
3441          * For example, to add a new item, do as follows:
3442          * <pre>
3443          *    getRights().add(newItem);
3444          * </pre>
3445          *
3446          *
3447          * <p>
3448          * Objects of the following type(s) are allowed in the list
3449          * {@link Resource.RightsList.Rights }
3450          *
3451          *
3452          * @return the rights
3453          */
3454         public List<Resource.RightsList.Rights> getRights() {
3455             if (rights == null) {
3456                 rights = new ArrayList<>();
3457             }
3458             return this.rights;
3459         }
3460 
3461         /**
3462          * <p>
3463          * Java class for anonymous complex type.
3464          *
3465          * <p>
3466          * The following schema fragment specifies the expected content
3467          * contained within this class.
3468          *
3469          * <pre>
3470          * &lt;complexType&gt;
3471          *   &lt;simpleContent&gt;
3472          *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
3473          *       &lt;attribute name="rightsURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
3474          *       &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
3475          *     &lt;/extension&gt;
3476          *   &lt;/simpleContent&gt;
3477          * &lt;/complexType&gt;
3478          * </pre>
3479          *
3480          *
3481          */
3482         @XmlAccessorType(XmlAccessType.FIELD)
3483         @XmlType(name = "", propOrder = {
3484             "value"
3485         })
3486         public static class Rights {
3487 
3488             @XmlValue
3489             protected String value;
3490             @XmlAttribute(name = "rightsURI")
3491             @XmlSchemaType(name = "anyURI")
3492             protected String rightsURI;
3493             @XmlAttribute(name = "lang", namespace = "http://www.w3.org/XML/1998/namespace")
3494             protected String lang;
3495 
3496             /**
3497              * Gets the value of the value property.
3498              *
3499              * @return possible object is {@link String }
3500              *
3501              */
3502             public String getValue() {
3503                 return value;
3504             }
3505 
3506             /**
3507              * Sets the value of the value property.
3508              *
3509              * @param value allowed object is {@link String }
3510              *
3511              */
3512             public void setValue(String value) {
3513                 this.value = value;
3514             }
3515 
3516             /**
3517              * Gets the value of the rightsURI property.
3518              *
3519              * @return possible object is {@link String }
3520              *
3521              */
3522             public String getRightsURI() {
3523                 return rightsURI;
3524             }
3525 
3526             /**
3527              * Sets the value of the rightsURI property.
3528              *
3529              * @param value allowed object is {@link String }
3530              *
3531              */
3532             public void setRightsURI(String value) {
3533                 this.rightsURI = value;
3534             }
3535 
3536             /**
3537              * Gets the value of the lang property.
3538              *
3539              * @return possible object is {@link String }
3540              *
3541              */
3542             public String getLang() {
3543                 return lang;
3544             }
3545 
3546             /**
3547              * Sets the value of the lang property.
3548              *
3549              * @param value allowed object is {@link String }
3550              *
3551              */
3552             public void setLang(String value) {
3553                 this.lang = value;
3554             }
3555 
3556         }
3557 
3558     }
3559 
3560     /**
3561      * <p>
3562      * Java class for anonymous complex type.
3563      *
3564      * <p>
3565      * The following schema fragment specifies the expected content contained
3566      * within this class.
3567      *
3568      * <pre>
3569      * &lt;complexType&gt;
3570      *   &lt;complexContent&gt;
3571      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
3572      *       &lt;sequence&gt;
3573      *         &lt;element name="size" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
3574      *       &lt;/sequence&gt;
3575      *     &lt;/restriction&gt;
3576      *   &lt;/complexContent&gt;
3577      * &lt;/complexType&gt;
3578      * </pre>
3579      *
3580      *
3581      */
3582     @XmlAccessorType(XmlAccessType.FIELD)
3583     @XmlType(name = "", propOrder = {
3584         "size"
3585     })
3586     public static class Sizes {
3587 
3588         protected List<String> size;
3589 
3590         /**
3591          * Gets the value of the size property.
3592          *
3593          * <p>
3594          * This accessor method returns a reference to the live list, not a
3595          * snapshot. Therefore any modification you make to the returned list
3596          * will be present inside the JAXB object. This is why there is not a
3597          * <CODE>set</CODE> method for the size property.
3598          *
3599          * <p>
3600          * For example, to add a new item, do as follows:
3601          * <pre>
3602          *    getSize().add(newItem);
3603          * </pre>
3604          *
3605          *
3606          * <p>
3607          * Objects of the following type(s) are allowed in the list {@link String
3608          * }
3609          *
3610          *
3611          * @return the size
3612          */
3613         public List<String> getSize() {
3614             if (size == null) {
3615                 size = new ArrayList<>();
3616             }
3617             return this.size;
3618         }
3619 
3620     }
3621 
3622     /**
3623      * <p>
3624      * Java class for anonymous complex type.
3625      *
3626      * <p>
3627      * The following schema fragment specifies the expected content contained
3628      * within this class.
3629      *
3630      * <pre>
3631      * &lt;complexType&gt;
3632      *   &lt;complexContent&gt;
3633      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
3634      *       &lt;sequence&gt;
3635      *         &lt;element name="subject" maxOccurs="unbounded" minOccurs="0"&gt;
3636      *           &lt;complexType&gt;
3637      *             &lt;simpleContent&gt;
3638      *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
3639      *                 &lt;attribute name="subjectScheme" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
3640      *                 &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
3641      *                 &lt;attribute name="valueURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
3642      *                 &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
3643      *               &lt;/extension&gt;
3644      *             &lt;/simpleContent&gt;
3645      *           &lt;/complexType&gt;
3646      *         &lt;/element&gt;
3647      *       &lt;/sequence&gt;
3648      *     &lt;/restriction&gt;
3649      *   &lt;/complexContent&gt;
3650      * &lt;/complexType&gt;
3651      * </pre>
3652      *
3653      *
3654      */
3655     @XmlAccessorType(XmlAccessType.FIELD)
3656     @XmlType(name = "", propOrder = {
3657         "subject"
3658     })
3659     public static class Subjects {
3660 
3661         protected List<Resource.Subjects.Subject> subject;
3662 
3663         /**
3664          * Gets the value of the subject property.
3665          *
3666          * <p>
3667          * This accessor method returns a reference to the live list, not a
3668          * snapshot. Therefore any modification you make to the returned list
3669          * will be present inside the JAXB object. This is why there is not a
3670          * <CODE>set</CODE> method for the subject property.
3671          *
3672          * <p>
3673          * For example, to add a new item, do as follows:
3674          * <pre>
3675          *    getSubject().add(newItem);
3676          * </pre>
3677          *
3678          *
3679          * <p>
3680          * Objects of the following type(s) are allowed in the list
3681          * {@link Resource.Subjects.Subject }
3682          *
3683          *
3684          * @return the subject
3685          */
3686         public List<Resource.Subjects.Subject> getSubject() {
3687             if (subject == null) {
3688                 subject = new ArrayList<>();
3689             }
3690             return subject;
3691         }
3692 
3693         /**
3694          * <p>
3695          * Java class for anonymous complex type.
3696          *
3697          * <p>
3698          * The following schema fragment specifies the expected content
3699          * contained within this class.
3700          *
3701          * <pre>
3702          * &lt;complexType&gt;
3703          *   &lt;simpleContent&gt;
3704          *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
3705          *       &lt;attribute name="subjectScheme" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" /&gt;
3706          *       &lt;attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
3707          *       &lt;attribute name="valueURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
3708          *       &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
3709          *     &lt;/extension&gt;
3710          *   &lt;/simpleContent&gt;
3711          * &lt;/complexType&gt;
3712          * </pre>
3713          *
3714          *
3715          */
3716         @XmlAccessorType(XmlAccessType.FIELD)
3717         @XmlType(name = "", propOrder = {
3718             "value"
3719         })
3720         public static class Subject {
3721 
3722             @XmlValue
3723             protected String value;
3724             @XmlAttribute(name = "subjectScheme")
3725             @XmlSchemaType(name = "anySimpleType")
3726             protected String subjectScheme;
3727             @XmlAttribute(name = "schemeURI")
3728             @XmlSchemaType(name = "anyURI")
3729             protected String schemeURI;
3730             @XmlAttribute(name = "valueURI")
3731             @XmlSchemaType(name = "anyURI")
3732             protected String valueURI;
3733             @XmlAttribute(name = "lang", namespace = "http://www.w3.org/XML/1998/namespace")
3734             protected String lang;
3735 
3736             /**
3737              * Gets the value of the value property.
3738              *
3739              * @return possible object is {@link String }
3740              *
3741              */
3742             public String getValue() {
3743                 return value;
3744             }
3745 
3746             /**
3747              * Sets the value of the value property.
3748              *
3749              * @param value allowed object is {@link String }
3750              *
3751              */
3752             public void setValue(String value) {
3753                 this.value = value;
3754             }
3755 
3756             /**
3757              * Gets the value of the subjectScheme property.
3758              *
3759              * @return possible object is {@link String }
3760              *
3761              */
3762             public String getSubjectScheme() {
3763                 return subjectScheme;
3764             }
3765 
3766             /**
3767              * Sets the value of the subjectScheme property.
3768              *
3769              * @param value allowed object is {@link String }
3770              *
3771              */
3772             public void setSubjectScheme(String value) {
3773                 this.subjectScheme = value;
3774             }
3775 
3776             /**
3777              * Gets the value of the schemeURI property.
3778              *
3779              * @return possible object is {@link String }
3780              *
3781              */
3782             public String getSchemeURI() {
3783                 return schemeURI;
3784             }
3785 
3786             /**
3787              * Sets the value of the schemeURI property.
3788              *
3789              * @param value allowed object is {@link String }
3790              *
3791              */
3792             public void setSchemeURI(String value) {
3793                 this.schemeURI = value;
3794             }
3795 
3796             /**
3797              * Gets the value of the valueURI property.
3798              *
3799              * @return possible object is {@link String }
3800              *
3801              */
3802             public String getValueURI() {
3803                 return valueURI;
3804             }
3805 
3806             /**
3807              * Sets the value of the valueURI property.
3808              *
3809              * @param value allowed object is {@link String }
3810              *
3811              */
3812             public void setValueURI(String value) {
3813                 this.valueURI = value;
3814             }
3815 
3816             /**
3817              * Gets the value of the lang property.
3818              *
3819              * @return possible object is {@link String }
3820              *
3821              */
3822             public String getLang() {
3823                 return lang;
3824             }
3825 
3826             /**
3827              * Sets the value of the lang property.
3828              *
3829              * @param value allowed object is {@link String }
3830              *
3831              */
3832             public void setLang(String value) {
3833                 this.lang = value;
3834             }
3835 
3836         }
3837 
3838     }
3839 
3840     /**
3841      * <p>
3842      * Java class for anonymous complex type.
3843      *
3844      * <p>
3845      * The following schema fragment specifies the expected content contained
3846      * within this class.
3847      *
3848      * <pre>
3849      * &lt;complexType&gt;
3850      *   &lt;complexContent&gt;
3851      *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
3852      *       &lt;sequence&gt;
3853      *         &lt;element name="title" maxOccurs="unbounded"&gt;
3854      *           &lt;complexType&gt;
3855      *             &lt;simpleContent&gt;
3856      *               &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
3857      *                 &lt;attribute name="titleType" type="{http://datacite.org/schema/kernel-4}titleType" /&gt;
3858      *                 &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
3859      *               &lt;/extension&gt;
3860      *             &lt;/simpleContent&gt;
3861      *           &lt;/complexType&gt;
3862      *         &lt;/element&gt;
3863      *       &lt;/sequence&gt;
3864      *     &lt;/restriction&gt;
3865      *   &lt;/complexContent&gt;
3866      * &lt;/complexType&gt;
3867      * </pre>
3868      *
3869      *
3870      */
3871     @XmlAccessorType(XmlAccessType.FIELD)
3872     @XmlType(name = "", propOrder = {
3873         "title"
3874     })
3875     public static class Titles {
3876 
3877         @XmlElement(required = true)
3878         protected List<Resource.Titles.Title> title;
3879 
3880         /**
3881          * Gets the value of the title property.
3882          *
3883          * <p>
3884          * This accessor method returns a reference to the live list, not a
3885          * snapshot. Therefore any modification you make to the returned list
3886          * will be present inside the JAXB object. This is why there is not a
3887          * <CODE>set</CODE> method for the title property.
3888          *
3889          * <p>
3890          * For example, to add a new item, do as follows:
3891          * <pre>
3892          *    getTitle().add(newItem);
3893          * </pre>
3894          *
3895          *
3896          * <p>
3897          * Objects of the following type(s) are allowed in the list {@link Resource.Titles.Title
3898          * }
3899          *
3900          *
3901          * @return the title
3902          */
3903         public List<Resource.Titles.Title> getTitle() {
3904             if (title == null) {
3905                 title = new ArrayList<>();
3906             }
3907             return this.title;
3908         }
3909 
3910         /**
3911          * <p>
3912          * Java class for anonymous complex type.
3913          *
3914          * <p>
3915          * The following schema fragment specifies the expected content
3916          * contained within this class.
3917          *
3918          * <pre>
3919          * &lt;complexType&gt;
3920          *   &lt;simpleContent&gt;
3921          *     &lt;extension base="&lt;http://datacite.org/schema/kernel-4&gt;nonemptycontentStringType"&gt;
3922          *       &lt;attribute name="titleType" type="{http://datacite.org/schema/kernel-4}titleType" /&gt;
3923          *       &lt;attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/&gt;
3924          *     &lt;/extension&gt;
3925          *   &lt;/simpleContent&gt;
3926          * &lt;/complexType&gt;
3927          * </pre>
3928          *
3929          *
3930          */
3931         @XmlAccessorType(XmlAccessType.FIELD)
3932         @XmlType(name = "", propOrder = {
3933             "value"
3934         })
3935         public static class Title {
3936 
3937             @XmlValue
3938             protected String value;
3939             @XmlAttribute(name = "titleType")
3940             protected TitleType titleType;
3941             @XmlAttribute(name = "lang", namespace = "http://www.w3.org/XML/1998/namespace")
3942             protected String lang;
3943 
3944             /**
3945              * Gets the value of the value property.
3946              *
3947              * @return possible object is {@link String }
3948              *
3949              */
3950             public String getValue() {
3951                 return value;
3952             }
3953 
3954             /**
3955              * Sets the value of the value property.
3956              *
3957              * @param value allowed object is {@link String }
3958              *
3959              */
3960             public void setValue(String value) {
3961                 this.value = value;
3962             }
3963 
3964             /**
3965              * Gets the value of the titleType property.
3966              *
3967              * @return possible object is {@link TitleType }
3968              *
3969              */
3970             public TitleType getTitleType() {
3971                 return titleType;
3972             }
3973 
3974             /**
3975              * Sets the value of the titleType property.
3976              *
3977              * @param value allowed object is {@link TitleType }
3978              *
3979              */
3980             public void setTitleType(TitleType value) {
3981                 this.titleType = value;
3982             }
3983 
3984             /**
3985              * Gets the value of the lang property.
3986              *
3987              * @return possible object is {@link String }
3988              *
3989              */
3990             public String getLang() {
3991                 return lang;
3992             }
3993 
3994             /**
3995              * Sets the value of the lang property.
3996              *
3997              * @param value allowed object is {@link String }
3998              *
3999              */
4000             public void setLang(String value) {
4001                 this.lang = value;
4002             }
4003 
4004         }
4005 
4006     }
4007 
4008 }