orcid_client 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +7 -0
  2. data/.env.example +10 -0
  3. data/.gitignore +42 -0
  4. data/.travis.yml +17 -0
  5. data/CHANGELOG.md +0 -0
  6. data/Gemfile +4 -0
  7. data/Gemfile.lock +115 -0
  8. data/LICENSE.md +21 -0
  9. data/README.md +45 -0
  10. data/Rakefile +5 -0
  11. data/lib/orcid_client.rb +3 -0
  12. data/lib/orcid_client/api.rb +75 -0
  13. data/lib/orcid_client/author.rb +56 -0
  14. data/lib/orcid_client/base.rb +21 -0
  15. data/lib/orcid_client/date.rb +61 -0
  16. data/lib/orcid_client/metadata.rb +128 -0
  17. data/lib/orcid_client/notification.rb +125 -0
  18. data/lib/orcid_client/version.rb +3 -0
  19. data/lib/orcid_client/work.rb +200 -0
  20. data/lib/orcid_client/work_type.rb +68 -0
  21. data/orcid_client.gemspec +37 -0
  22. data/resources/common_2.0_rc3/common-2.0_rc3.xsd +1624 -0
  23. data/resources/common_2.0_rc3/samples/common-2.0_rc3.xml +8 -0
  24. data/resources/notification_2.0_rc3/notification-custom-2.0_rc3.xsd +32 -0
  25. data/resources/notification_2.0_rc3/notification-permission-2.0_rc3.xsd +128 -0
  26. data/resources/notification_2.0_rc3/samples/notification-custom-2.0_rc3.xml +45 -0
  27. data/resources/notification_2.0_rc3/samples/notification-permission-2.0_rc3.xml +58 -0
  28. data/resources/record_2.0_rc3/activities-2.0_rc3.xsd +187 -0
  29. data/resources/record_2.0_rc3/address-2.0_rc3.xsd +73 -0
  30. data/resources/record_2.0_rc3/bulk-2.0_rc3.xsd +57 -0
  31. data/resources/record_2.0_rc3/deprecated-2.0_rc3.xsd +80 -0
  32. data/resources/record_2.0_rc3/education-2.0_rc3.xsd +96 -0
  33. data/resources/record_2.0_rc3/email-2.0_rc3.xsd +74 -0
  34. data/resources/record_2.0_rc3/employment-2.0_rc3.xsd +96 -0
  35. data/resources/record_2.0_rc3/error-2.0_rc3.xsd +84 -0
  36. data/resources/record_2.0_rc3/funding-2.0_rc3.xsd +257 -0
  37. data/resources/record_2.0_rc3/history-2.0_rc3.xsd +203 -0
  38. data/resources/record_2.0_rc3/internal-2.0_rc3.xsd +199 -0
  39. data/resources/record_2.0_rc3/keyword-2.0_rc3.xsd +72 -0
  40. data/resources/record_2.0_rc3/other-name-2.0_rc3.xsd +88 -0
  41. data/resources/record_2.0_rc3/peer-review-2.0_rc3.xsd +246 -0
  42. data/resources/record_2.0_rc3/person-2.0_rc3.xsd +98 -0
  43. data/resources/record_2.0_rc3/person-external-identifier-2.0_rc3.xsd +63 -0
  44. data/resources/record_2.0_rc3/personal-details-2.0_rc3.xsd +186 -0
  45. data/resources/record_2.0_rc3/preferences-2.0_rc3.xsd +50 -0
  46. data/resources/record_2.0_rc3/record-2.0_rc3.xsd +105 -0
  47. data/resources/record_2.0_rc3/researcher-url-2.0_rc3.xsd +90 -0
  48. data/resources/record_2.0_rc3/samples/activities-2.0_rc3.xml +236 -0
  49. data/resources/record_2.0_rc3/samples/address-2.0_rc3.xml +16 -0
  50. data/resources/record_2.0_rc3/samples/addresses-2.0_rc3.xml +32 -0
  51. data/resources/record_2.0_rc3/samples/biography-2.0_rc3.xml +10 -0
  52. data/resources/record_2.0_rc3/samples/bulk-work-2.0_rc3.json +56 -0
  53. data/resources/record_2.0_rc3/samples/bulk-work-2.0_rc3.xml +62 -0
  54. data/resources/record_2.0_rc3/samples/credit-name-2.0_rc3.xml +5 -0
  55. data/resources/record_2.0_rc3/samples/deprecated-2.0_rc3.xml +13 -0
  56. data/resources/record_2.0_rc3/samples/education-2.0_rc3.xml +30 -0
  57. data/resources/record_2.0_rc3/samples/education-full-2.0_rc3.xml +40 -0
  58. data/resources/record_2.0_rc3/samples/email-2.0_rc3.xml +16 -0
  59. data/resources/record_2.0_rc3/samples/emails-2.0_rc3.xml +31 -0
  60. data/resources/record_2.0_rc3/samples/employment-2.0_rc3.xml +30 -0
  61. data/resources/record_2.0_rc3/samples/employment-full-2.0_rc3.xml +40 -0
  62. data/resources/record_2.0_rc3/samples/error-2.0_rc3.xml +8 -0
  63. data/resources/record_2.0_rc3/samples/external-identifier-2.0_rc3.xml +20 -0
  64. data/resources/record_2.0_rc3/samples/external-identifiers-2.0_rc3.xml +36 -0
  65. data/resources/record_2.0_rc3/samples/funding-2.0_rc3.xml +65 -0
  66. data/resources/record_2.0_rc3/samples/funding-full-2.0_rc3.xml +75 -0
  67. data/resources/record_2.0_rc3/samples/history-2.0_rc3.xml +22 -0
  68. data/resources/record_2.0_rc3/samples/keyword-2.0_rc3.xml +18 -0
  69. data/resources/record_2.0_rc3/samples/keywords-2.0_rc3.xml +34 -0
  70. data/resources/record_2.0_rc3/samples/name-2.0_rc3.xml +12 -0
  71. data/resources/record_2.0_rc3/samples/other-name-2.0_rc3.xml +16 -0
  72. data/resources/record_2.0_rc3/samples/other-names-2.0_rc3.xml +31 -0
  73. data/resources/record_2.0_rc3/samples/peer-review-2.0_rc3.xml +49 -0
  74. data/resources/record_2.0_rc3/samples/peer-review-full-2.0_rc3.xml +59 -0
  75. data/resources/record_2.0_rc3/samples/person-2.0_rc3.xml +122 -0
  76. data/resources/record_2.0_rc3/samples/personal-details-2.0_rc3.xml +47 -0
  77. data/resources/record_2.0_rc3/samples/preferences-2.0_rc3.xml +4 -0
  78. data/resources/record_2.0_rc3/samples/record-2.0_rc3.xml +420 -0
  79. data/resources/record_2.0_rc3/samples/researcher-url-2.0_rc3.xml +19 -0
  80. data/resources/record_2.0_rc3/samples/researcher-urls-2.0_rc3.xml +21 -0
  81. data/resources/record_2.0_rc3/samples/search-2.0_rc3.xml +368 -0
  82. data/resources/record_2.0_rc3/samples/work-2.0_rc3.xml +49 -0
  83. data/resources/record_2.0_rc3/samples/work-full-2.0_rc3.xml +59 -0
  84. data/resources/record_2.0_rc3/search-2.0_rc3.xsd +82 -0
  85. data/resources/record_2.0_rc3/work-2.0_rc3.xsd +445 -0
  86. data/spec/api_spec.rb +59 -0
  87. data/spec/fixtures/vcr_cassettes/OrcidClient/get/should_get_works.yml +646 -0
  88. data/spec/fixtures/vcr_cassettes/OrcidClient/notifications/post/should_create_notification.yml +104 -0
  89. data/spec/fixtures/vcr_cassettes/OrcidClient/works/delete/should_delete_work.yml +38 -0
  90. data/spec/fixtures/vcr_cassettes/OrcidClient/works/get/should_get_works.yml +646 -0
  91. data/spec/fixtures/vcr_cassettes/OrcidClient/works/post/should_create_work.yml +116 -0
  92. data/spec/fixtures/vcr_cassettes/OrcidClient/works/put/should_update_work.yml +155 -0
  93. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/data.yml +44 -0
  94. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_data.yml +44 -0
  95. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_item_type_work.yml +41 -0
  96. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/citation.yml +50 -0
  97. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/literal.yml +47 -0
  98. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/multiple_titles.yml +47 -0
  99. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/valid.yml +50 -0
  100. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/with_ORCID_IDs.yml +157 -0
  101. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/data.yml +50 -0
  102. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/publication_date.yml +50 -0
  103. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_ORCID_IDs_for_contributors.yml +157 -0
  104. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_data.yml +50 -0
  105. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_work_type_data-set.yml +47 -0
  106. data/spec/fixtures/work.xml +33 -0
  107. data/spec/notification_spec.rb +42 -0
  108. data/spec/spec_helper.rb +32 -0
  109. data/spec/work_spec.rb +100 -0
  110. metadata +392 -0
