DataCite XML to JSON Mapping
This mapping documents how to represent the DataCite Metadata Schema in JSON.
This table can be used when submitting metadata via the DataCite REST API. When creating or updating a DOI, all of the JSON attributes listed below are part of the "attributes" section of the payload. See Creating DOIs with the REST API for example payloads.
The mapping may also serve as a reference for constructing REST API queries for specific metadata fields.
XML-JSON Mapping
DataCite XML property # | DataCite XML property | JSON attribute | JSON value type |
---|---|---|---|
- | creators | creators | list of objects |
2 | creator | - | object |
2.1 | creatorName | creators.name | string |
- | xml:lang | creators.lang | string |
2.1.a | nameType | creators.nameType | string |
2.2 | givenName | creators.givenName | string |
2.3 | familyName | creators.familyName | string |
- | - | creators.nameIdentifiers | list of objects |
2.4 | nameIdentifier | creators.nameIdentifiers.nameIdentifier | string |
2.4.a | nameIdentifierScheme | creators.nameIdentifiers.nameIdentifierScheme | string |
2.4.b | schemeURI | creators.nameIdentifiers.schemeUri | string |
- | - | creators.affiliation | list of objects |
2.5 | affiliation | creators.affiliation.name | string |
2.5.a | affiliationIdentifier | creators.affiliation.affiliationIdentifier | string |
2.5.b | affiliationIdentifierScheme | creators.affiliation.affiliationIdentifierScheme | string |
2.5.c | schemeURI | creators.affiliation.schemeUri | string |
- | titles | titles | list of objects |
3 | title | titles.title | string |
- | xml:lang | titles.lang | string |
3.a | titleType | titles.titleType | string |
- | - | publisher | object |
4 | publisher | publisher.name | string |
4.a | publisherIdentifier | publisher.publisherIdentifier | string |
4.b | publisherIdentifierScheme | publisher.publisherIdentifierScheme | string |
4.c | schemeURI | publisher.schemeUri | string |
- | xml:lang | publisher.lang | string |
5 | publicationYear | publicationYear | int |
- | subjects | subjects | list of objects |
6 | subject | subjects.subject | string |
6.a | subjectScheme | subjects.subjectScheme | string |
6.b | schemeURI | subjects.schemeUri | string |
6.c | valueURI | subjects.valueUri | string |
6.d | classificationCode | subjects.classificationCode | string |
- | contributors | contributors | list of objects |
7 | contributor | - | object |
7.a | contributorType | contributors.contributorType | string |
7.1 | contributorName | contributors.name | string |
- | xml:lang | contributors.lang | string |
7.1.a | nameType | contributors.nameType | string |
7.2 | givenName | contributors.givenName | string |
7.3 | familyName | contributors.familyName | string |
- | - | contributors.nameIdentifiers | list of objects |
7.4 | nameIdentifier | contributors.nameIdentifiers.nameIdentifier | string |
7.4.a | nameIdentifierScheme | contributors.nameIdentifiers.nameIdentifierScheme | string |
7.4.b | schemeURI | contributors.nameIdentifiers.schemeUri | string |
- | - | contributors.affiliation | list of objects |
7.5 | affiliation | contributors.affiliation.name | string |
7.5.a | affiliationIdentifier | contributors.affiliation.affiliationIdentifier | string |
7.5.b | affiliationIdentifierScheme | contributors.affiliation.affiliationIdentifierScheme | string |
7.5.c | schemeURI | contributors.affiliation.schemeUri | string |
- | dates | dates | list of objects |
8 | date | dates.date | string |
8.a | dateType | dates.dateType | string |
8.b | dateInformation | dates.dateInformation | string |
9 | language | language | string |
- | - | types | object |
10 | resourceType | types.resourceType | string |
10.a | resourceTypeGeneral | types.resourceTypeGeneral | string |
- | alternateIdentifiers | alternateIdentifiers // identifiers | list of objects |
11 | alternateIdentifier | alternateIdentifiers.alternateIdentifier // identifiers.identifier | string |
11.a | alternateIdentifierType | alternateIdentifiers.alternateIdentifierType // identifiers.identifierType | string |
- | relatedIdentifiers | relatedIdentifiers | list of objects |
12 | relatedIdentifier | relatedIdentifiers.relatedIdentifier | string |
12.a | relatedIdentifierType | relatedIdentifiers.relatedIdentifierType | string |
12.b | relationType | relatedIdentifiers.relationType | string |
12.c | relatedMetadataScheme | relatedIdentifiers.relatedMetadataScheme | string |
12.d | schemeURI | relatedIdentifiers.schemeUri | string |
12.e | schemeType | relatedIdentifiers.schemeType | string |
12.f | resourceTypeGeneral | relatedIdentifiers.resourceTypeGeneral | string |
- | sizes | sizes | list of strings |
13 | size | - | string |
- | formats | formats | list of strings |
14 | format | - | string |
15 | version | version | string |
- | rightsList | rightsList | list of objects |
16 | rights | rightsList.rights | string |
- | xml:lang | rightsList.lang | string |
16.a | rightsURI | rightsList.rightsUri | string |
16.b | rightsIdentifier | rightsList.rightsIdentifier | string |
16.c | rightsIdentifierScheme | rightsList.rightsIdentifierScheme | string |
16.d | schemeURI | rightsList.schemeUri | string |
- | descriptions | descriptions | list of objects |
17 | description | descriptions.description | string |
- | xml:lang | descriptions.lang | string |
17.a | descriptionType | descriptions.descriptionType | string |
- | geoLocations | geoLocations | list of objects |
18 | geoLocation | - | object |
18.1 | geoLocationPoint | geoLocations.geoLocationPoint | object |
18.1.1 | pointLongitude | geoLocations.geoLocationPoint.pointLongitude | string |
18.1.2 | pointLatitude | geoLocations.geoLocationPoint.pointLatitude | string |
18.2 | geoLocationBox | geoLocations.geoLocationBox | object |
18.2.1 | westBoundLongitude | geoLocations.geoLocationBox.westBoundLongitude | string |
18.2.2 | eastBoundLongitude | geoLocations.geoLocationBox.eastBoundLongitude | string |
18.2.3 | southBoundLatitude | geoLocations.geoLocationBox.southBoundLatitude | string |
18.2.4 | northBoundLatitude | geoLocations.geoLocationBox.northBoundLatitude | string |
18.3 | geoLocationPlace | geoLocations.geoLocationPlace | string |
18.4 | geoLocationPolygon | - | - |
18.4.1 | polygonPoint | - | - |
18.4.1.1 | pointLongitude | - | - |
18.4.1.2 | pointLatitude | - | - |
18.4.2 | inPolygonPoint | - | - |
18.4.2.1 | pointLongitude | - | - |
18.4.2.2 | pointLatitude | - | - |
- | fundingReferences | fundingReferences | list of objects |
19 | fundingReference | - | object |
19.1 | funderName | fundingReferences.funderName | string |
19.2 | funderIdentifier | fundingReferences.funderIdentifier | string |
19.2.a | funderIdentifierType | fundingReferences.funderIdentifierType | string |
19.2.b | schemeURI | fundingReferences.schemeUri | string |
19.3 | awardNumber | fundingReferences.awardNumber | string |
19.3.a | awardURI | fundingReferences.awardUri | string |
19.4 | awardTitle | fundingReferences.awardTitle | string |
- | relatedItems | relatedItems | list of objects |
20 | relatedItem | - | object |
20.a | relatedItemType | relatedItems.relatedItemType | string |
20.b | relationType | relatedItems.relationType | string |
- | - | relatedItems.relatedItemIdentifier | object |
20.1 | relatedItemIdentifier | relatedItems.relatedItemIdentifier.relatedItemIdentifier | string |
20.1.a | relatedItemIdentifierType | relatedItems.relatedItemIdentifier.relatedItemIdentifierType | string |
20.1.b | relatedMetadataScheme | relatedItems.relatedItemIdentifier.relatedMetadataScheme | string |
20.1.c | schemeURI | relatedItems.relatedItemIdentifier.schemeURI | string |
20.1.d | schemeType | relatedItems.relatedItemIdentifier.schemeType | string |
- | creators | relatedItems.creators | list of objects |
20.2 | creator | - | object |
20.2.1 | creatorName | relatedItems.creators.name | string |
20.2.1.a | nameType | relatedItems.creators.nameType | string |
20.2.2 | givenName | relatedItems.creators.givenName | string |
20.2.3 | familyName | relatedItems.creators.familyName | string |
- | titles | relatedItems.titles | list of objects |
20.3 | title | relatedItems.titles.title | string |
- | xml:lang | relatedItems.titles.lang | string |
20.3.a | titleType | relatedItems.titles.titleType | string |
20.4 | publicationYear | relatedItems.publicationYear | string |
20.5 | volume | relatedItems.volume | string |
20.6 | issue | relatedItems.issue | string |
20.7 | number | relatedItems.number | string |
20.7.a | numberType | relatedItems.numberType | string |
20.8 | firstPage | relatedItems.firstPage | string |
20.9 | lastPage | relatedItems.lastPage | string |
20.10 | publisher | relatedItems.publisher | string |
20.11 | edition | relatedItems.edition | string |
- | contributors | relatedItems.contributors | list of objects |
20.12 | contributor | - | object |
20.12.a | contributorType | relatedItems.contributors.contributorType | string |
20.12.1 | contributorName | relatedItems.contributors.name | string |
20.12.1.a | nameType | relatedItems.contributors.nameType | string |
20.12.2 | givenName | relatedItems.contributors.givenName | string |
20.12.3 | familyName | relatedItems.contributors.familyName | string |
Mapping details
- The DataCite Metadata Schema imposes additional requirements beyond the JSON value type. For example, several properties require values from a controlled list. These requirements are validated when metadata is submitted via the REST API. Full details of allowed values are available in the DataCite Metadata Schema documentation.
- For an introduction to JSON syntax and structure, see the tutorial An Introduction to JSON (DigitalOcean).
- The DataCite XML property numbers correspond to those specified in the DataCite Metadata Schema documentation. Some XML properties do not have a corresponding number—for example, the
xml:lang
attribute and containing elements such ascreators
. - Additionally, some of the JSON attributes do not have a corresponding XML property. For example,
creators.nameIdentifiers
, which contains a list of nameIdentifier objects. - There are two ways to provide the
alternateIdentifiers
property. For more information, see What is the "identifiers" attribute in the REST API?. - The
geolocationPolygon
property is not supported in the REST API at this time.
Updated 10 months ago