orcid_client 0.8 → 0.9.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +39 -0
  3. data/.github/workflows/changelog.yml +36 -0
  4. data/.github/workflows/release.yml +48 -0
  5. data/CHANGELOG.md +169 -0
  6. data/Gemfile.lock +135 -117
  7. data/README.md +6 -6
  8. data/lib/orcid_client/api.rb +2 -1
  9. data/lib/orcid_client/base.rb +1 -1
  10. data/lib/orcid_client/external_identifier.rb +1 -1
  11. data/lib/orcid_client/version.rb +1 -1
  12. data/lib/orcid_client/work.rb +8 -5
  13. data/orcid_client.gemspec +3 -4
  14. data/resources/README.md +48 -43
  15. data/resources/common_3.0/common-3.0.xsd +998 -0
  16. data/resources/common_3.0/samples/common-3.0.xml +8 -0
  17. data/resources/common_3.0/samples/common-3.0_external-identifier.xml +11 -0
  18. data/resources/notification_3.0/README.md +130 -0
  19. data/resources/notification_3.0/images/notification-intro.jpg +0 -0
  20. data/resources/notification_3.0/images/notification-subject.jpg +0 -0
  21. data/resources/notification_3.0/notification-custom-3.0.xsd +38 -0
  22. data/resources/notification_3.0/notification-permission-3.0.xsd +134 -0
  23. data/resources/notification_3.0/samples/notification-custom-3.0.xml +27 -0
  24. data/resources/notification_3.0/samples/notification-permission-3.0.xml +58 -0
  25. data/resources/record_3.0/README.md +408 -0
  26. data/resources/record_3.0/activities-3.0.xsd +456 -0
  27. data/resources/record_3.0/address-3.0.xsd +73 -0
  28. data/resources/record_3.0/bulk-3.0.xsd +57 -0
  29. data/resources/record_3.0/distinction-3.0.xsd +51 -0
  30. data/resources/record_3.0/education-3.0.xsd +51 -0
  31. data/resources/record_3.0/email-3.0.xsd +76 -0
  32. data/resources/record_3.0/employment-3.0.xsd +51 -0
  33. data/resources/record_3.0/error-3.0.xsd +84 -0
  34. data/resources/record_3.0/expanded-search-3.0.xsd +114 -0
  35. data/resources/record_3.0/funding-3.0.xsd +204 -0
  36. data/resources/record_3.0/history-3.0.xsd +185 -0
  37. data/resources/record_3.0/invited-position-3.0.xsd +50 -0
  38. data/resources/record_3.0/keyword-3.0.xsd +72 -0
  39. data/resources/record_3.0/membership-3.0.xsd +51 -0
  40. data/resources/record_3.0/other-name-3.0.xsd +78 -0
  41. data/resources/record_3.0/peer-review-3.0.xsd +263 -0
  42. data/resources/record_3.0/person-3.0.xsd +85 -0
  43. data/resources/record_3.0/person-external-identifier-3.0.xsd +63 -0
  44. data/resources/record_3.0/personal-details-3.0.xsd +162 -0
  45. data/resources/record_3.0/preferences-3.0.xsd +50 -0
  46. data/resources/record_3.0/qualification-3.0.xsd +50 -0
  47. data/resources/record_3.0/record-3.0.xsd +91 -0
  48. data/resources/record_3.0/research-resource-3.0.xsd +144 -0
  49. data/resources/record_3.0/researcher-url-3.0.xsd +86 -0
  50. data/resources/record_3.0/samples/read_samples/activities-3.0.xml +742 -0
  51. data/resources/record_3.0/samples/read_samples/address-3.0.xml +16 -0
  52. data/resources/record_3.0/samples/read_samples/addresses-3.0.xml +32 -0
  53. data/resources/record_3.0/samples/read_samples/biography-3.0.xml +10 -0
  54. data/resources/record_3.0/samples/read_samples/bulk-work-err.xml +45 -0
  55. data/resources/record_3.0/samples/read_samples/credit-name-3.0.xml +5 -0
  56. data/resources/record_3.0/samples/read_samples/distinction-3.0.xml +55 -0
  57. data/resources/record_3.0/samples/read_samples/distinctions-3.0.xml +106 -0
  58. data/resources/record_3.0/samples/read_samples/education-3.0.xml +55 -0
  59. data/resources/record_3.0/samples/read_samples/education-full-3.0.xml +55 -0
  60. data/resources/record_3.0/samples/read_samples/educations-3.0.xml +118 -0
  61. data/resources/record_3.0/samples/read_samples/email-3.0.xml +16 -0
  62. data/resources/record_3.0/samples/read_samples/emails-3.0.xml +31 -0
  63. data/resources/record_3.0/samples/read_samples/employment-3.0.xml +55 -0
  64. data/resources/record_3.0/samples/read_samples/employment-full-3.0.xml +55 -0
  65. data/resources/record_3.0/samples/read_samples/employments-3.0.xml +108 -0
  66. data/resources/record_3.0/samples/read_samples/error-3.0.xml +8 -0
  67. data/resources/record_3.0/samples/read_samples/external-identifier-3.0.xml +21 -0
  68. data/resources/record_3.0/samples/read_samples/external-identifiers-3.0.xml +38 -0
  69. data/resources/record_3.0/samples/read_samples/full-record-3.0.json +2332 -0
  70. data/resources/record_3.0/samples/read_samples/funding-3.0.xml +75 -0
  71. data/resources/record_3.0/samples/read_samples/funding-full-3.0.xml +75 -0
  72. data/resources/record_3.0/samples/read_samples/fundings-3.0.xml +139 -0
  73. data/resources/record_3.0/samples/read_samples/history-3.0.xml +22 -0
  74. data/resources/record_3.0/samples/read_samples/invited-position-3.0.xml +55 -0
  75. data/resources/record_3.0/samples/read_samples/invited-positions-3.0.xml +106 -0
  76. data/resources/record_3.0/samples/read_samples/keyword-3.0.xml +18 -0
  77. data/resources/record_3.0/samples/read_samples/keywords-3.0.xml +34 -0
  78. data/resources/record_3.0/samples/read_samples/membership-3.0.xml +55 -0
  79. data/resources/record_3.0/samples/read_samples/memberships-3.0.xml +106 -0
  80. data/resources/record_3.0/samples/read_samples/name-3.0.xml +12 -0
  81. data/resources/record_3.0/samples/read_samples/other-name-3.0.xml +16 -0
  82. data/resources/record_3.0/samples/read_samples/other-names-3.0.xml +31 -0
  83. data/resources/record_3.0/samples/read_samples/peer-review-3.0.xml +59 -0
  84. data/resources/record_3.0/samples/read_samples/peer-review-full-3.0.xml +59 -0
  85. data/resources/record_3.0/samples/read_samples/peer-reviews-3.0.xml +76 -0
  86. data/resources/record_3.0/samples/read_samples/person-3.0.xml +122 -0
  87. data/resources/record_3.0/samples/read_samples/personal-details-3.0.xml +47 -0
  88. data/resources/record_3.0/samples/read_samples/preferences-3.0.xml +4 -0
  89. data/resources/record_3.0/samples/read_samples/qualification-3.0.xml +55 -0
  90. data/resources/record_3.0/samples/read_samples/qualifications-3.0.xml +106 -0
  91. data/resources/record_3.0/samples/read_samples/record-3.0.xml +770 -0
  92. data/resources/record_3.0/samples/read_samples/research-resource-3.0.xml +138 -0
  93. data/resources/record_3.0/samples/read_samples/research-resources-3.0.xml +143 -0
  94. data/resources/record_3.0/samples/read_samples/researcher-url-3.0.xml +19 -0
  95. data/resources/record_3.0/samples/read_samples/researcher-urls-3.0.xml +21 -0
  96. data/resources/record_3.0/samples/read_samples/search-3.0.xml +14 -0
  97. data/resources/record_3.0/samples/read_samples/service-3.0.xml +55 -0
  98. data/resources/record_3.0/samples/read_samples/services-3.0.xml +106 -0
  99. data/resources/record_3.0/samples/read_samples/work-3.0.xml +65 -0
  100. data/resources/record_3.0/samples/read_samples/work-full-3.0.xml +65 -0
  101. data/resources/record_3.0/samples/read_samples/works-3.0.xml +148 -0
  102. data/resources/record_3.0/samples/write_samples/address-3.0.xml +6 -0
  103. data/resources/record_3.0/samples/write_samples/bulk-work-3.0.json +53 -0
  104. data/resources/record_3.0/samples/write_samples/bulk-work-3.0.xml +47 -0
  105. data/resources/record_3.0/samples/write_samples/distinction-3.0.xml +46 -0
  106. data/resources/record_3.0/samples/write_samples/education-3.0.xml +45 -0
  107. data/resources/record_3.0/samples/write_samples/employment-3.0.xml +45 -0
  108. data/resources/record_3.0/samples/write_samples/external-identifier-3.0.xml +11 -0
  109. data/resources/record_3.0/samples/write_samples/funding-3.0.xml +44 -0
  110. data/resources/record_3.0/samples/write_samples/invited-position-3.0.xml +45 -0
  111. data/resources/record_3.0/samples/write_samples/keyword-3.0.xml +7 -0
  112. data/resources/record_3.0/samples/write_samples/membership-3.0.xml +45 -0
  113. data/resources/record_3.0/samples/write_samples/other-name-3.0.xml +6 -0
  114. data/resources/record_3.0/samples/write_samples/peer-review-full-3.0.xml +48 -0
  115. data/resources/record_3.0/samples/write_samples/peer-review-full-award-subject-type-3.0.xml +48 -0
  116. data/resources/record_3.0/samples/write_samples/peer-review-simple-3.0.xml +32 -0
  117. data/resources/record_3.0/samples/write_samples/qualification-3.0.xml +45 -0
  118. data/resources/record_3.0/samples/write_samples/research-resource-3.0.xml +110 -0
  119. data/resources/record_3.0/samples/write_samples/researcher-url-3.0-no-name.xml +6 -0
  120. data/resources/record_3.0/samples/write_samples/researcher-url-3.0.xml +7 -0
  121. data/resources/record_3.0/samples/write_samples/service-3.0.xml +45 -0
  122. data/resources/record_3.0/samples/write_samples/work-full-3.0.xml +60 -0
  123. data/resources/record_3.0/samples/write_samples/work-simple-3.0.xml +18 -0
  124. data/resources/record_3.0/search-3.0.xsd +62 -0
  125. data/resources/record_3.0/service-3.0.xsd +51 -0
  126. data/resources/record_3.0/work-3.0.xsd +269 -0
  127. data/spec/api_spec.rb +3 -3
  128. data/spec/author_spec.rb +1 -1
  129. data/spec/external_identifier_spec.rb +2 -2
  130. data/spec/fixtures/external_identifier.xml +1 -1
  131. data/spec/fixtures/vcr_cassettes/OrcidClient/works/get/should_get_works.yml +23 -10
  132. data/spec/fixtures/vcr_cassettes/OrcidClient/works/post/should_create_work.yml +71 -74
  133. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/data.yml +43 -55
  134. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_data.yml +43 -55
  135. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_item_type_work.yml +39 -44
  136. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/literal.yml +43 -51
  137. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/valid.yml +40 -48
  138. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/with_ORCID_IDs.yml +39 -30
  139. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/data.yml +41 -49
  140. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/publication_date.yml +40 -48
  141. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_ORCID_IDs_for_contributors.yml +40 -31
  142. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_data.yml +40 -48
  143. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_work_from_DataCite_staging_system.yml +104 -0
  144. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_work_type_data-set.yml +40 -45
  145. data/spec/fixtures/work.xml +12 -16
  146. data/spec/notification_spec.rb +11 -10
  147. data/spec/work_spec.rb +26 -63
  148. metadata +133 -30
  149. data/.travis.yml +0 -17
  150. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/multiple_titles.yml +0 -102
  151. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_work_from_DataCite_test_system.yml +0 -95
  152. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/user_example/fail/valid.yml +0 -95