@@ -0,0 +1,199 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:sch="http://purl.oclc.org/dsdl/schematron" elementFormDefault="qualified"
4
+ targetNamespace="http://www.orcid.org/ns/internal" xmlns:internal="http://www.orcid.org/ns/internal"
5
+ xmlns:common="http://www.orcid.org/ns/common">
6
+ <xs:annotation>
7
+ <xs:documentation>
8
+ =============================================================================
9
+
10
+ ORCID (R) Open Source
11
+ http://orcid.org
12
+
13
+ Copyright (c) 2012-2014 ORCID,
14
+ Inc.
15
+ Licensed under an MIT-Style License (MIT)
16
+ http://orcid.org/open-source-license
17
+
18
+ This copyright and license
19
+ information (including a link to the full
20
+ license)
21
+ shall be included in
22
+ its entirety in all copies or substantial portion of
23
+ the software.
24
+
25
+ =============================================================================
26
+ The schema describes the message format used for ORCID API requests
27
+ and responses.
28
+ The top level element is orcid-message.
29
+ </xs:documentation>
30
+ <xs:appinfo>
31
+ <sch:title>Schematron validation</sch:title>
32
+ <sch:ns prefix="orcid" uri="http://www.orcid.org/ns/orcid" />
33
+ </xs:appinfo>
34
+ </xs:annotation>
35
+
36
+ <xs:import namespace="http://www.orcid.org/ns/common"
37
+ schemaLocation="../common_2.0_rc3/common-2.0_rc3.xsd" />
38
+
39
+ <xs:element name="internal">
40
+ <xs:complexType>
41
+ <xs:annotation>
42
+ <xs:documentation>(FOR INTERNAL USE ONLY) Container for data that
43
+ are
44
+ strictly for internal
45
+ use only.
46
+ </xs:documentation>
47
+ </xs:annotation>
48
+ <xs:sequence>
49
+ <xs:element minOccurs="0" name="security-details" type="internal:security-details" />
50
+ <xs:element minOccurs="0" name="preferences" type="internal:preferences" />
51
+ <xs:element minOccurs="0" ref="common:group-orcid-identifier">
52
+ <xs:annotation>
53
+ <xs:documentation>(FOR INTERNAL USE ONLY) Group ID for API
54
+ clients.
55
+ </xs:documentation>
56
+ </xs:annotation>
57
+ </xs:element>
58
+ <xs:element name="referred-by" type="xs:string" minOccurs="0"
59
+ maxOccurs="1">
60
+ <xs:annotation>
61
+ <xs:documentation>(FOR INTERNAL USE ONLY) User registration is
62
+ know to be driven by Member
63
+ </xs:documentation>
64
+ </xs:annotation>
65
+ </xs:element>
66
+ <xs:element minOccurs="0" name="salesforce-id" type="internal:salesforce-id" />
67
+ </xs:sequence>
68
+ <xs:attribute name="visibility" type="common:visibility" />
69
+ </xs:complexType>
70
+ </xs:element>
71
+
72
+ <xs:simpleType name="salesforce-id">
73
+ <xs:annotation>
74
+ <xs:documentation>(FOR INTERNAL USE ONLY) An ID that identifies a
75
+ profile in Salesforce.
76
+ </xs:documentation>
77
+ </xs:annotation>
78
+ <xs:restriction base="xs:string">
79
+ <xs:pattern value="([a-zA-Z0-9]){15}" />
80
+ </xs:restriction>
81
+ </xs:simpleType>
82
+
83
+ <xs:complexType name="security-details">
84
+ <xs:annotation>
85
+ <xs:documentation>(FOR INTERNAL USE ONLY) Security access details
86
+ </xs:documentation>
87
+ </xs:annotation>
88
+
89
+ <xs:sequence>
90
+ <xs:element name="encrypted-password" type="internal:encrypted-password" />
91
+ <xs:element name="security-question-id" type="internal:security-question-id"
92
+ minOccurs="0" maxOccurs="1" />
93
+ <xs:element name="encrypted-security-answer" type="internal:encrypted-security-answer"
94
+ minOccurs="0" maxOccurs="1" />
95
+ <xs:element name="encrypted-verification-code" type="internal:encrypted-verification-code"
96
+ minOccurs="1" maxOccurs="1" />
97
+ </xs:sequence>
98
+ </xs:complexType>
99
+
100
+ <xs:complexType name="preferences">
101
+ <xs:annotation>
102
+ <xs:documentation>(FOR INTERNAL USE ONLY) Preferences set by the
103
+ researcher or contributor.
104
+ </xs:documentation>
105
+ </xs:annotation>
106
+ <xs:sequence>
107
+ <xs:element name="send-email-frequency-days" type="xs:string">
108
+ <xs:annotation>
109
+ <xs:documentation>(FOR INTERNAL USE ONLY)
110
+ </xs:documentation>
111
+ </xs:annotation>
112
+ </xs:element>
113
+ <xs:element name="send-change-notifications">
114
+ <xs:annotation>
115
+ <xs:documentation>(FOR INTERNAL USE ONLY)
116
+ </xs:documentation>
117
+ </xs:annotation>
118
+ <xs:complexType>
119
+ <xs:simpleContent>
120
+ <xs:extension base="xs:boolean" />
121
+ </xs:simpleContent>
122
+ </xs:complexType>
123
+ </xs:element>
124
+ <xs:element name="send-orcid-news">
125
+ <xs:annotation>
126
+ <xs:documentation>(FOR INTERNAL USE ONLY)
127
+ </xs:documentation>
128
+ </xs:annotation>
129
+ <xs:complexType>
130
+ <xs:simpleContent>
131
+ <xs:extension base="xs:boolean" />
132
+ </xs:simpleContent>
133
+ </xs:complexType>
134
+ </xs:element>
135
+ <xs:element name="send-member-update-requests" type="xs:boolean">
136
+ <xs:annotation>
137
+ <xs:documentation>(FOR INTERNAL USE ONLY)
138
+ </xs:documentation>
139
+ </xs:annotation>
140
+ </xs:element>
141
+ <xs:element name="activities-visibility-default" type="internal:activities-visibility-default" />
142
+ <xs:element name="developer-tools-enabled" type="internal:developer-tools-enabled"
143
+ minOccurs="0" />
144
+ </xs:sequence>
145
+ </xs:complexType>
146
+
147
+ <xs:complexType name="encrypted-password" mixed="true">
148
+ <xs:annotation>
149
+ <xs:documentation>(FOR INTERNAL USE ONLY)
150
+ </xs:documentation>
151
+ </xs:annotation>
152
+ </xs:complexType>
153
+
154
+ <xs:complexType name="security-question-id">
155
+ <xs:annotation>
156
+ <xs:documentation>(FOR INTERNAL USE ONLY)
157
+ </xs:documentation>
158
+ </xs:annotation>
159
+
160
+ <xs:simpleContent>
161
+ <xs:extension base="xs:integer" />
162
+ </xs:simpleContent>
163
+ </xs:complexType>
164
+
165
+ <xs:complexType mixed="true" name="encrypted-security-answer">
166
+ <xs:annotation>
167
+ <xs:documentation>(FOR INTERNAL USE ONLY)
168
+ </xs:documentation>
169
+ </xs:annotation>
170
+ </xs:complexType>
171
+
172
+ <xs:complexType mixed="true" name="activities-visibility-default">
173
+ <xs:annotation>
174
+ <xs:documentation>(FOR INTERNAL USE ONLY)
175
+ </xs:documentation>
176
+ </xs:annotation>
177
+ <xs:simpleContent>
178
+ <xs:extension base="common:visibility" />
179
+ </xs:simpleContent>
180
+ </xs:complexType>
181
+
182
+ <xs:complexType name="developer-tools-enabled">
183
+ <xs:annotation>
184
+ <xs:documentation>(FOR INTERNAL USE ONLY)
185
+ </xs:documentation>
186
+ </xs:annotation>
187
+ <xs:simpleContent>
188
+ <xs:extension base="xs:boolean" />
189
+ </xs:simpleContent>
190
+ </xs:complexType>
191
+
192
+ <xs:complexType mixed="true" name="encrypted-verification-code">
193
+ <xs:annotation>
194
+ <xs:documentation>(FOR INTERNAL USE ONLY)
195
+ </xs:documentation>
196
+ </xs:annotation>
197
+ </xs:complexType>
198
+
199
+ </xs:schema>
@@ -0,0 +1,72 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:sch="http://purl.oclc.org/dsdl/schematron" elementFormDefault="qualified"
4
+ targetNamespace="http://www.orcid.org/ns/keyword" xmlns:keyword="http://www.orcid.org/ns/keyword"
5
+ xmlns:common="http://www.orcid.org/ns/common">
6
+ <xs:annotation>
7
+ <xs:documentation>
8
+ =============================================================================
9
+
10
+ ORCID (R) Open Source
11
+ http://orcid.org
12
+
13
+ Copyright (c) 2012-2014 ORCID,
14
+ Inc.
15
+ Licensed under an MIT-Style License (MIT)
16
+ http://orcid.org/open-source-license
17
+
18
+ This copyright and license
19
+ information (including a link to the full
20
+ license)
21
+ shall be included in
22
+ its entirety in all copies or substantial portion of
23
+ the software.
24
+
25
+ =============================================================================
26
+ The schema describes the message format used for ORCID API requests
27
+ and responses.
28
+ </xs:documentation>
29
+ <xs:appinfo>
30
+ <sch:title>Schematron validation</sch:title>
31
+ <sch:ns prefix="keyword" uri="http://www.orcid.org/ns/keyword" />
32
+ </xs:appinfo>
33
+ </xs:annotation>
34
+
35
+ <xs:import namespace="http://www.orcid.org/ns/common"
36
+ schemaLocation="../common_2.0_rc3/common-2.0_rc3.xsd" />
37
+
38
+ <xs:element name="keywords">
39
+ <xs:complexType>
40
+ <xs:annotation>
41
+ <xs:documentation>Keyworks container</xs:documentation>
42
+ </xs:annotation>
43
+ <xs:sequence>
44
+ <xs:element ref="common:last-modified-date" minOccurs="0" maxOccurs="1" />
45
+ <xs:element name="keyword" type="keyword:keyword" minOccurs="0"
46
+ maxOccurs="unbounded" />
47
+ </xs:sequence>
48
+ <xs:attribute name="path" type="common:element-path" use="optional" />
49
+ </xs:complexType>
50
+ </xs:element>
51
+
52
+ <xs:element name="keyword">
53
+ <xs:annotation>
54
+ <xs:documentation>Keyword</xs:documentation>
55
+ </xs:annotation>
56
+ <xs:complexType>
57
+ <xs:complexContent>
58
+ <xs:extension base="keyword:keyword" />
59
+ </xs:complexContent>
60
+ </xs:complexType>
61
+ </xs:element>
62
+
63
+ <xs:complexType name="keyword">
64
+ <xs:complexContent>
65
+ <xs:extension base="common:element-summary">
66
+ <xs:sequence>
67
+ <xs:element minOccurs="1" name="content" type="common:non-empty-string" />
68
+ </xs:sequence>
69
+ </xs:extension>
70
+ </xs:complexContent>
71
+ </xs:complexType>
72
+ </xs:schema>
@@ -0,0 +1,88 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:sch="http://purl.oclc.org/dsdl/schematron" elementFormDefault="qualified"
4
+ targetNamespace="http://www.orcid.org/ns/other-name" xmlns:other-name="http://www.orcid.org/ns/other-name"
5
+ xmlns:common="http://www.orcid.org/ns/common">
6
+ <xs:annotation>
7
+ <xs:documentation>
8
+ =============================================================================
9
+
10
+ ORCID (R) Open Source
11
+ http://orcid.org
12
+
13
+ Copyright (c) 2012-2014 ORCID,
14
+ Inc.
15
+ Licensed under an MIT-Style License (MIT)
16
+ http://orcid.org/open-source-license
17
+
18
+ This copyright and license
19
+ information (including a link to the full
20
+ license)
21
+ shall be included in
22
+ its entirety in all copies or substantial portion of
23
+ the software.
24
+
25
+ =============================================================================
26
+ The schema describes the message format used for ORCID API requests
27
+ and responses.
28
+ </xs:documentation>
29
+ <xs:appinfo>
30
+ <sch:title>Schematron validation</sch:title>
31
+ <sch:ns prefix="other-name" uri="http://www.orcid.org/ns/other-name" />
32
+ </xs:appinfo>
33
+ </xs:annotation>
34
+ <xs:import namespace="http://www.orcid.org/ns/common"
35
+ schemaLocation="../common_2.0_rc3/common-2.0_rc3.xsd" />
36
+
37
+ <xs:element name="other-names">
38
+ <xs:complexType>
39
+ <xs:annotation>
40
+ <xs:documentation>(Optional) Container that includes other name(s)
41
+ that the researcher or contributor may be known by. (see element
42
+ for more details.) The visibility attribute (private, limited or
43
+ public) can be set at record creation, and indicates who can see
44
+ this section of information.
45
+ </xs:documentation>
46
+ </xs:annotation>
47
+ <xs:sequence>
48
+ <xs:element ref="common:last-modified-date" minOccurs="0" maxOccurs="1" />
49
+ <xs:element name="other-name" type="other-name:other-name"
50
+ minOccurs="0" maxOccurs="unbounded" />
51
+ </xs:sequence>
52
+ <xs:attribute name="path" type="common:element-path" use="optional" />
53
+ </xs:complexType>
54
+ </xs:element>
55
+
56
+ <xs:element name="other-name">
57
+ <xs:annotation>
58
+ <xs:documentation>(Optional) Other name(s)
59
+ that the researcher or contributor may be known by.
60
+ </xs:documentation>
61
+ </xs:annotation>
62
+ <xs:complexType>
63
+ <xs:complexContent>
64
+ <xs:extension base="other-name:other-name"></xs:extension>
65
+ </xs:complexContent>
66
+ </xs:complexType>
67
+ </xs:element>
68
+
69
+ <xs:complexType name="other-name">
70
+ <xs:annotation>
71
+ <xs:documentation>The display name and URL for one of the researcher
72
+ or contributor's sites.
73
+ </xs:documentation>
74
+ </xs:annotation>
75
+ <xs:complexContent>
76
+ <xs:extension base="common:element-summary">
77
+ <xs:sequence>
78
+ <xs:element minOccurs="1" name="content" type="common:non-empty-string">
79
+ <xs:annotation>
80
+ <xs:documentation>A short display name describing the URL.
81
+ </xs:documentation>
82
+ </xs:annotation>
83
+ </xs:element>
84
+ </xs:sequence>
85
+ </xs:extension>
86
+ </xs:complexContent>
87
+ </xs:complexType>
88
+ </xs:schema>
@@ -0,0 +1,246 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:sch="http://purl.oclc.org/dsdl/schematron" elementFormDefault="qualified"
4
+ targetNamespace="http://www.orcid.org/ns/peer-review"
5
+ xmlns:common="http://www.orcid.org/ns/common"
6
+ xmlns:work="http://www.orcid.org/ns/work"
7
+
8
+ xmlns:peer-review="http://www.orcid.org/ns/peer-review">
9
+ <xs:annotation>
10
+ <xs:documentation>
11
+ =============================================================================
12
+
13
+ ORCID (R) Open Source
14
+ http://orcid.org
15
+
16
+ Copyright (c) 2012-2014 ORCID,
17
+ Inc.
18
+ Licensed under an MIT-Style License (MIT)
19
+ http://orcid.org/open-source-license
20
+
21
+ This copyright and license
22
+ information (including a link to the full
23
+ license)
24
+ shall be included in
25
+ its entirety in all copies or substantial portion of
26
+ the software.
27
+
28
+ =============================================================================
29
+ The schema describes the message format used for ORCID API requests
30
+ and responses.
31
+ The top level element is orcid-message.
32
+ </xs:documentation>
33
+ <xs:appinfo>
34
+ <sch:title>Schematron validation</sch:title>
35
+ <sch:ns prefix="orcid" uri="http://www.orcid.org/ns/orcid" />
36
+ </xs:appinfo>
37
+ </xs:annotation>
38
+
39
+ <xs:import namespace="http://www.orcid.org/ns/common"
40
+ schemaLocation="../common_2.0_rc3/common-2.0_rc3.xsd" />
41
+ <xs:import namespace="http://www.orcid.org/ns/work"
42
+ schemaLocation="work-2.0_rc3.xsd" />
43
+
44
+ <xs:element name="peer-review">
45
+ <xs:complexType>
46
+ <xs:complexContent>
47
+ <xs:extension base="common:element-summary">
48
+ <xs:sequence>
49
+ <xs:element name="reviewer-role" type="peer-review:role" minOccurs="1" maxOccurs="1">
50
+ <xs:annotation>
51
+ <xs:documentation>The role played by a person in their
52
+ contribution to a review.
53
+ </xs:documentation>
54
+ </xs:annotation>
55
+ </xs:element>
56
+ <xs:element name="review-identifiers" type="common:external-ids"
57
+ minOccurs="1">
58
+ <xs:annotation>
59
+ <xs:documentation>Unique identifier(s) of the review. <i>This identifier refers to the review itself, NOT to the item that was reviewed.</i> At least one identifier is required. In the case where there is no persistent unique identifier for the review, the source providing the data should generate a locally-sourced unique identifier for the review (e.g., type "organization-defined-type"). This field will be checked when adding new reviews to prevent double counting of review activity.
60
+ </xs:documentation>
61
+ </xs:annotation>
62
+ </xs:element>
63
+ <xs:element name="review-url" type="common:url" minOccurs="0">
64
+ <xs:annotation>
65
+ <xs:documentation>A link to a representation of the review on the web. <i>This URL refers to the review itself, NOT to the item that was reviewed.</i>
66
+ </xs:documentation>
67
+ </xs:annotation>
68
+ </xs:element>
69
+ <xs:element name="review-type" type="peer-review:type"
70
+ minOccurs="1" maxOccurs="1">
71
+ <xs:annotation>
72
+ <xs:documentation>The kind of review applied to the subject type
73
+ reviewed
74
+ </xs:documentation>
75
+ </xs:annotation>
76
+ </xs:element>
77
+ <xs:element name="review-completion-date" type="common:fuzzy-date"
78
+ minOccurs="1" maxOccurs="1">
79
+ <xs:annotation>
80
+ <xs:documentation>The date on which the review was completed. Allowable values: yyyy; yyyy-mm; yyyy-mm-dd, formatted using the ORCID fuzzy date format.
81
+ </xs:documentation>
82
+ </xs:annotation>
83
+ </xs:element>
84
+ <xs:element name="review-group-id" type="common:group-id" minOccurs="1" maxOccurs="1">
85
+ <xs:annotation>
86
+ <xs:documentation>Identifier for the group that this review should be a part of for aggregation purposes
87
+ </xs:documentation>
88
+ </xs:annotation>
89
+ </xs:element>
90
+ <xs:element name="subject-external-identifier" type="common:external-id"
91
+ minOccurs="0">
92
+ <xs:annotation>
93
+ <xs:documentation>The unique identifier of the subject being
94
+ reviewed.
95
+ </xs:documentation>
96
+ </xs:annotation>
97
+ </xs:element>
98
+ <xs:element name="subject-container-name" type="work:journal-title"
99
+ minOccurs="0" maxOccurs="1">
100
+ <xs:annotation>
101
+ <xs:documentation>The name of the journal, conference, grant review panel, or other applicable object of which the review subject was a part.
102
+ </xs:documentation>
103
+ </xs:annotation>
104
+ </xs:element>
105
+ <xs:element name="subject-type" type="work:work-type" minOccurs="0" maxOccurs="1">
106
+ <xs:annotation>
107
+ <xs:documentation>The type of object that the review subject is (for example, a journal article, grant, etc).
108
+ </xs:documentation>
109
+ </xs:annotation>
110
+ </xs:element>
111
+ <xs:element name="subject-name" type="work:work-title"
112
+ minOccurs="0" maxOccurs="1">
113
+ <xs:annotation>
114
+ <xs:documentation>The name/title of the subject object that was reviewed.
115
+ </xs:documentation>
116
+ </xs:annotation>
117
+ </xs:element>
118
+ <xs:element name="subject-url" type="common:url" minOccurs="0" maxOccurs="1">
119
+ <xs:annotation>
120
+ <xs:documentation>The URL of the subject object that was reviewed.
121
+ </xs:documentation>
122
+ </xs:annotation>
123
+ </xs:element>
124
+ <!-- orcid orgs doesn't match specification -->
125
+ <xs:element name="convening-organization" type="common:organization"
126
+ minOccurs="1" maxOccurs="1">
127
+ <xs:annotation>
128
+ <xs:documentation>Information about the organization convening the review (journal publisher, conference organizer, funding agency, etc). Whenever possible, this organization is identified by a unique identifier like the Ringgold ID or FundRef ID.
129
+ </xs:documentation>
130
+ </xs:annotation>
131
+ </xs:element>
132
+ </xs:sequence>
133
+ </xs:extension>
134
+ </xs:complexContent>
135
+ </xs:complexType>
136
+ </xs:element>
137
+
138
+ <xs:element name="summary">
139
+ <xs:complexType>
140
+ <xs:complexContent>
141
+ <xs:extension base="common:element-summary">
142
+ <xs:sequence>
143
+ <!-- orcid orgs doesn't match specification -->
144
+ <xs:element ref="common:external-ids"
145
+ minOccurs="0">
146
+ <xs:annotation>
147
+ <xs:documentation>The unique generated identifier of the review.
148
+ </xs:documentation>
149
+ </xs:annotation>
150
+ </xs:element>
151
+ <xs:element name="completion-date" type="common:fuzzy-date"
152
+ minOccurs="1" maxOccurs="1">
153
+ <xs:annotation>
154
+ <xs:documentation>The date on which the review was completed. Allowable values: yyyy; yyyy-mm; yyyy-mm-dd, formatted using the ORCID fuzzy date format.
155
+ </xs:documentation>
156
+ </xs:annotation>
157
+ </xs:element>
158
+ <xs:element name="review-group-id" type="common:group-id" minOccurs="1" maxOccurs="1">
159
+ <xs:annotation>
160
+ <xs:documentation>Identifier for the group that this review should be a part of for aggregation purposes
161
+ </xs:documentation>
162
+ </xs:annotation>
163
+ </xs:element>
164
+ <xs:element name="convening-organization" type="common:organization"
165
+ minOccurs="1" maxOccurs="1">
166
+ <xs:annotation>
167
+ <xs:documentation>Information about the organization convening the review (journal publisher, conference organizer, funding agency, etc). Whenever possible, this organization is identified by a unique identifier like the Ringgold ID or FundRef ID.
168
+ </xs:documentation>
169
+ </xs:annotation>
170
+ </xs:element>
171
+ </xs:sequence>
172
+ </xs:extension>
173
+ </xs:complexContent>
174
+ </xs:complexType>
175
+ </xs:element>
176
+
177
+ <xs:simpleType name="role">
178
+ <xs:annotation>
179
+ <xs:documentation>The role performed reviewer
180
+ </xs:documentation>
181
+ </xs:annotation>
182
+ <xs:restriction base="xs:string">
183
+ <xs:enumeration value="reviewer">
184
+ <xs:annotation>
185
+ <xs:documentation>
186
+ A person who formally assess or examines an
187
+ output with a view to
188
+ commenting and evaluating it.
189
+ </xs:documentation>
190
+ </xs:annotation>
191
+ </xs:enumeration>
192
+ <xs:enumeration value="editor">
193
+ <xs:annotation>
194
+ <xs:documentation>A person who coordinates reviews and/or is
195
+ responsible for decision making on the content of a publication.
196
+ </xs:documentation>
197
+ </xs:annotation>
198
+ </xs:enumeration>
199
+ <xs:enumeration value="member">
200
+ <xs:annotation>
201
+ <xs:documentation>A person participating in a process, committee or
202
+ activity.
203
+ </xs:documentation>
204
+ </xs:annotation>
205
+ </xs:enumeration>
206
+ <xs:enumeration value="chair">
207
+ <xs:annotation>
208
+ <xs:documentation>A person who coordinates reviews and/or is
209
+ responsible for decision making on the content of a conference.
210
+ </xs:documentation>
211
+ </xs:annotation>
212
+ </xs:enumeration>
213
+ <xs:enumeration value="organizer">
214
+ <xs:annotation>
215
+ <xs:documentation>A person who makes arrangements or preparations
216
+ for an event or activity.
217
+ </xs:documentation>
218
+ </xs:annotation>
219
+ </xs:enumeration>
220
+ </xs:restriction>
221
+ </xs:simpleType>
222
+
223
+ <xs:simpleType name="type">
224
+ <xs:annotation>
225
+ <xs:documentation>The role performed reviewer
226
+ </xs:documentation>
227
+ </xs:annotation>
228
+ <xs:restriction base="xs:string">
229
+ <xs:enumeration value="review">
230
+ <xs:annotation>
231
+ <xs:documentation>An expert assessment of a scholarly output that
232
+ contributes to a decision regarding on the object of the review.
233
+ </xs:documentation>
234
+ </xs:annotation>
235
+ </xs:enumeration>
236
+ <xs:enumeration value="evaluation">
237
+ <xs:annotation>
238
+ <xs:documentation>
239
+ A post­peer review, expert evaluation of a
240
+ scholarly output.
241
+ </xs:documentation>
242
+ </xs:annotation>
243
+ </xs:enumeration>
244
+ </xs:restriction>
245
+ </xs:simpleType>
246
+ </xs:schema>