@@ -0,0 +1,998 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://purl.oclc.org/dsdl/schematron" elementFormDefault="qualified" targetNamespace="http://www.orcid.org/ns/common" xmlns:common="http://www.orcid.org/ns/common">
3
+ <xs:annotation>
4
+ <xs:documentation>
5
+ =============================================================================
6
+
7
+ ORCID (R) Open Source
8
+ http://orcid.org
9
+
10
+ Copyright (c) 2012-2014 ORCID,
11
+ Inc.
12
+ Licensed under an MIT-Style License (MIT)
13
+ http://orcid.org/open-source-license
14
+
15
+ This copyright and license
16
+ information (including a link to the full
17
+ license)
18
+ shall be included in
19
+ its entirety in all copies or substantial portion of
20
+ the software.
21
+
22
+ =============================================================================
23
+ The schema describes the message format used for ORCID API requests
24
+ and responses.
25
+ The top level element is orcid-message.
26
+ </xs:documentation>
27
+ <xs:appinfo>
28
+ <sch:title>Schematron validation</sch:title>
29
+ <sch:ns prefix="orcid" uri="http://www.orcid.org/ns/orcid" />
30
+ </xs:appinfo>
31
+ </xs:annotation>
32
+
33
+ <xs:element name="last-modified-date">
34
+ <xs:complexType>
35
+ <xs:annotation>
36
+ <xs:documentation>The date time when the element was last modified.
37
+ </xs:documentation>
38
+ </xs:annotation>
39
+ <xs:simpleContent>
40
+ <xs:extension base="xs:dateTime" />
41
+ </xs:simpleContent>
42
+ </xs:complexType>
43
+ </xs:element>
44
+
45
+ <xs:element name="created-date">
46
+ <xs:complexType>
47
+ <xs:annotation>
48
+ <xs:documentation>The date time when element was created.
49
+ </xs:documentation>
50
+ </xs:annotation>
51
+ <xs:simpleContent>
52
+ <xs:extension base="xs:dateTime" />
53
+ </xs:simpleContent>
54
+ </xs:complexType>
55
+ </xs:element>
56
+
57
+ <xs:element name="read-date">
58
+ <xs:complexType>
59
+ <xs:annotation>
60
+ <xs:documentation>The date time when element was first read by the user.
61
+ </xs:documentation>
62
+ </xs:annotation>
63
+ <xs:simpleContent>
64
+ <xs:extension base="xs:dateTime" />
65
+ </xs:simpleContent>
66
+ </xs:complexType>
67
+ </xs:element>
68
+
69
+ <xs:element name="archived-date">
70
+ <xs:complexType>
71
+ <xs:annotation>
72
+ <xs:documentation>The date time when element was archived.
73
+ </xs:documentation>
74
+ </xs:annotation>
75
+ <xs:simpleContent>
76
+ <xs:extension base="xs:dateTime" />
77
+ </xs:simpleContent>
78
+ </xs:complexType>
79
+ </xs:element>
80
+
81
+ <xs:element name="sent-date">
82
+ <xs:complexType>
83
+ <xs:annotation>
84
+ <xs:documentation>The date time when element was sent to the user.
85
+ </xs:documentation>
86
+ </xs:annotation>
87
+ <xs:simpleContent>
88
+ <xs:extension base="xs:dateTime" />
89
+ </xs:simpleContent>
90
+ </xs:complexType>
91
+ </xs:element>
92
+
93
+ <xs:element name="approval-date">
94
+ <xs:complexType>
95
+ <xs:annotation>
96
+ <xs:documentation>The date time when element was approved.
97
+ </xs:documentation>
98
+ </xs:annotation>
99
+ <xs:simpleContent>
100
+ <xs:extension base="xs:dateTime" />
101
+ </xs:simpleContent>
102
+ </xs:complexType>
103
+ </xs:element>
104
+
105
+ <xs:element name="source" type="common:source-type" />
106
+
107
+ <xs:element name="external-ids" type="common:external-ids" />
108
+ <xs:element name="external-id" type="common:external-id" />
109
+
110
+ <xs:complexType name="source-type">
111
+ <xs:annotation>
112
+ <xs:documentation>The client application (Member organization's
113
+ system) or user that created the item. XSD VERSION 1.2 UPDATE: the
114
+ identifier for the source may be either an ORCID iD (representing
115
+ individuals and legacy client applications) or a Client ID
116
+ (representing all newer client applications)
117
+ </xs:documentation>
118
+ </xs:annotation>
119
+ <xs:sequence>
120
+ <xs:choice minOccurs="0">
121
+ <xs:element ref="common:source-orcid">
122
+ <xs:annotation>
123
+ <xs:documentation>The ORCID identifier for the individual user (or
124
+ legacy client application) that created the item. For identifiers
125
+ of
126
+ individual users, it may be used to look up ORCID record
127
+ details via
128
+ the API.
129
+ </xs:documentation>
130
+ </xs:annotation>
131
+ </xs:element>
132
+ <xs:element name="source-client-id" type="common:client-id">
133
+ <xs:annotation>
134
+ <xs:documentation>The client ID for the client application (Member
135
+ organization system) that created the item.
136
+ </xs:documentation>
137
+ </xs:annotation>
138
+ </xs:element>
139
+ </xs:choice>
140
+ <xs:element name="source-name" type="common:source-name" minOccurs="0" />
141
+
142
+ <xs:choice minOccurs="0">
143
+ <xs:element name="assertion-origin-orcid" type="common:orcid-id">
144
+ <xs:annotation>
145
+ <xs:documentation>The ORCID identifier for the individual user (or
146
+ legacy client application) made the assertion.
147
+ If missing, source is the same as assertion origin.
148
+ </xs:documentation>
149
+ </xs:annotation>
150
+ </xs:element>
151
+ <xs:element name="assertion-origin-client-id" type="common:client-id">
152
+ <xs:annotation>
153
+ <xs:documentation>The client ID for the client application (Member
154
+ organization system) that made the assertion.
155
+ If missing, source is the same as assertion origin.
156
+ </xs:documentation>
157
+ </xs:annotation>
158
+ </xs:element>
159
+ </xs:choice>
160
+ <xs:element name="assertion-origin-name" type="common:source-name" minOccurs="0" />
161
+
162
+ </xs:sequence>
163
+ </xs:complexType>
164
+
165
+ <xs:complexType name="source-name" mixed="true">
166
+ <xs:annotation>
167
+ <xs:documentation>The human-readable name of the client application
168
+ (Member organization system) or individual user that created the
169
+ item. Value for the same person/organization could change over time.
170
+ source-orcid or source-client-id fields are more appropriate for
171
+ disambiguated matching.
172
+ </xs:documentation>
173
+ </xs:annotation>
174
+ </xs:complexType>
175
+
176
+ <xs:complexType name="organization">
177
+ <xs:annotation>
178
+ <xs:documentation>A reference to an organization. An organization should
179
+ contain a disambiguated organization, which uniquely identifies the
180
+ organization. While the schema does not enforce the presence of a
181
+ disambiguated organization, it is only optional for peer review
182
+ convening organizations. A disambiguated organization is mandatory in
183
+ all other cases where organization is required in the schema.
184
+ </xs:documentation>
185
+ </xs:annotation>
186
+
187
+ <xs:sequence>
188
+ <xs:element name="name" type="common:long-text" />
189
+ <xs:element name="address" type="common:organization-address" />
190
+ <xs:element name="disambiguated-organization" type="common:disambiguated-organization" minOccurs="0" maxOccurs="1" />
191
+ </xs:sequence>
192
+ </xs:complexType>
193
+
194
+ <xs:element name="organization" type="common:organization" />
195
+
196
+ <xs:complexType name="organization-address">
197
+ <xs:annotation>
198
+ <xs:documentation>Container for organization location information
199
+ </xs:documentation>
200
+ </xs:annotation>
201
+ <xs:sequence>
202
+ <xs:element minOccurs="1" name="city" type="common:long-text">
203
+ <xs:annotation>
204
+ <xs:documentation>City</xs:documentation>
205
+ </xs:annotation>
206
+ </xs:element>
207
+ <xs:element minOccurs="0" name="region" type="common:long-text">
208
+ <xs:annotation>
209
+ <xs:documentation>Region within a country</xs:documentation>
210
+ </xs:annotation>
211
+ </xs:element>
212
+ <xs:element minOccurs="1" name="country" type="common:iso-3166-country" />
213
+ </xs:sequence>
214
+ </xs:complexType>
215
+
216
+ <xs:complexType name="disambiguated-organization">
217
+ <xs:annotation>
218
+ <xs:documentation>A reference to a disambiguated version the
219
+ organization to which the researcher or contributor is affiliated.
220
+ The list of disambiguated organizations come from ORCID partners
221
+ such as Ringgold, ISNI and FundRef.
222
+ </xs:documentation>
223
+ </xs:annotation>
224
+ <xs:sequence>
225
+ <xs:element name="disambiguated-organization-identifier" type="common:short-text">
226
+ <xs:annotation>
227
+ <xs:documentation>The disambiguated organization identifier.
228
+ </xs:documentation>
229
+ </xs:annotation>
230
+ </xs:element>
231
+ <xs:element name="disambiguation-source" type="common:short-text">
232
+ <xs:annotation>
233
+ <xs:documentation>The source for providing the disambiguated
234
+ organization ID. For the list of allowed sources see https://github.com/ORCID/ORCID-Source/blob/master/orcid-core/src/main/java/org/orcid/core/orgs/OrgDisambiguatedSourceType.java
235
+ </xs:documentation>
236
+ </xs:annotation>
237
+ </xs:element>
238
+ </xs:sequence>
239
+ </xs:complexType>
240
+
241
+ <xs:simpleType name="locale">
242
+ <xs:annotation>
243
+ <xs:documentation>For the up to date supported locale list see https://github.com/ORCID/ORCID-Source/SUPPORTED_LOCALES.md</xs:documentation>
244
+ </xs:annotation>
245
+ <xs:restriction base="xs:string">
246
+ <xs:pattern value="[a-zA-Z]{1,8}((-|_)[a-zA-Z0-9]{1,8})*" />
247
+ </xs:restriction>
248
+ </xs:simpleType>
249
+
250
+ <xs:simpleType name="non-empty-string">
251
+ <xs:annotation>
252
+ <xs:documentation>Must contain one or more charaters that are not a
253
+ space, carriage return or linefeed
254
+ </xs:documentation>
255
+ </xs:annotation>
256
+ <xs:restriction base="xs:string">
257
+ <xs:pattern value="[\s\S]*[^\s\n\r]+[\s\S]*" />
258
+ </xs:restriction>
259
+ </xs:simpleType>
260
+
261
+ <xs:complexType name="transient-non-empty-string">
262
+ <xs:annotation>
263
+ <xs:documentation>A string that is flagged as transient
264
+ i.e. populated by ORCID, not the source.
265
+ </xs:documentation>
266
+ </xs:annotation>
267
+ <xs:simpleContent>
268
+ <xs:extension base="common:non-empty-string">
269
+ <xs:attribute name="transient" use="required">
270
+ <xs:simpleType>
271
+ <xs:restriction base="xs:boolean">
272
+ <xs:pattern value="true" />
273
+ </xs:restriction>
274
+ </xs:simpleType>
275
+ </xs:attribute>
276
+ </xs:extension>
277
+ </xs:simpleContent>
278
+ </xs:complexType>
279
+
280
+ <xs:complexType name="transient-error">
281
+ <xs:annotation>
282
+ <xs:documentation>An error that populated by ORCID when record is read
283
+ </xs:documentation>
284
+ </xs:annotation>
285
+ <xs:sequence>
286
+ <xs:element name="error-code" type="common:non-empty-string" minOccurs="0" maxOccurs="1" />
287
+ <xs:element name="error-message" type="common:non-empty-string" minOccurs="0" maxOccurs="1" />
288
+ </xs:sequence>
289
+ <xs:attribute name="transient" use="required">
290
+ <xs:simpleType>
291
+ <xs:restriction base="xs:boolean">
292
+ <xs:pattern value="true" />
293
+ </xs:restriction>
294
+ </xs:simpleType>
295
+ </xs:attribute>
296
+ </xs:complexType>
297
+
298
+ <xs:complexType name="amount">
299
+ <xs:annotation>
300
+ <xs:documentation>The funding amount.
301
+ </xs:documentation>
302
+ </xs:annotation>
303
+
304
+ <xs:simpleContent>
305
+ <xs:extension base="xs:string">
306
+ <xs:attribute name="currency-code" type="common:currency-code" use="required" />
307
+ </xs:extension>
308
+ </xs:simpleContent>
309
+ </xs:complexType>
310
+
311
+ <xs:simpleType name="currency-code">
312
+ <xs:annotation>
313
+ <xs:documentation>
314
+ The currency code used for funding amounts, from the ISO 4217 list
315
+ https://www.iso.org/iso-4217-currency-codes.html .
316
+ ORCID will validate this value against the enumeration
317
+ java.util.Currency (https://docs.oracle.com/javase/8/docs/api/java/util/Currency.html) and other rules when necessary.
318
+ </xs:documentation>
319
+ </xs:annotation>
320
+ <xs:restriction base="xs:string" />
321
+ </xs:simpleType>
322
+
323
+ <xs:simpleType name="organization-defined-type">
324
+ <xs:annotation>
325
+ <xs:documentation>Container for a organization defined type for an
326
+ external identifier.
327
+ </xs:documentation>
328
+ </xs:annotation>
329
+ <xs:restriction base="common:string-255"></xs:restriction>
330
+ </xs:simpleType>
331
+
332
+ <xs:element name="language-code" type="common:language-code"></xs:element>
333
+
334
+ <xs:simpleType name="language-code">
335
+ <xs:annotation>
336
+ <xs:documentation>A code to identify the language
337
+ that a field value is expressed in, selected from the following options:
338
+ ab, aa, af, ak, sq, am, ar, an, hy, as, av, ae, ay, az, bm, ba, eu, be, bn, bh, bi, bs, br, bg, my, ca, ch, ce, zh_CN, zh_TW, cu, cv, kw, co, cr, hr, cs, da, dv, nl, dz, en, eo, et, ee, fo, fj, fi, fr, fy, ff, gl, lg, ka, de, el, kl, gn, gu, ht, ha, iw, hz, hi, ho, hu, is, io, ig, in, ia, ie, iu, ik, ga, it, ja, jv, kn, kr, ks, kk, km, ki, rw, ky, kv, kg, ko, ku, kj, lo, la, lv, li, ln, lt, lu, lb, mk, mg, ms, ml, mt, gv, mi, mr, mh, mo, mn, na, nv, ng, ne, nd, se, no, nb, nn, ny, oc, oj, or, om, os, pi, pa, fa, pl, pt, ps, qu, rm, ro, rn, ru, sm, sg, sa, sc, gd, sr, sn, ii, sd, si, sk, sl, so, nr, st, es, su, sw, ss, sv, tl, ty, tg, ta, tt, te, th, bo, ti, to, ts, tn, tr, tk, tw, ug, uk, ur, uz, ve, vi, vo, wa, cy, wo, xh, ji, yo, za, zu
339
+ ORCID will validate this value against the enumeration https://github.com/ORCID/orcid-model/blob/master/src/main/java/org/orcid/jaxb/model/common/LanguageCode.java and other rules when necessary.
340
+ </xs:documentation>
341
+ </xs:annotation>
342
+ <xs:restriction base="xs:string" />
343
+ </xs:simpleType>
344
+
345
+ <xs:complexType name="url">
346
+ <xs:annotation>
347
+ <xs:documentation>Represents a URL in the XML anyURI format
348
+ </xs:documentation>
349
+ </xs:annotation>
350
+ <xs:simpleContent>
351
+ <xs:extension base="xs:anyURI" />
352
+ </xs:simpleContent>
353
+ </xs:complexType>
354
+
355
+ <xs:element name="url" type="common:url" />
356
+
357
+ <xs:complexType name="address">
358
+ <xs:annotation>
359
+ <xs:documentation>Container for address information. Only country
360
+ information is included at this time.
361
+ </xs:documentation>
362
+ </xs:annotation>
363
+ <xs:sequence>
364
+ <xs:element minOccurs="0" ref="common:country" />
365
+ </xs:sequence>
366
+ </xs:complexType>
367
+
368
+ <xs:element name="country">
369
+ <xs:complexType>
370
+ <xs:annotation>
371
+ <xs:documentation>Country represented by its ISO 3611 code. The
372
+ visibility attribute (private, limited or public) can be set at
373
+ record creation, and indicates who can see this section of
374
+ information.
375
+ </xs:documentation>
376
+ </xs:annotation>
377
+ <xs:simpleContent>
378
+ <xs:extension base="common:iso-3166-country-or-empty">
379
+ <xs:attribute name="visibility" type="common:visibility" />
380
+ </xs:extension>
381
+ </xs:simpleContent>
382
+ </xs:complexType>
383
+ </xs:element>
384
+
385
+ <xs:simpleType name="orcid-path">
386
+ <xs:annotation>
387
+ <xs:documentation>Path for the ORCID iD.
388
+ </xs:documentation>
389
+ </xs:annotation>
390
+ <xs:restriction base="xs:string">
391
+ <xs:pattern value="(\d{4}-){3,}\d{3}[\dX]" />
392
+ </xs:restriction>
393
+ </xs:simpleType>
394
+
395
+ <xs:simpleType name="orcid-uri">
396
+ <xs:annotation>
397
+ <xs:documentation>ORCID URI for the ORCID iD.
398
+ </xs:documentation>
399
+ </xs:annotation>
400
+ <xs:restriction base="xs:string">
401
+ <xs:pattern value="https://([^/]*orcid\.org|localhost.*/orcid-web)/(\d{4}-){3,}\d{3}[\dX]" />
402
+ </xs:restriction>
403
+ </xs:simpleType>
404
+
405
+ <xs:element name="application-group-orcid" type="common:orcid-id" />
406
+ <xs:element name="application-orcid" type="common:orcid-id" />
407
+ <xs:element name="orcid-identifier" type="common:orcid-id" />
408
+ <xs:element name="contributor-orcid" type="common:orcid-id" />
409
+ <xs:element name="group-orcid-identifier" type="common:orcid-id" />
410
+ <xs:element name="source-orcid" type="common:orcid-id" />
411
+ <xs:element name="orcid-id" type="common:orcid-id" />
412
+ <xs:complexType name="orcid-id">
413
+ <xs:annotation>
414
+ <xs:documentation>The identifier of the researcher or contributor in
415
+ ORCID (the ORCID iD). At least one of uri or path must be given.
416
+ NOTE: this type is also used for legacy client IDs.
417
+ </xs:documentation>
418
+ </xs:annotation>
419
+ <xs:sequence>
420
+ <xs:choice>
421
+ <xs:sequence>
422
+ <xs:element name="uri" type="common:orcid-uri">
423
+ <xs:annotation>
424
+ <xs:documentation>ORCID iD in URI form (preferred).
425
+ </xs:documentation>
426
+ </xs:annotation>
427
+ </xs:element>
428
+ <xs:element name="path" type="common:orcid-path" minOccurs="0">
429
+ <xs:annotation>
430
+ <xs:documentation>ORCID path (16-character identifier) of the
431
+ ORCID iD.
432
+ </xs:documentation>
433
+ </xs:annotation>
434
+ </xs:element>
435
+ </xs:sequence>
436
+ <xs:element name="path" type="common:orcid-path">
437
+ <xs:annotation>
438
+ <xs:documentation>ORCID path (16-character identifier) of the
439
+ ORCID iD.
440
+ </xs:documentation>
441
+ </xs:annotation>
442
+ </xs:element>
443
+ </xs:choice>
444
+ <xs:element name="host" type="xs:string" minOccurs="0">
445
+ <xs:annotation>
446
+ <xs:documentation>ORCID host (base URL) of the ORCID iD.
447
+ </xs:documentation>
448
+ </xs:annotation>
449
+ </xs:element>
450
+ </xs:sequence>
451
+ </xs:complexType>
452
+
453
+ <xs:simpleType name="client-path">
454
+ <xs:annotation>
455
+ <xs:documentation>Path for the API client ID.
456
+ </xs:documentation>
457
+ </xs:annotation>
458
+ <xs:restriction base="xs:string">
459
+ <xs:pattern value="(APP-[\da-zA-Z]{16}|(\d{4}-){3,}\d{3}[\dX])" />
460
+ </xs:restriction>
461
+ </xs:simpleType>
462
+
463
+ <xs:simpleType name="client-uri">
464
+ <xs:annotation>
465
+ <xs:documentation>ORCID URI for the API client ID.
466
+ </xs:documentation>
467
+ </xs:annotation>
468
+ <xs:restriction base="xs:string">
469
+ <xs:pattern value="https://([^/]*orcid\.org|localhost.*/orcid-web)/client/(APP-[\da-zA-Z]{16}|(\d{4}-){3,}\d{3}[\dX])" />
470
+ </xs:restriction>
471
+ </xs:simpleType>
472
+
473
+ <xs:complexType name="client-id">
474
+ <xs:annotation>
475
+ <xs:documentation>The identifier of an ORCID API client app. At least
476
+ one of uri or path must be given. NOTE: legacy API clients still may
477
+ be identified by the orcid-id type.
478
+ </xs:documentation>
479
+ </xs:annotation>
480
+ <xs:sequence>
481
+ <xs:choice>
482
+ <xs:sequence>
483
+ <xs:element name="uri" type="common:client-uri" />
484
+ <xs:element name="path" type="common:client-path" minOccurs="0" />
485
+ </xs:sequence>
486
+ <xs:element name="path" type="common:client-path" />
487
+ </xs:choice>
488
+ <xs:element name="host" type="xs:string" minOccurs="0">
489
+ <xs:annotation>
490
+ <xs:documentation>ORCID host (base URL) of the ORCID iD.
491
+ </xs:documentation>
492
+ </xs:annotation>
493
+ </xs:element>
494
+ </xs:sequence>
495
+ </xs:complexType>
496
+
497
+ <xs:simpleType name="put-code">
498
+ <xs:annotation>
499
+ <xs:documentation>The put-code attribute is present only when reading
500
+ elements. The code must be used when PUTing (updating) items that
501
+ contain the attribute (works, affiliations, etc) to ensure that the
502
+ existing item's history is retained.
503
+ </xs:documentation>
504
+ </xs:annotation>
505
+ <xs:restriction base="xs:integer"></xs:restriction>
506
+ </xs:simpleType>
507
+
508
+ <xs:simpleType name="element-path">
509
+ <xs:annotation>
510
+ <xs:documentation>The activity-path attribute is present only when
511
+ reading elements. It will be of the form /{orcid}/{activity-name}/{put-code} for
512
+ activity elements or /{orcid}/person/{element-name}/{put-code} for person element
513
+ </xs:documentation>
514
+ </xs:annotation>
515
+ <xs:restriction base="xs:string"></xs:restriction>
516
+ </xs:simpleType>
517
+
518
+ <xs:simpleType name="visibility">
519
+ <xs:annotation>
520
+ <xs:documentation>Indicates who can see the value of the element when
521
+ reading the ORCID record. See the enumerations for definitions of
522
+ each value, private, limited, public, registered-only.
523
+ </xs:documentation>
524
+ </xs:annotation>
525
+ <xs:restriction base="xs:string">
526
+ <xs:enumeration value="private">
527
+ <xs:annotation>
528
+ <xs:documentation>The data can only be seen by the researcher or
529
+ contributor. This data may be used internally by ORCID for Record
530
+ disambiguation purposes.
531
+ </xs:documentation>
532
+ </xs:annotation>
533
+ </xs:enumeration>
534
+ <xs:enumeration value="limited">
535
+ <xs:annotation>
536
+ <xs:documentation>The data can only be seen by trusted parties
537
+ (organizations or people) as indicated by the researcher or
538
+ contributor. This information is only shared with systems that the
539
+ researcher or contributor has specifically granted authorization
540
+ (using OAuth).
541
+ </xs:documentation>
542
+ </xs:annotation>
543
+ </xs:enumeration>
544
+ <xs:enumeration value="public">
545
+ <xs:annotation>
546
+ <xs:documentation>The data can be seen by anyone. It is publically
547
+ available via the ORCID Registry website and the public API
548
+ without further authroization by the researcher or contributor.
549
+ </xs:documentation>
550
+ </xs:annotation>
551
+ </xs:enumeration>
552
+ <xs:enumeration value="registered-only">
553
+ <xs:annotation>
554
+ <xs:documentation>The data is shared only with the registered user.
555
+ </xs:documentation>
556
+ </xs:annotation>
557
+ </xs:enumeration>
558
+ </xs:restriction>
559
+ </xs:simpleType>
560
+
561
+ <xs:simpleType name="email">
562
+ <xs:annotation>
563
+ <xs:documentation>Type to represent an email address.
564
+ </xs:documentation>
565
+ </xs:annotation>
566
+ <xs:restriction base="xs:string">
567
+ <xs:maxLength value="350" />
568
+ <xs:pattern value="[^@]+@[^\.]+\..+" />
569
+ </xs:restriction>
570
+ </xs:simpleType>
571
+
572
+ <xs:simpleType name="year">
573
+ <xs:annotation>
574
+ <xs:documentation>4-digit integer representing a year of a date.
575
+ </xs:documentation>
576
+ </xs:annotation>
577
+ <xs:restriction base="xs:integer">
578
+ <xs:minInclusive value="1900" />
579
+ <xs:maxInclusive value="2100" />
580
+ </xs:restriction>
581
+ </xs:simpleType>
582
+
583
+ <xs:simpleType name="month">
584
+ <xs:annotation>
585
+ <xs:documentation>2-digit integer representing a month of a date.
586
+ </xs:documentation>
587
+ </xs:annotation>
588
+ <xs:restriction base="xs:integer">
589
+ <xs:minInclusive value="1" />
590
+ <xs:maxInclusive value="12" />
591
+ </xs:restriction>
592
+ </xs:simpleType>
593
+
594
+ <xs:simpleType name="day">
595
+ <xs:annotation>
596
+ <xs:documentation>2-digit integer representing a day of a date.
597
+ </xs:documentation>
598
+ </xs:annotation>
599
+ <xs:restriction base="xs:integer">
600
+ <xs:minInclusive value="1" />
601
+ <xs:maxInclusive value="31" />
602
+ </xs:restriction>
603
+ </xs:simpleType>
604
+
605
+ <xs:element name="fuzzy-date" type="common:fuzzy-date" />
606
+ <xs:element name="start-date" type="common:fuzzy-date" />
607
+ <xs:element name="end-date" type="common:fuzzy-date" />
608
+ <xs:element name="publication-date" type="common:fuzzy-date" />
609
+ <xs:complexType name="fuzzy-date">
610
+ <xs:annotation>
611
+ <xs:documentation>In some places the full date is not required.
612
+ </xs:documentation>
613
+ </xs:annotation>
614
+ <xs:sequence>
615
+ <xs:element name="year">
616
+ <xs:annotation>
617
+ <xs:documentation>Used with the fuzzy-date type. Represents the
618
+ year
619
+ of the date.
620
+ </xs:documentation>
621
+ </xs:annotation>
622
+ <xs:complexType mixed="true">
623
+ <xs:simpleContent>
624
+ <xs:extension base="common:year" />
625
+ </xs:simpleContent>
626
+ </xs:complexType>
627
+ </xs:element>
628
+ <xs:sequence minOccurs="0">
629
+ <xs:element name="month">
630
+ <xs:annotation>
631
+ <xs:documentation>Used with the fuzzy-date type. Represents the
632
+ month
633
+ of the date.
634
+ </xs:documentation>
635
+ </xs:annotation>
636
+ <xs:complexType mixed="true">
637
+ <xs:simpleContent>
638
+ <xs:extension base="common:month" />
639
+ </xs:simpleContent>
640
+ </xs:complexType>
641
+ </xs:element>
642
+ <xs:element name="day" minOccurs="0">
643
+ <xs:annotation>
644
+ <xs:documentation>Used with the fuzzy-date type. Represents the
645
+ day
646
+ of the date.
647
+ </xs:documentation>
648
+ </xs:annotation>
649
+ <xs:complexType mixed="true">
650
+ <xs:simpleContent>
651
+ <xs:extension base="common:day" />
652
+ </xs:simpleContent>
653
+ </xs:complexType>
654
+ </xs:element>
655
+ </xs:sequence>
656
+ </xs:sequence>
657
+ </xs:complexType>
658
+
659
+ <xs:simpleType name="iso-3166-country">
660
+ <xs:annotation>
661
+ <xs:documentation>ISO 3166-1 alpha-2 country code from https://www.iso.org/iso-3166-country-codes.html .
662
+ </xs:documentation>
663
+ </xs:annotation>
664
+ <xs:restriction base="xs:string" />
665
+ </xs:simpleType>
666
+
667
+ <xs:simpleType name="iso-3166-country-or-empty">
668
+ <xs:annotation>
669
+ <xs:documentation>Contains either a country code or an empty value
670
+ </xs:documentation>
671
+ </xs:annotation>
672
+ <xs:union memberTypes="common:iso-3166-country" />
673
+ </xs:simpleType>
674
+
675
+ <xs:simpleType name="empty">
676
+ <xs:annotation>
677
+ <xs:documentation>An empty string</xs:documentation>
678
+ </xs:annotation>
679
+ <xs:restriction base="xs:string">
680
+ <xs:enumeration value="" />
681
+ </xs:restriction>
682
+ </xs:simpleType>
683
+
684
+ <xs:simpleType name="short-text">
685
+ <xs:annotation>
686
+ <xs:documentation>A non-empty string that has a maximum size of 500
687
+ characters
688
+ </xs:documentation>
689
+ </xs:annotation>
690
+ <xs:restriction base="xs:string">
691
+ <xs:maxLength value="500" />
692
+ </xs:restriction>
693
+ </xs:simpleType>
694
+
695
+ <xs:simpleType name="string-150">
696
+ <xs:annotation>
697
+ <xs:documentation>A non-empty string that has a maximum size of 150
698
+ characters
699
+ </xs:documentation>
700
+ </xs:annotation>
701
+ <xs:restriction base="common:non-empty-string">
702
+ <xs:maxLength value="150" />
703
+ </xs:restriction>
704
+ </xs:simpleType>
705
+
706
+ <xs:simpleType name="string-200">
707
+ <xs:annotation>
708
+ <xs:documentation>A non-empty string that has a maximum size of 200
709
+ characters
710
+ </xs:documentation>
711
+ </xs:annotation>
712
+ <xs:restriction base="xs:string">
713
+ <xs:maxLength value="200" />
714
+ </xs:restriction>
715
+ </xs:simpleType>
716
+
717
+ <xs:simpleType name="string-255">
718
+ <xs:annotation>
719
+ <xs:documentation>A non-empty string that has a maximum size of 255
720
+ characters
721
+ </xs:documentation>
722
+ </xs:annotation>
723
+ <xs:restriction base="xs:string">
724
+ <xs:maxLength value="255" />
725
+ </xs:restriction>
726
+ </xs:simpleType>
727
+
728
+ <xs:simpleType name="string-350">
729
+ <xs:annotation>
730
+ <xs:documentation>A non-empty string that has a maximum size of 350
731
+ characters
732
+ </xs:documentation>
733
+ </xs:annotation>
734
+ <xs:restriction base="common:non-empty-string">
735
+ <xs:maxLength value="350" />
736
+ </xs:restriction>
737
+ </xs:simpleType>
738
+
739
+ <xs:simpleType name="string-1000">
740
+ <xs:annotation>
741
+ <xs:documentation>A non-empty string that has a maximum size of 1000
742
+ characters
743
+ </xs:documentation>
744
+ </xs:annotation>
745
+ <xs:restriction base="common:non-empty-string">
746
+ <xs:maxLength value="1000" />
747
+ </xs:restriction>
748
+ </xs:simpleType>
749
+
750
+ <xs:simpleType name="string-2084">
751
+ <xs:annotation>
752
+ <xs:documentation>A non-empty string that has a maximum size of 2084
753
+ characters
754
+ </xs:documentation>
755
+ </xs:annotation>
756
+ <xs:restriction base="common:non-empty-string">
757
+ <xs:maxLength value="2084" />
758
+ </xs:restriction>
759
+ </xs:simpleType>
760
+
761
+ <xs:complexType name="string-with-lang-code">
762
+ <xs:annotation>
763
+ <xs:documentation>A non-empty string that includes a language code to
764
+ indicate the language used for the string's value.
765
+ </xs:documentation>
766
+ </xs:annotation>
767
+ <xs:simpleContent>
768
+ <xs:extension base="common:non-empty-string">
769
+ <xs:attribute name="language-code" type="common:language-code" use="required" />
770
+ </xs:extension>
771
+ </xs:simpleContent>
772
+ </xs:complexType>
773
+
774
+ <xs:simpleType name="short-description">
775
+ <xs:annotation>
776
+ <xs:documentation>A short narrative (few sentences) describing the
777
+ item.
778
+ </xs:documentation>
779
+ </xs:annotation>
780
+ <xs:restriction base="xs:string">
781
+ <xs:maxLength value="5000" />
782
+ </xs:restriction>
783
+ </xs:simpleType>
784
+
785
+ <xs:simpleType name="long-text">
786
+ <xs:annotation>
787
+ <xs:documentation>Must contain one or more charaters that are not a
788
+ space, carriage return or linefeed
789
+ </xs:documentation>
790
+ </xs:annotation>
791
+ <xs:restriction base="common:non-empty-string">
792
+ <xs:maxLength value="4000" />
793
+ </xs:restriction>
794
+ </xs:simpleType>
795
+
796
+ <xs:complexType name="credit-name">
797
+ <xs:annotation>
798
+ <xs:documentation>The name to use for the researcher or contributor
799
+ when credited or cited, for example, in an article or index, or as a
800
+ funding contributor. The value of this field also is used as the
801
+ display name for the researcher or contributor in the ORCID Registry
802
+ in their ORCID Record, or when listed as a contributor on other
803
+ ORCID Records. If this element is NULL, given-name family-name will
804
+ be used for display purposes, with a visibility of "public". The
805
+ visibility attribute (private, limited or public) can be set at
806
+ record creation, and indicates who can see this section of
807
+ information.
808
+ </xs:documentation>
809
+ </xs:annotation>
810
+ <xs:simpleContent>
811
+ <xs:extension base="common:string-150" />
812
+ </xs:simpleContent>
813
+ </xs:complexType>
814
+
815
+ <xs:element name="title" type="common:string-1000">
816
+ <xs:annotation>
817
+ <xs:documentation>The main name or title of the work. For a
818
+ spin-off
819
+ company, include use the company name
820
+ </xs:documentation>
821
+ </xs:annotation>
822
+ </xs:element>
823
+
824
+ <xs:element name="subtitle">
825
+ <xs:annotation>
826
+ <xs:documentation>If the work has a subtitle, include it here.
827
+ </xs:documentation>
828
+ </xs:annotation>
829
+ <xs:simpleType>
830
+ <xs:restriction base="xs:string">
831
+ <xs:maxLength value="1000" />
832
+ </xs:restriction>
833
+ </xs:simpleType>
834
+ </xs:element>
835
+
836
+ <xs:element name="translated-title">
837
+ <xs:complexType>
838
+ <xs:annotation>
839
+ <xs:documentation>The main title of the work or funding translated
840
+ into another language. The translated language will be included in
841
+ the &lt;language-code&gt; attribute.
842
+ </xs:documentation>
843
+ </xs:annotation>
844
+ <xs:simpleContent>
845
+ <xs:restriction base="common:string-with-lang-code">
846
+ <xs:maxLength value="1000" />
847
+ </xs:restriction>
848
+ </xs:simpleContent>
849
+ </xs:complexType>
850
+ </xs:element>
851
+
852
+ <xs:complexType name="contributor-email">
853
+ <xs:annotation>
854
+ <xs:documentation>Email of the collaborator or other contributor.
855
+ When provided during creation or update, the email address is used
856
+ to look up and add the contributor's ORCID iD.
857
+ </xs:documentation>
858
+ </xs:annotation>
859
+ <xs:simpleContent>
860
+ <xs:extension base="common:email" />
861
+ </xs:simpleContent>
862
+ </xs:complexType>
863
+ <xs:complexType name="contributor-attributes">
864
+ <xs:annotation>
865
+ <xs:documentation>Provides detail of the nature of the contribution
866
+ by the collaborator or other contirbutor.
867
+ </xs:documentation>
868
+ </xs:annotation>
869
+ <xs:sequence>
870
+ <xs:element name="contributor-sequence" type="common:contributor-sequence" minOccurs="0" />
871
+ <xs:element name="contributor-role" type="common:contributor-role" minOccurs="0" />
872
+ </xs:sequence>
873
+ </xs:complexType>
874
+
875
+ <xs:simpleType name="contributor-sequence">
876
+ <xs:annotation>
877
+ <xs:documentation>Indication of where in the contributor list the
878
+ collaborator or other contributor's name should appear, selected from the following options:
879
+ * first
880
+ * additional
881
+ ORCID will validate this value against the enumeration
882
+ https://github.com/ORCID/orcid-model/blob/master/src/main/java/org/orcid/jaxb/model/common/SequenceType.java
883
+ </xs:documentation>
884
+ </xs:annotation>
885
+ <xs:restriction base="xs:string" />
886
+ </xs:simpleType>
887
+
888
+ <xs:simpleType name="contributor-role">
889
+ <xs:annotation>
890
+ <xs:documentation>
891
+ The role performed by the collaborator or other contributor,
892
+ the list of allowed values is described here https://info.orcid.org/documentation/integration-and-api-faq/#easy-faq-2721
893
+ and any value outside these will be rejected by our API.
894
+ </xs:documentation>
895
+ </xs:annotation>
896
+
897
+ <xs:restriction base="xs:string" />
898
+ </xs:simpleType>
899
+
900
+ <xs:complexType name="element-summary">
901
+ <xs:sequence>
902
+ <xs:element ref="common:created-date" minOccurs="0" maxOccurs="1" />
903
+ <xs:element ref="common:last-modified-date" minOccurs="0" maxOccurs="1" />
904
+ <xs:element ref="common:source" minOccurs="0" maxOccurs="1" />
905
+ </xs:sequence>
906
+ <xs:attribute name="put-code" type="common:put-code" use="optional" />
907
+ <xs:attribute name="visibility" type="common:visibility" />
908
+ <xs:attribute name="display-index" type="xs:string" use="optional" />
909
+ <xs:attribute name="path" type="common:element-path" use="optional" />
910
+ </xs:complexType>
911
+
912
+ <xs:complexType name="affiliation-summary">
913
+ <xs:complexContent>
914
+ <xs:extension base="common:element-summary">
915
+ <xs:sequence>
916
+ <xs:element name="department-name" type="common:long-text" minOccurs="0" maxOccurs="1" />
917
+ <xs:element name="role-title" type="common:long-text" minOccurs="0" maxOccurs="1" />
918
+ <xs:element ref="common:start-date" minOccurs="0" maxOccurs="1" />
919
+ <xs:element ref="common:end-date" minOccurs="0" maxOccurs="1" />
920
+ <xs:element name="organization" type="common:organization" minOccurs="1" maxOccurs="1" />
921
+ <xs:element ref="common:url" minOccurs="0" />
922
+ <xs:element ref="common:external-ids" minOccurs="0" />
923
+ </xs:sequence>
924
+ </xs:extension>
925
+ </xs:complexContent>
926
+ </xs:complexType>
927
+
928
+ <xs:complexType name="affiliation">
929
+ <xs:complexContent>
930
+ <xs:extension base="common:element-summary">
931
+ <xs:sequence>
932
+ <xs:element name="department-name" type="common:long-text" minOccurs="0" maxOccurs="1" />
933
+ <xs:element name="role-title" type="common:long-text" minOccurs="0" maxOccurs="1" />
934
+ <xs:element ref="common:start-date" minOccurs="0" maxOccurs="1" />
935
+ <xs:element ref="common:end-date" minOccurs="0" maxOccurs="1" />
936
+ <xs:element name="organization" type="common:organization" minOccurs="1" maxOccurs="1" />
937
+ <xs:element ref="common:url" minOccurs="0" />
938
+ <xs:element ref="common:external-ids" minOccurs="0" />
939
+ </xs:sequence>
940
+ </xs:extension>
941
+ </xs:complexContent>
942
+ </xs:complexType>
943
+
944
+ <xs:simpleType name="relationship-type">
945
+ <xs:annotation>
946
+ <xs:documentation>
947
+ Indicates the relationship type, selected from the following options:
948
+ * part-of
949
+ * self
950
+ * version-of
951
+ * funded-by
952
+ ORCID will validate this value against the enumeration
953
+ https://github.com/ORCID/orcid-model/blob/master/src/main/java/org/orcid/jaxb/model/common/Relationship.java and other rules when necessary.
954
+ </xs:documentation>
955
+ </xs:annotation>
956
+ <xs:restriction base="xs:string" />
957
+ </xs:simpleType>
958
+
959
+ <xs:complexType name="external-id">
960
+ <xs:annotation>
961
+ <xs:documentation>A reference to an external identifier, suitable for works, people and funding.
962
+ Supported external-id-type values can be found at https://pub.orcid.org/v2.0/identifiers
963
+ </xs:documentation>
964
+ </xs:annotation>
965
+ <xs:complexContent>
966
+ <xs:extension base="common:element-summary">
967
+ <xs:sequence>
968
+ <xs:element name="external-id-type" type="common:non-empty-string" minOccurs="1" maxOccurs="1" />
969
+ <xs:element name="external-id-value" type="common:non-empty-string" minOccurs="1" maxOccurs="1" />
970
+ <xs:element name="external-id-normalized" type="common:transient-non-empty-string" minOccurs="0" maxOccurs="1" />
971
+ <xs:element name="external-id-normalized-error" type="common:transient-error" minOccurs="0" maxOccurs="1" />
972
+ <xs:element name="external-id-url" type="xs:anyURI" minOccurs="0" maxOccurs="1" />
973
+ <xs:element name="external-id-relationship" minOccurs="0" maxOccurs="1" type="common:relationship-type" />
974
+ </xs:sequence>
975
+ </xs:extension>
976
+ </xs:complexContent>
977
+ </xs:complexType>
978
+
979
+ <xs:complexType name="external-ids">
980
+ <xs:annotation>
981
+ <xs:documentation>Container for storing external ids</xs:documentation>
982
+ </xs:annotation>
983
+ <xs:sequence>
984
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="external-id" type="common:external-id" />
985
+ </xs:sequence>
986
+ </xs:complexType>
987
+
988
+ <xs:simpleType name="group-id">
989
+ <xs:annotation>
990
+ <xs:documentation>Identifier for the group that this review should be a part of for aggregation purposes
991
+ </xs:documentation>
992
+ </xs:annotation>
993
+ <xs:restriction base="common:string-1000">
994
+ <xs:pattern value="(ringgold:|issn:|orcid-generated:|fundref:|publons:)([0-9a-zA-Z\^._~:/?#\[\]@!$&amp;'()*+,;=-]){2,}" />
995
+ </xs:restriction>
996
+ </xs:simpleType>
997
+
998
+ </xs:schema>