diff --git a/.gitignore b/.gitignore
index f1849d659c5a6518e19ad13866afc101ebd9bcdf..8c282bfa18298870713a3a66ef118fdf85592370 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,4 +14,4 @@ data/public/*/
 data/staging/*/
 tmp/*/
 www/
-
+src/test/resources/staging/
diff --git a/resources/xsd/3.1/metadata.txt b/resources/xsd/3.1/metadata.txt
new file mode 100644
index 0000000000000000000000000000000000000000..adb2496636a97c0bf6be9a5957c26c8e7e88ec07
--- /dev/null
+++ b/resources/xsd/3.1/metadata.txt
@@ -0,0 +1 @@
+# 1 [identifier]
identifier				[A persistent identifier that identifies a resource.]
identifier:DOI				[identifierType = DOI]

# 2 [creators]
# creators				
# creator				[The main researchers involved working on the data, or the authors of the publication in priority order. May be a corporate/institutional or personal name.]
creatorName				
# optional nameIdentifier:ORCID
# optional affiliation

# 3 [titles]
# titles				
title				[A name or title by which a resource is known.]
title:AlternativeTitle				[titleType = AlternativeTitle]
title:Subtitle				[titleType = Subtitle]
title:TranslatedTitle				[titleType = TranslatedTitle]

# 4 [publisher]
publisher				[The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource. This property will be used to formulate the citation, so consider the prominence of the role.]

# 5 [publicationYear]
publicationYear				[Year when the data is made publicly available. If an embargo period has been in effect, use the date when the embargo period ends.]

# 6 [subjects]
# subjects				
subject				[Subject, keywords, classification codes, or key phrases describing the resource.]
subject:main				[subjectScheme = main]
subject:var				[subjectScheme = var]

# 7 [contributors]
# contributors				
# contributorName				[The institution or person responsible for collecting, creating, or otherwise contributing to the developement of the dataset.]
contributorName:ContactPerson				[contributorType = ContactPerson]
contributorName:DataCollector				[contributorType = DataCollector]
contributorName:DataCurator				[contributorType = DataCurator]
contributorName:DataManager				[contributorType = DataManager]
contributorName:Distributor				[contributorType = Distributor]
contributorName:Editor				[contributorType = Editor]
contributorName:Funder				[contributorType = Funder]
contributorName:HostingInstitution				[contributorType = HostingInstitution]
contributorName:Other				[contributorType = Other]
contributorName:Producer				[contributorType = Producer]
contributorName:ProjectLeader				[contributorType = ProjectLeader]
contributorName:ProjectManager				[contributorType = ProjectManager]
contributorName:ProjectMember				[contributorType = ProjectMember]
contributorName:RegistrationAgency				[contributorType = RegistrationAgency]
contributorName:RegistrationAuthority				[contributorType = RegistrationAuthority]
contributorName:RelatedPerson				[contributorType = RelatedPerson]
contributorName:ResearchGroup				[contributorType = ResearchGroup]
contributorName:RightsHolder				[contributorType = RightsHolder]
contributorName:Researcher				[contributorType = Researcher]
contributorName:Sponsor				[contributorType = Sponsor]
contributorName:Supervisor				[contributorType = Supervisor]
contributorName:WorkPackageLeader				[contributorType = WorkPackageLeader]
# optional nameIdentifier:ORCID
# optional affiliation

# 8 [dates]
# dates				
date				[Different dates relevant to the work.]
date:Accepted				[dateType = Accepted]
date:Available				[dateType = Available]
date:Collected				[dateType = Collected]
date:Copyrighted				[dateType = Copyrighted]
date:Created				[dateType = Created]
date:Issued				[dateType = Issued]
date:Submitted				[dateType = Submitted]
date:Updated				[dateType = Updated]
date:Valid				[dateType = Valid]

# 9 [language]
language				[Primary language of the resource. Allowed values are taken from  IETF BCP 47, ISO 639-1 language codes.]

# 10 [resourceType]
resourceType				[The type of a resource. You may enter an additional free text description.]
resourceType:Audiovisual				[resourceTypeGeneral = Audiovisual]
resourceType:Collection				[resourceTypeGeneral = Collection]
resourceType:Dataset				[resourceTypeGeneral = Dataset]
resourceType:Event				[resourceTypeGeneral = Event]
resourceType:Image				[resourceTypeGeneral = Image]
resourceType:InteractiveResource				[resourceTypeGeneral = InteractiveResource]
resourceType:Model				[resourceTypeGeneral = Model]
resourceType:PhysicalObject				[resourceTypeGeneral = PhysicalObject]
resourceType:Service				[resourceTypeGeneral = Service]
resourceType:Software				[resourceTypeGeneral = Software]
resourceType:Sound				[resourceTypeGeneral = Sound]
resourceType:Text				[resourceTypeGeneral = Text]
resourceType:Workflow				[resourceTypeGeneral = Workflow]
resourceType:Other				[resourceTypeGeneral = Other]

# 11 [alternateIdentifiers]
# alternateIdentifiers				
alternateIdentifier				[An identifier or identifiers other than the primary Identifier applied to the resource being registered. This may be any alphanumeric string which is unique within its domain of issue. May be used for local identifiers. AlternateIdentifier should be used for another identifier of the same instance (same location, same file).]
alternateIdentifier.alternateIdentifierType				

# 12 [relatedIdentifiers]
# relatedIdentifiers				
relatedIdentifier				[Identifiers of related resources. Use this property to indicate subsets of properties, as appropriate.]
# Only to list all possible values (but should be composed with relatedIdentifier:<relationType> { 
relatedIdentifier:ARK				[relatedIdentifierType = ARK]
relatedIdentifier:arXiv				[relatedIdentifierType = arXiv]
relatedIdentifier:bibcode				[relatedIdentifierType = bibcode]
relatedIdentifier:DOI				[relatedIdentifierType = DOI]
relatedIdentifier:EAN13				[relatedIdentifierType = EAN13]
relatedIdentifier:EISSN				[relatedIdentifierType = EISSN]
relatedIdentifier:Handle				[relatedIdentifierType = Handle]
relatedIdentifier:ISBN				[relatedIdentifierType = ISBN]
relatedIdentifier:ISSN				[relatedIdentifierType = ISSN]
relatedIdentifier:ISTC				[relatedIdentifierType = ISTC]
relatedIdentifier:LISSN				[relatedIdentifierType = LISSN]
relatedIdentifier:LSID				[relatedIdentifierType = LSID]
relatedIdentifier:PMID				[relatedIdentifierType = PMID]
relatedIdentifier:PURL				[relatedIdentifierType = PURL]
relatedIdentifier:UPC				[relatedIdentifierType = UPC]
relatedIdentifier:URL				[relatedIdentifierType = URL]
relatedIdentifier:URN				[relatedIdentifierType = URN]
# } 
relatedIdentifier:IsCitedBy				[relationType = IsCitedBy]
relatedIdentifier:Cites				[relationType = Cites]
relatedIdentifier:IsSupplementTo				[relationType = IsSupplementTo]
relatedIdentifier:IsSupplementedBy				[relationType = IsSupplementedBy]
relatedIdentifier:IsContinuedBy				[relationType = IsContinuedBy]
relatedIdentifier:Continues				[relationType = Continues]
relatedIdentifier:IsNewVersionOf				[relationType = IsNewVersionOf]
relatedIdentifier:IsPreviousVersionOf				[relationType = IsPreviousVersionOf]
relatedIdentifier:IsPartOf				[relationType = IsPartOf]
relatedIdentifier:HasPart				[relationType = HasPart]
relatedIdentifier:IsReferencedBy				[relationType = IsReferencedBy]
relatedIdentifier:References				[relationType = References]
relatedIdentifier:IsDocumentedBy				[relationType = IsDocumentedBy]
relatedIdentifier:Documents				[relationType = Documents]
relatedIdentifier:IsCompiledBy				[relationType = IsCompiledBy]
relatedIdentifier:Compiles				[relationType = Compiles]
relatedIdentifier:IsVariantFormOf				[relationType = IsVariantFormOf]
relatedIdentifier:IsOriginalFormOf				[relationType = IsOriginalFormOf]
relatedIdentifier:IsIdenticalTo				[relationType = IsIdenticalTo]
relatedIdentifier:HasMetadata				[relationType = HasMetadata]
relatedIdentifier:IsMetadataFor				[relationType = IsMetadataFor]
relatedIdentifier:Reviews				[relationType = Reviews]
relatedIdentifier:IsReviewedBy				[relationType = IsReviewedBy]
relatedIdentifier:IsDerivedFrom				[relationType = IsDerivedFrom]
relatedIdentifier:IsSourceOf				[relationType = IsSourceOf]

# 13 [sizes]
# sizes				
size				[Unstructures size information about the resource.]

# 14 [formats]
# formats				
format				[Technical format of the resource.]

# 15 [version]
version				[Version number of the resource. If the primary resource has changed the version number increases.]

# 16 [rightsList]
# rightsList				
rights				[Any rights information for this resource. Provide a rights management statement for the resource or reference a service providing such information. Include embargo information if applicable. Use the complete title of a license and include version information if applicable.]

# 17 [descriptions]
# descriptions				
description				[All additional information that does not fit in any of the other categories. May be used for technical information. It is a best practice to supply a description.]
description:Abstract				[descriptionType = Abstract]
description:Methods				[descriptionType = Methods]
description:SeriesInformation				[descriptionType = SeriesInformation]
description:TableOfContents				[descriptionType = TableOfContents]
description:Other				[descriptionType = Other]

# 18 [geoLocations]
# geoLocations				
# geoLocation				[Spatial region or named place where the data was gathered or about which the data is focused.]
geoLocationPoint				
geoLocationBox				
geoLocationPlace				

\ No newline at end of file
diff --git a/resources/xsd/4.0/include/datacite-contributorType-v4.xsd b/resources/xsd/4.0/include/datacite-contributorType-v4.xsd
deleted file mode 100644
index 4de481f7c963edbaea49a94b0628f55ffc1d9a5f..0000000000000000000000000000000000000000
--- a/resources/xsd/4.0/include/datacite-contributorType-v4.xsd
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
-   2013-05 v3.0: Addition of ID to simpleType element, added values "ResearchGroup" & "Other"
-   2014-08-20 v3.1: Addition of value "DataCurator"
-   2015-05-14 v4.0 dropped value "Funder", use new "funderReference" -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
-  <xs:simpleType name="contributorType" id="contributorType">
-    <xs:annotation>
-      <xs:documentation>The type of contributor of the resource.</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="ContactPerson"/>
-      <xs:enumeration value="DataCollector"/>
-      <xs:enumeration value="DataCurator"/>
-      <xs:enumeration value="DataManager"/>
-      <xs:enumeration value="Distributor"/>
-      <xs:enumeration value="Editor"/>
-      <xs:enumeration value="HostingInstitution"/>
-      <xs:enumeration value="Other"/>
-      <xs:enumeration value="Producer"/>
-      <xs:enumeration value="ProjectLeader"/>
-      <xs:enumeration value="ProjectManager"/>
-      <xs:enumeration value="ProjectMember"/>
-      <xs:enumeration value="RegistrationAgency"/>
-      <xs:enumeration value="RegistrationAuthority"/>
-      <xs:enumeration value="RelatedPerson"/>
-      <xs:enumeration value="ResearchGroup"/>
-      <xs:enumeration value="RightsHolder"/>
-      <xs:enumeration value="Researcher"/>
-      <xs:enumeration value="Sponsor"/>
-      <xs:enumeration value="Supervisor"/>
-      <xs:enumeration value="WorkPackageLeader"/>
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/resources/xsd/4.0/include/datacite-dateType-v4.xsd b/resources/xsd/4.0/include/datacite-dateType-v4.xsd
deleted file mode 100644
index dea58ba7770411af9487d6c7bf86c5f4bb5b7bba..0000000000000000000000000000000000000000
--- a/resources/xsd/4.0/include/datacite-dateType-v4.xsd
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
-     2013-05 v3.0: Addition of ID to simpleType element; addition of value "Collected"; deleted "StartDate" & "EndDate"-->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
-  <xs:simpleType name="dateType" id="dateType">
-    <xs:annotation>
-      <xs:documentation>The type of date. Use RKMS‐ISO8601 standard for depicting date ranges.To indicate the end of an embargo period, use Available. To indicate the start of an embargo period, use Submitted or Accepted, as appropriate.</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Accepted"/>
-      <xs:enumeration value="Available"/>
-      <xs:enumeration value="Collected"/>
-      <xs:enumeration value="Copyrighted"/>
-      <xs:enumeration value="Created"/>
-      <xs:enumeration value="Issued"/>
-      <xs:enumeration value="Submitted"/>
-      <xs:enumeration value="Updated"/>
-      <xs:enumeration value="Valid"/>
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/resources/xsd/4.0/include/datacite-descriptionType-v4.xsd b/resources/xsd/4.0/include/datacite-descriptionType-v4.xsd
deleted file mode 100644
index bdbe47f5dd3d55ab522b449117fab50626bc1992..0000000000000000000000000000000000000000
--- a/resources/xsd/4.0/include/datacite-descriptionType-v4.xsd
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
-     2013-05 v3.0: Addition of ID to simpleType element, addition of value "Methods"
-     2015-02-12 v4.0: Addition of value "TechnicalInfo"-->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
-  <xs:simpleType name="descriptionType" id="descriptionType">
-    <xs:annotation>
-      <xs:documentation>The type of the description.</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Abstract"/>
-      <xs:enumeration value="Methods"/>
-      <xs:enumeration value="SeriesInformation"/>
-      <xs:enumeration value="TableOfContents"/>
-      <xs:enumeration value="TechnicalInfo"/>
-      <xs:enumeration value="Other"/>
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/resources/xsd/4.0/include/datacite-funderIdentifierType-v4.xsd b/resources/xsd/4.0/include/datacite-funderIdentifierType-v4.xsd
deleted file mode 100644
index a23c9a7f913288086c2bdd9708416ff974edccef..0000000000000000000000000000000000000000
--- a/resources/xsd/4.0/include/datacite-funderIdentifierType-v4.xsd
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Version 1.0 - Created 2016-05-14 -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
-  <xs:simpleType name="funderIdentifierType" id="funderIdentifierType">
-    <xs:annotation>
-      <xs:documentation>The type of the funderIdentifier.</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="ISNI"/>
-      <xs:enumeration value="GRID"/>
-      <xs:enumeration value="Crossref Funder ID"/>
-      <xs:enumeration value="Other"/>
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/resources/xsd/4.0/include/datacite-relatedIdentifierType-v4.xsd b/resources/xsd/4.0/include/datacite-relatedIdentifierType-v4.xsd
deleted file mode 100644
index 8e842a530872c4ee5daa5c03387f6e57119d9432..0000000000000000000000000000000000000000
--- a/resources/xsd/4.0/include/datacite-relatedIdentifierType-v4.xsd
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
-  2013-05 v3.0: Addition of ID to simpleType element; addition of value "PMID"
-  2014-08-20 v3.1: Addition of values "arxiv" and "bibcode"
-  2015-02-12 v4.0 Addition of value "IGSN" -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
-  <xs:simpleType name="relatedIdentifierType" id="relatedIdentifierType">
-    <xs:annotation>
-      <xs:documentation>The type of the RelatedIdentifier.</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="ARK"/>
-      <xs:enumeration value="arXiv"/>
-      <xs:enumeration value="bibcode"/>
-      <xs:enumeration value="DOI"/>
-      <xs:enumeration value="EAN13"/>
-      <xs:enumeration value="EISSN"/>
-      <xs:enumeration value="Handle"/>
-      <xs:enumeration value="IGSN"/>
-      <xs:enumeration value="ISBN"/>
-      <xs:enumeration value="ISSN"/>
-      <xs:enumeration value="ISTC"/>
-      <xs:enumeration value="LISSN"/>
-      <xs:enumeration value="LSID"/>
-      <xs:enumeration value="PMID"/>
-      <xs:enumeration value="PURL"/>
-      <xs:enumeration value="UPC"/>
-      <xs:enumeration value="URL"/>
-      <xs:enumeration value="URN"/>
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/resources/xsd/4.0/include/datacite-relationType-v4.xsd b/resources/xsd/4.0/include/datacite-relationType-v4.xsd
deleted file mode 100644
index 4df4c6e9fb8f071cc2dd914253cb29d772b86b9c..0000000000000000000000000000000000000000
--- a/resources/xsd/4.0/include/datacite-relationType-v4.xsd
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  2011-01-13 v1.0 - FZ, TIB, Germany
-  2013-05 v3.0: Addition of ID to simpleType element, addition of values "IsIdenticalTo", "HasMetadata" & "IsMetadataFor"
-  2014-08-20 v3.1: Addition of values "Reviews" & "IsReviewedBy" and "IsDerivedFrom" & "IsSourceOf"-->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
-  <xs:simpleType name="relationType" id="relationType">
-    <xs:annotation>
-      <xs:documentation>Description of the relationship of the resource being registered (A) and the related resource (B).</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="IsCitedBy"/>
-      <xs:enumeration value="Cites"/>
-      <xs:enumeration value="IsSupplementTo"/>
-      <xs:enumeration value="IsSupplementedBy"/>
-      <xs:enumeration value="IsContinuedBy"/>
-      <xs:enumeration value="Continues"/>
-      <xs:enumeration value="IsNewVersionOf"/>
-      <xs:enumeration value="IsPreviousVersionOf"/>
-      <xs:enumeration value="IsPartOf"/>
-      <xs:enumeration value="HasPart"/>
-      <xs:enumeration value="IsReferencedBy"/>
-      <xs:enumeration value="References"/>
-      <xs:enumeration value="IsDocumentedBy"/>
-      <xs:enumeration value="Documents"/>
-      <xs:enumeration value="IsCompiledBy"/>
-      <xs:enumeration value="Compiles"/>
-      <xs:enumeration value="IsVariantFormOf"/>
-      <xs:enumeration value="IsOriginalFormOf"/>
-      <xs:enumeration value="IsIdenticalTo"/>
-      <xs:enumeration value="HasMetadata"/>
-      <xs:enumeration value="IsMetadataFor"/>
-      <xs:enumeration value="Reviews"/>
-      <xs:enumeration value="IsReviewedBy"/>
-      <xs:enumeration value="IsDerivedFrom"/>
-      <xs:enumeration value="IsSourceOf"/>
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/resources/xsd/4.0/include/datacite-resourceType-v4.xsd b/resources/xsd/4.0/include/datacite-resourceType-v4.xsd
deleted file mode 100644
index e51a551f3d1b8f5e1c5f248434790524156daf18..0000000000000000000000000000000000000000
--- a/resources/xsd/4.0/include/datacite-resourceType-v4.xsd
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
-     2013-05 v3.0: Addition of ID to simpleType element; added values "Audiovisual", "Workflow" & "Other"; deleted value "Film" -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
-  <xs:simpleType name="resourceType" id="resourceType">
-    <xs:annotation>
-      <xs:documentation>The general type of a resource.</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Audiovisual"/>
-      <xs:enumeration value="Collection"/>
-      <xs:enumeration value="Dataset"/>
-      <xs:enumeration value="Event"/>
-      <xs:enumeration value="Image"/>
-      <xs:enumeration value="InteractiveResource"/>
-      <xs:enumeration value="Model"/>
-      <xs:enumeration value="PhysicalObject"/>
-      <xs:enumeration value="Service"/>
-      <xs:enumeration value="Software"/>
-      <xs:enumeration value="Sound"/>
-      <xs:enumeration value="Text"/>
-      <xs:enumeration value="Workflow"/>
-      <xs:enumeration value="Other"/>
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/resources/xsd/4.0/include/datacite-titleType-v4.xsd b/resources/xsd/4.0/include/datacite-titleType-v4.xsd
deleted file mode 100644
index 007e1d0136f55c70584ef9cb16ad01ef20d9e15a..0000000000000000000000000000000000000000
--- a/resources/xsd/4.0/include/datacite-titleType-v4.xsd
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
-  2013-05 v3.0: Addition of ID to simpleType element
-  2015-02-12 v4.0 Added value "Other" -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
-  <xs:simpleType name="titleType" id="titleType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="AlternativeTitle"/>
-      <xs:enumeration value="Subtitle"/>
-      <xs:enumeration value="TranslatedTitle"/>
-      <xs:enumeration value="Other"/>
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/resources/xsd/4.0/metadata.xsd b/resources/xsd/4.0/metadata.xsd
deleted file mode 100644
index cafc0d4c2adfcd03cbf4c65893084c7278eec5fc..0000000000000000000000000000000000000000
--- a/resources/xsd/4.0/metadata.xsd
+++ /dev/null
@@ -1,470 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Revision history
-  2010-08-26 Complete revision according to new common specification by the metadata work group after review. AJH, DTIC
-  2010-11-17 Revised to current state of kernel review, FZ, TIB
-  2011-01-17 Complete revsion after community review. FZ, TIB
-  2011-03-17 Release of v2.1: added a namespace; mandatory properties got minLength; changes in the definitions of relationTypes IsDocumentedBy/Documents and isCompiledBy/Compiles; changes type of property "Date" from xs:date to xs:string. FZ, TIB
-  2011-06-27 v2.2: namespace: kernel-2.2, additions to controlled lists "resourceType", "contributorType", "relatedIdentifierType", and "descriptionType". Removal of intermediate include-files.
-  2013-07-24 v3.0: namespace: kernel-3.0; delete LastMetadataUpdate & MetadateVersionNumber; additions to controlled lists "contributorType", "dateType", "descriptionType", "relationType", "relatedIdentifierType" & "resourceType"; deletion of "StartDate" & "EndDate" from list "dateType" and "Film" from "resourceType";  allow arbitrary order of elements; allow optional wrapper elements to be empty; include xml:lang attribute for title, subject & description; include attribute schemeURI for nameIdentifier of creator, contributor & subject; added new attributes "relatedMetadataScheme", "schemeURI" & "schemeType" to relatedIdentifier; included new property "geoLocation"
-  2014-08-20 v3.1: additions to controlled lists "relationType", contributorType" and "relatedIdentifierType"; introduction of new child element "affiliation" to "creator" and "contributor"
-  2016-09-19 v4.0: namespace: kernel-4.0; makes "resourceType" required field, added optional "givenName" and "familyName" to creator and contributor, added "funderReference", added "valueURI" for subject, added "geoLocationPolygon" -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified" xml:lang="EN">
-  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
-  <xs:include schemaLocation="include/datacite-titleType-v4.xsd"/>
-  <xs:include schemaLocation="include/datacite-contributorType-v4.xsd"/>
-  <xs:include schemaLocation="include/datacite-dateType-v4.xsd"/>
-  <xs:include schemaLocation="include/datacite-resourceType-v4.xsd"/>
-  <xs:include schemaLocation="include/datacite-relationType-v4.xsd"/>
-  <xs:include schemaLocation="include/datacite-relatedIdentifierType-v4.xsd"/>
-  <xs:include schemaLocation="include/datacite-funderIdentifierType-v4.xsd"/>
-  <xs:include schemaLocation="include/datacite-descriptionType-v4.xsd"/>
-  <xs:element name="resource">
-    <xs:annotation>
-      <xs:documentation>
-        Root element of a single record. This wrapper element is for XML implementation only and is not defined in the DataCite DOI standard.
-        Note: This is the case for all wrapper elements within this schema.</xs:documentation>
-      <xs:documentation>No content in this wrapper element.</xs:documentation>
-    </xs:annotation>
-    <xs:complexType>
-      <xs:all>
-        <!--REQUIRED FIELDS-->
-        <xs:element name="identifier">
-          <xs:annotation>
-            <xs:documentation>A persistent identifier that identifies a resource.</xs:documentation>
-            <xs:documentation>Currently, only DOI is allowed.</xs:documentation>
-          </xs:annotation>
-          <xs:complexType>
-            <xs:simpleContent>
-              <xs:extension base="doiType">
-                <xs:attribute name="identifierType" use="required" fixed="DOI"/>
-              </xs:extension>
-            </xs:simpleContent>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="creators">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="creator" maxOccurs="unbounded">
-                <xs:annotation>
-                  <xs:documentation>The main researchers involved working on the data, or the authors of the publication in priority order. May be a corporate/institutional or personal name.</xs:documentation>
-                  <xs:documentation>Format: Family, Given.</xs:documentation>
-                  <xs:documentation>Personal names can be further specified using givenName and familyName.</xs:documentation>
-                </xs:annotation>
-                <xs:complexType>
-                  <xs:sequence>
-                    <xs:element name="creatorName">
-                      <xs:simpleType>
-                        <xs:restriction base="nonemptycontentStringType"/>
-                      </xs:simpleType>
-                    </xs:element>
-                    <xs:element name="givenName" minOccurs="0"/>
-                    <xs:element name="familyName" minOccurs="0"/>
-                    <xs:element name="nameIdentifier" minOccurs="0" maxOccurs="unbounded">
-                      <xs:complexType>
-                        <xs:simpleContent>
-                          <xs:extension base="nonemptycontentStringType">
-                            <xs:attribute name="nameIdentifierScheme" use="required"/>
-                            <xs:attribute name="schemeURI" type="xs:anyURI" use="optional"/>
-                          </xs:extension>
-                        </xs:simpleContent>
-                      </xs:complexType>
-                    </xs:element>
-                    <xs:element name="affiliation" minOccurs="0" maxOccurs="unbounded"/>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="titles">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="title" maxOccurs="unbounded">
-                <xs:annotation>
-                  <xs:documentation>A name or title by which a resource is known.</xs:documentation>
-                </xs:annotation>
-                <xs:complexType>
-                  <xs:simpleContent>
-                    <xs:extension base="nonemptycontentStringType">
-                      <xs:attribute name="titleType" type="titleType" use="optional"/>
-                      <xs:attribute ref="xml:lang"/>
-                    </xs:extension>
-                  </xs:simpleContent>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="publisher">
-          <xs:annotation>
-            <xs:documentation>The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource. This property will be used to formulate the citation, so consider the prominence of the role.</xs:documentation>
-            <xs:documentation>In the case of datasets, "publish" is understood to mean making the data available to the community of researchers.</xs:documentation>
-          </xs:annotation>
-          <xs:simpleType>
-            <xs:restriction base="nonemptycontentStringType"/>
-          </xs:simpleType>
-        </xs:element>
-        <xs:element name="publicationYear">
-          <xs:annotation>
-            <xs:documentation>Year when the data is made publicly available. If an embargo period has been in effect, use the date when the embargo period ends.</xs:documentation>
-            <xs:documentation>In the case of datasets, "publish" is understood to mean making the data available on a specific date to the community of researchers. If there is no standard publication year value, use the date that would be preferred from a citation perspective.</xs:documentation>
-            <xs:documentation>YYYY</xs:documentation>
-          </xs:annotation>
-          <xs:simpleType>
-            <xs:restriction base="yearType"/>
-          </xs:simpleType>
-        </xs:element>
-        <xs:element name="resourceType">
-          <xs:annotation>
-            <xs:documentation>The type of a resource. You may enter an additional free text description.</xs:documentation>
-            <xs:documentation>The format is open, but the preferred format is a single term of some detail so that a pair can be formed with the sub-property.</xs:documentation>
-          </xs:annotation>
-          <xs:complexType>
-            <xs:simpleContent>
-              <xs:extension base="xs:string">
-                <xs:attribute name="resourceTypeGeneral" type="resourceType" use="required"/>
-              </xs:extension>
-            </xs:simpleContent>
-          </xs:complexType>
-        </xs:element>
-        <!--OPTIONAL FIELDS-->
-        <xs:element name="subjects" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="subject" minOccurs="0" maxOccurs="unbounded">
-              <xs:annotation>
-                <xs:documentation>Subject, keywords, classification codes, or key phrases describing the resource.</xs:documentation>
-              </xs:annotation>
-              <xs:complexType>
-                <xs:simpleContent>
-                  <xs:extension base="xs:string">
-                    <xs:attribute name="subjectScheme" use="optional"/>
-                    <xs:attribute name="schemeURI" type="xs:anyURI" use="optional"/>
-                    <xs:attribute name="valueURI" type="xs:anyURI" use="optional"/>
-                    <xs:attribute ref="xml:lang"/>
-                  </xs:extension>
-                </xs:simpleContent>
-              </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="contributors" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="contributor" minOccurs="0" maxOccurs="unbounded">
-              <xs:annotation>
-                <xs:documentation>The institution or person responsible for collecting, creating, or otherwise contributing to the developement of the dataset.</xs:documentation>
-                <xs:documentation>The personal name format should be: Family, Given.</xs:documentation>
-              </xs:annotation>
-              <xs:complexType>
-                <xs:sequence>
-                  <xs:element name="contributorName">
-                    <xs:simpleType>
-                      <xs:restriction base="xs:string">
-                        <xs:minLength value="1"/>
-                      </xs:restriction>
-                    </xs:simpleType>
-                  </xs:element>
-                  <xs:element name="givenName" minOccurs="0"/>
-                  <xs:element name="familyName" minOccurs="0"/>
-                  <xs:element name="nameIdentifier" minOccurs="0" maxOccurs="unbounded">
-                    <xs:complexType>
-                      <xs:simpleContent>
-                        <xs:extension base="xs:string">
-                          <xs:attribute name="nameIdentifierScheme" use="required"/>
-                          <xs:attribute name="schemeURI" type="xs:anyURI" use="optional"/>
-                        </xs:extension>
-                      </xs:simpleContent>
-                    </xs:complexType>
-                  </xs:element>
-                  <xs:element name="affiliation" minOccurs="0" maxOccurs="unbounded"/>
-                </xs:sequence>
-                <xs:attribute name="contributorType" type="contributorType" use="required"/>
-              </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="dates" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="date" minOccurs="0" maxOccurs="unbounded">
-                <xs:annotation>
-                  <xs:documentation>Different dates relevant to the work.</xs:documentation>
-                  <xs:documentation>YYYY,YYYY-MM-DD, YYYY-MM-DDThh:mm:ssTZD or any other format or level of granularity described in W3CDTF. Use RKMS-ISO8601 standard for depicting date ranges.</xs:documentation>
-                </xs:annotation>
-                <xs:complexType>
-                  <xs:simpleContent>
-                    <xs:extension base="xs:string">
-                      <xs:attribute name="dateType" type="dateType" use="required"/>
-                    </xs:extension>
-                  </xs:simpleContent>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="language" type="xs:language" minOccurs="0">
-          <xs:annotation>
-            <xs:documentation>Primary language of the resource. Allowed values are taken from  IETF BCP 47, ISO 639-1 language codes.</xs:documentation>
-          </xs:annotation>
-        </xs:element>
-        <xs:element name="alternateIdentifiers" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="alternateIdentifier" minOccurs="0" maxOccurs="unbounded">
-                <xs:annotation>
-                  <xs:documentation>An identifier or identifiers other than the primary Identifier applied to the resource being registered. This may be any alphanumeric string which is unique within its domain of issue. May be used for local identifiers. AlternateIdentifier should be used for another identifier of the same instance (same location, same file).</xs:documentation>
-                </xs:annotation>
-                <xs:complexType>
-                  <xs:simpleContent>
-                    <xs:extension base="xs:string">
-                      <xs:attribute name="alternateIdentifierType" use="required"/>
-                    </xs:extension>
-                  </xs:simpleContent>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="relatedIdentifiers" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="relatedIdentifier" minOccurs="0" maxOccurs="unbounded">
-                <xs:annotation>
-                  <xs:documentation>Identifiers of related resources. Use this property to indicate subsets of properties, as appropriate.</xs:documentation>
-                </xs:annotation>
-                <xs:complexType>
-                  <xs:simpleContent>
-                    <xs:extension base="xs:string">
-                      <xs:attribute name="relatedIdentifierType" type="relatedIdentifierType" use="required"/>
-                      <xs:attribute name="relationType" type="relationType" use="required"/>
-                      <xs:attribute name="relatedMetadataScheme" use="optional"/>
-                      <xs:attribute name="schemeURI" type="xs:anyURI" use="optional"/>
-                      <xs:attribute name="schemeType" use="optional"/>
-                    </xs:extension>
-                  </xs:simpleContent>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="sizes" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="size" type="xs:string" minOccurs="0" maxOccurs="unbounded">
-                <xs:annotation>
-                  <xs:documentation>Unstructures size information about the resource.</xs:documentation>
-                </xs:annotation>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="formats" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="format" type="xs:string" minOccurs="0" maxOccurs="unbounded">
-                <xs:annotation>
-                  <xs:documentation>Technical format of the resource.</xs:documentation>
-                  <xs:documentation>Use file extension or MIME type where possible.</xs:documentation>
-                </xs:annotation>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="version" type="xs:string" minOccurs="0">
-          <xs:annotation>
-            <xs:documentation>Version number of the resource. If the primary resource has changed the version number increases.</xs:documentation>
-            <xs:documentation>Register a new identifier for a major version change. Individual stewards need to determine which are major vs. minor versions. May be used in conjunction with properties 11 and 12 (AlternateIdentifier and RelatedIdentifier) to indicate various information updates. May be used in conjunction with property 17 (Description) to indicate the nature and file/record range of version.</xs:documentation>
-          </xs:annotation>
-        </xs:element>
-        <xs:element name="rightsList" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="rights" minOccurs="0" maxOccurs="unbounded">
-                <xs:annotation>
-                  <xs:documentation>Any rights information for this resource. Provide a rights management statement for the resource or reference a service providing such information. Include embargo information if applicable.
-Use the complete title of a license and include version information if applicable.</xs:documentation>
-                </xs:annotation>
-                <xs:complexType>
-                  <xs:simpleContent>
-                    <xs:extension base="xs:string">
-                      <xs:attribute name="rightsURI" type="xs:anyURI" use="optional"/>
-                    </xs:extension>
-                  </xs:simpleContent>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="descriptions" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="description" minOccurs="0" maxOccurs="unbounded">
-                <xs:annotation>
-                  <xs:documentation>All additional information that does not fit in any of the other categories. May be used for technical information. It is a best practice to supply a description.</xs:documentation>
-                </xs:annotation>
-                <xs:complexType mixed="true">
-                  <xs:choice>
-                    <xs:element name="br" minOccurs="0" maxOccurs="unbounded">
-                      <xs:simpleType>
-                        <xs:restriction base="xs:string">
-                          <xs:length value="0"/>
-                        </xs:restriction>
-                      </xs:simpleType>
-                    </xs:element>
-                  </xs:choice>
-                  <xs:attribute name="descriptionType" type="descriptionType" use="required"/>
-                  <xs:attribute ref="xml:lang"/>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="geoLocations" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="geoLocation" minOccurs="0" maxOccurs="unbounded">
-                <xs:complexType>
-                  <xs:all>
-                    <xs:element name="geoLocationPlace" minOccurs="0">
-                      <xs:annotation>
-                        <xs:documentation>Spatial region or named place where the data was gathered or about which the data is focused.</xs:documentation>
-                      </xs:annotation>
-                    </xs:element>
-                    <xs:element name="geoLocationPoint" type="point" minOccurs="0">
-                      <xs:annotation>
-                        <xs:documentation>A point contains a single latitude-longitude pair, separated by whitespace.</xs:documentation>
-                      </xs:annotation>
-                    </xs:element>
-                    <xs:element name="geoLocationBox" type="box" minOccurs="0">
-                      <xs:annotation>
-                        <xs:documentation>A box contains two white space separated latitude-longitude pairs, with each pair separated by whitespace. The first pair is the lower corner, the second is the upper corner.</xs:documentation>
-                      </xs:annotation>
-                    </xs:element>
-                    <xs:element name="geoLocationPolygon" minOccurs="0">
-                      <xs:annotation>
-                        <xs:documentation>A drawn polygon area, defined by a set of points and lines connecting the points in a closed chain.</xs:documentation>
-                      </xs:annotation>
-                      <xs:complexType>
-                        <xs:sequence>
-                          <xs:element name="polygonPoint" type="point" minOccurs="4" maxOccurs="unbounded"/>
-                        </xs:sequence>
-                      </xs:complexType>
-                    </xs:element>
-                  </xs:all>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="fundingReferences" minOccurs="0">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="fundingReference" minOccurs="0" maxOccurs="unbounded">
-                <xs:annotation>
-                  <xs:documentation>Information about financial support (funding) for the resource being registered.</xs:documentation>
-                </xs:annotation>
-                <xs:complexType>
-                  <xs:all>
-                    <xs:element name="funderName" minOccurs="1" maxOccurs="1">
-                      <xs:annotation>
-                        <xs:documentation>Name of the funding provider.</xs:documentation>
-                      </xs:annotation>
-                      <xs:simpleType>
-                        <xs:restriction base="nonemptycontentStringType"/>
-                      </xs:simpleType>
-                    </xs:element>
-                    <xs:element name="funderIdentifier" minOccurs="0">
-                      <xs:annotation>
-                        <xs:documentation>Uniquely identifies a funding entity, according to various types.</xs:documentation>
-                      </xs:annotation>
-                      <xs:complexType>
-                        <xs:simpleContent>
-                          <xs:extension base="xs:string">
-                            <xs:attribute name="funderIdentifierType" type="funderIdentifierType" use="required"/>
-                          </xs:extension>
-                        </xs:simpleContent>
-                      </xs:complexType>
-                    </xs:element>
-                    <xs:element name="awardNumber" minOccurs="0">
-                      <xs:annotation>
-                        <xs:documentation>The code assigned by the funder to a sponsored award (grant).</xs:documentation>
-                      </xs:annotation>
-                      <xs:complexType>
-                        <xs:simpleContent>
-                          <xs:extension base="xs:string">
-                            <xs:attribute name="awardURI" type="xs:anyURI" use="optional"/>
-                          </xs:extension>
-                        </xs:simpleContent>
-                      </xs:complexType>
-                    </xs:element>
-                    <xs:element name="awardTitle" minOccurs="0">
-                      <xs:annotation>
-                        <xs:documentation>The human readable title of the award (grant).</xs:documentation>
-                      </xs:annotation>
-                      <xs:simpleType>
-                        <xs:restriction base="nonemptycontentStringType"/>
-                      </xs:simpleType>
-                    </xs:element>
-                  </xs:all>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-      </xs:all>
-    </xs:complexType>
-  </xs:element>
-  <!-- TYPE DECLARATIONS -->
-  <!-- defines the value for a DOI"  -->
-  <xs:simpleType name="doiType">
-    <xs:restriction base="xs:token">
-      <xs:pattern value="10\..+/.+"/>
-    </xs:restriction>
-  </xs:simpleType>
-  <!-- defines value for mandatory fields -->
-  <xs:simpleType name="nonemptycontentStringType">
-    <xs:restriction base="xs:string">
-      <xs:minLength value="1"/>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:attributeGroup name="nameId">
-    <xs:attribute name="nameIdentifier" type="xs:string" use="optional"/>
-    <xs:attribute name="nameIdentifierScheme" type="xs:string" use="optional"/>
-  </xs:attributeGroup>
-  <!-- defines the value for a year -->
-  <xs:simpleType name="yearType">
-    <xs:restriction base="xs:token">
-      <xs:pattern value="[\d]{4}"/>
-    </xs:restriction>
-  </xs:simpleType>
-  <!-- definitions for geoLocation -->
-  <xs:complexType name="point">
-    <xs:all>
-      <xs:element name="pointLongitude" type="longitudeType" minOccurs="1"/>
-      <xs:element name="pointLatitude" type="latitudeType" minOccurs="1"/>
-    </xs:all>
-  </xs:complexType>
-  <xs:complexType name="box">
-    <xs:all>
-      <xs:element name="westBoundLongitude" type="longitudeType" minOccurs="1"/>
-      <xs:element name="eastBoundLongitude" type="longitudeType" minOccurs="1"/>
-      <xs:element name="southBoundLatitude" type="latitudeType" minOccurs="1"/>
-      <xs:element name="northBoundLatitude" type="latitudeType" minOccurs="1"/>
-    </xs:all>
-  </xs:complexType>
-  <xs:simpleType name="longitudeType">
-    <xs:restriction base="xs:float">
-      <xs:minInclusive value="-180"/>
-      <xs:maxInclusive value="180"/>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="latitudeType">
-    <xs:restriction base="xs:float">
-      <xs:minInclusive value="-90"/>
-      <xs:maxInclusive value="90"/>
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/resources/xsd/4.1/metadata.txt b/resources/xsd/4.1/metadata.txt
new file mode 100644
index 0000000000000000000000000000000000000000..da26fbbcbd00c9e3be43045edb9f81f75d28986c
--- /dev/null
+++ b/resources/xsd/4.1/metadata.txt
@@ -0,0 +1 @@
+# 1 [identifier]
identifier				[A persistent identifier that identifies a resource.]
identifier:DOI				[identifierType = DOI]

# 2 [creators]
# creators				
# creatorName				[The main researchers involved working on the data, or the authors of the publication in priority order. May be a corporate/institutional or personal name.]
creatorName				
creatorName:Organizational				[nameType = Organizational]
creatorName:Personal				[nameType = Personal]
# optional givenName
# optional familyName
# optional nameIdentifier:ORCID
# optional affiliation

# 3 [titles]
# titles				
title				[A name or title by which a resource is known.]
title:AlternativeTitle				[titleType = AlternativeTitle]
title:Subtitle				[titleType = Subtitle]
title:TranslatedTitle				[titleType = TranslatedTitle]
title:Other				[titleType = Other]

# 4 [publisher]
publisher				[The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource. This property will be used to formulate the citation, so consider the prominence of the role.]

# 5 [publicationYear]
publicationYear				[Year when the data is made publicly available. If an embargo period has been in effect, use the date when the embargo period ends.]

# 6 [resourceType]
resourceType				[The type of a resource. You may enter an additional free text description.]
resourceType:Audiovisual				[resourceTypeGeneral = Audiovisual]
resourceType:Collection				[resourceTypeGeneral = Collection]
resourceType:DataPaper				[resourceTypeGeneral = DataPaper]
resourceType:Dataset				[resourceTypeGeneral = Dataset]
resourceType:Event				[resourceTypeGeneral = Event]
resourceType:Image				[resourceTypeGeneral = Image]
resourceType:InteractiveResource				[resourceTypeGeneral = InteractiveResource]
resourceType:Model				[resourceTypeGeneral = Model]
resourceType:PhysicalObject				[resourceTypeGeneral = PhysicalObject]
resourceType:Service				[resourceTypeGeneral = Service]
resourceType:Software				[resourceTypeGeneral = Software]
resourceType:Sound				[resourceTypeGeneral = Sound]
resourceType:Text				[resourceTypeGeneral = Text]
resourceType:Workflow				[resourceTypeGeneral = Workflow]
resourceType:Other				[resourceTypeGeneral = Other]

# 7 [subjects]
# subjects				
subject				[Subject, keywords, classification codes, or key phrases describing the resource.]
subject:main				[subjectScheme = main]
subject:var				[subjectScheme = var]

# 8 [contributors]
# contributors				
# contributorName				[The institution or person responsible for collecting, creating, or otherwise contributing to the developement of the dataset.]
contributorName:ContactPerson				[contributorType = ContactPerson]
contributorName:DataCollector				[contributorType = DataCollector]
contributorName:DataCurator				[contributorType = DataCurator]
contributorName:DataManager				[contributorType = DataManager]
contributorName:Distributor				[contributorType = Distributor]
contributorName:Editor				[contributorType = Editor]
contributorName:HostingInstitution				[contributorType = HostingInstitution]
contributorName:Other				[contributorType = Other]
contributorName:Producer				[contributorType = Producer]
contributorName:ProjectLeader				[contributorType = ProjectLeader]
contributorName:ProjectManager				[contributorType = ProjectManager]
contributorName:ProjectMember				[contributorType = ProjectMember]
contributorName:RegistrationAgency				[contributorType = RegistrationAgency]
contributorName:RegistrationAuthority				[contributorType = RegistrationAuthority]
contributorName:RelatedPerson				[contributorType = RelatedPerson]
contributorName:ResearchGroup				[contributorType = ResearchGroup]
contributorName:RightsHolder				[contributorType = RightsHolder]
contributorName:Researcher				[contributorType = Researcher]
contributorName:Sponsor				[contributorType = Sponsor]
contributorName:Supervisor				[contributorType = Supervisor]
contributorName:WorkPackageLeader				[contributorType = WorkPackageLeader]
# optional givenName
# optional familyName
# optional nameIdentifier:ORCID
# optional affiliation

# 9 [dates]
# dates				
date				[Different dates relevant to the work.]
date:Accepted				[dateType = Accepted]
date:Available				[dateType = Available]
date:Collected				[dateType = Collected]
date:Copyrighted				[dateType = Copyrighted]
date:Created				[dateType = Created]
date:Issued				[dateType = Issued]
date:Other				[dateType = Other]
date:Submitted				[dateType = Submitted]
date:Updated				[dateType = Updated]
date:Valid				[dateType = Valid]
date.dateInformation				

# 10 [language]
language				[Primary language of the resource. Allowed values are taken from  IETF BCP 47, ISO 639-1 language codes.]

# 11 [alternateIdentifiers]
# alternateIdentifiers				
alternateIdentifier				[An identifier or identifiers other than the primary Identifier applied to the resource being registered. This may be any alphanumeric string which is unique within its domain of issue. May be used for local identifiers. AlternateIdentifier should be used for another identifier of the same instance (same location, same file).]
alternateIdentifier.alternateIdentifierType				

# 12 [relatedIdentifiers]
# relatedIdentifiers				
relatedIdentifier				[Identifiers of related resources. Use this property to indicate subsets of properties, as appropriate.]
relatedIdentifier:Audiovisual				[resourceTypeGeneral = Audiovisual]
relatedIdentifier:Collection				[resourceTypeGeneral = Collection]
relatedIdentifier:DataPaper				[resourceTypeGeneral = DataPaper]
relatedIdentifier:Dataset				[resourceTypeGeneral = Dataset]
relatedIdentifier:Event				[resourceTypeGeneral = Event]
relatedIdentifier:Image				[resourceTypeGeneral = Image]
relatedIdentifier:InteractiveResource				[resourceTypeGeneral = InteractiveResource]
relatedIdentifier:Model				[resourceTypeGeneral = Model]
relatedIdentifier:PhysicalObject				[resourceTypeGeneral = PhysicalObject]
relatedIdentifier:Service				[resourceTypeGeneral = Service]
relatedIdentifier:Software				[resourceTypeGeneral = Software]
relatedIdentifier:Sound				[resourceTypeGeneral = Sound]
relatedIdentifier:Text				[resourceTypeGeneral = Text]
relatedIdentifier:Workflow				[resourceTypeGeneral = Workflow]
relatedIdentifier:Other				[resourceTypeGeneral = Other]
# Only to list all possible values (but should be composed with relatedIdentifier:<relationType> { 
relatedIdentifier:ARK				[relatedIdentifierType = ARK]
relatedIdentifier:arXiv				[relatedIdentifierType = arXiv]
relatedIdentifier:bibcode				[relatedIdentifierType = bibcode]
relatedIdentifier:DOI				[relatedIdentifierType = DOI]
relatedIdentifier:EAN13				[relatedIdentifierType = EAN13]
relatedIdentifier:EISSN				[relatedIdentifierType = EISSN]
relatedIdentifier:Handle				[relatedIdentifierType = Handle]
relatedIdentifier:IGSN				[relatedIdentifierType = IGSN]
relatedIdentifier:ISBN				[relatedIdentifierType = ISBN]
relatedIdentifier:ISSN				[relatedIdentifierType = ISSN]
relatedIdentifier:ISTC				[relatedIdentifierType = ISTC]
relatedIdentifier:LISSN				[relatedIdentifierType = LISSN]
relatedIdentifier:LSID				[relatedIdentifierType = LSID]
relatedIdentifier:PMID				[relatedIdentifierType = PMID]
relatedIdentifier:PURL				[relatedIdentifierType = PURL]
relatedIdentifier:UPC				[relatedIdentifierType = UPC]
relatedIdentifier:URL				[relatedIdentifierType = URL]
relatedIdentifier:URN				[relatedIdentifierType = URN]
# } 
relatedIdentifier:IsCitedBy				[relationType = IsCitedBy]
relatedIdentifier:Cites				[relationType = Cites]
relatedIdentifier:IsSupplementTo				[relationType = IsSupplementTo]
relatedIdentifier:IsSupplementedBy				[relationType = IsSupplementedBy]
relatedIdentifier:IsContinuedBy				[relationType = IsContinuedBy]
relatedIdentifier:Continues				[relationType = Continues]
relatedIdentifier:IsNewVersionOf				[relationType = IsNewVersionOf]
relatedIdentifier:IsPreviousVersionOf				[relationType = IsPreviousVersionOf]
relatedIdentifier:IsPartOf				[relationType = IsPartOf]
relatedIdentifier:HasPart				[relationType = HasPart]
relatedIdentifier:IsReferencedBy				[relationType = IsReferencedBy]
relatedIdentifier:References				[relationType = References]
relatedIdentifier:IsDocumentedBy				[relationType = IsDocumentedBy]
relatedIdentifier:Documents				[relationType = Documents]
relatedIdentifier:IsCompiledBy				[relationType = IsCompiledBy]
relatedIdentifier:Compiles				[relationType = Compiles]
relatedIdentifier:IsVariantFormOf				[relationType = IsVariantFormOf]
relatedIdentifier:IsOriginalFormOf				[relationType = IsOriginalFormOf]
relatedIdentifier:IsIdenticalTo				[relationType = IsIdenticalTo]
relatedIdentifier:HasMetadata				[relationType = HasMetadata]
relatedIdentifier:IsMetadataFor				[relationType = IsMetadataFor]
relatedIdentifier:Reviews				[relationType = Reviews]
relatedIdentifier:IsReviewedBy				[relationType = IsReviewedBy]
relatedIdentifier:IsDerivedFrom				[relationType = IsDerivedFrom]
relatedIdentifier:IsSourceOf				[relationType = IsSourceOf]
relatedIdentifier:Describes				[relationType = Describes]
relatedIdentifier:IsDescribedBy				[relationType = IsDescribedBy]
relatedIdentifier:HasVersion				[relationType = HasVersion]
relatedIdentifier:IsVersionOf				[relationType = IsVersionOf]
relatedIdentifier:Requires				[relationType = Requires]
relatedIdentifier:IsRequiredBy				[relationType = IsRequiredBy]

# 13 [sizes]
# sizes				
size				[Unstructures size information about the resource.]

# 14 [formats]
# formats				
format				[Technical format of the resource.]

# 15 [version]
version				[Version number of the resource. If the primary resource has changed the version number increases.]

# 16 [rightsList]
# rightsList				
rights				[Any rights information for this resource. Provide a rights management statement for the resource or reference a service providing such information. Include embargo information if applicable.Use the complete title of a license and include version information if applicable.]

# 17 [descriptions]
# descriptions				
description				[All additional information that does not fit in any of the other categories. May be used for technical information. It is a best practice to supply a description.]
description:Abstract				[descriptionType = Abstract]
description:Methods				[descriptionType = Methods]
description:SeriesInformation				[descriptionType = SeriesInformation]
description:TableOfContents				[descriptionType = TableOfContents]
description:TechnicalInfo				[descriptionType = TechnicalInfo]
description:Other				[descriptionType = Other]

# 18 [geoLocations]
# geoLocations				
# geoLocation				
geoLocationPlace				[Spatial region or named place where the data was gathered or about which the data is focused.]
geoLocationPoint				[A point contains a single latitude-longitude pair, separated by whitespace.]
geoLocationBox				[A box contains two white space separated latitude-longitude pairs, with each pair separated by whitespace. The first pair is the lower corner, the second is the upper corner.]
# geoLocationPolygon				[A drawn polygon area, defined by a set of points and lines connecting the points in a closed chain.]
geoLocationPolygon.polygonPoint				
geoLocationPolygon.inPolygonPoint				

# 19 [fundingReferences]
# fundingReferences				
funderName				[Information about financial support (funding) for the resource being registered.]
funderIdentifier				[Uniquely identifies a funding entity, according to various types.]
funderIdentifier:ISNI				[funderIdentifierType = ISNI]
funderIdentifier:GRID				[funderIdentifierType = GRID]
funderIdentifier:Crossref Funder ID				[funderIdentifierType = Crossref Funder ID]
funderIdentifier:Other				[funderIdentifierType = Other]
# optional awardNumber				[The code assigned by the funder to a sponsored award (grant).]
# optional awardTitle				[The human readable title of the award (grant).]

\ No newline at end of file
diff --git a/resources/xsl/3.1/xsd2keys.xsl b/resources/xsl/3.1/xsd2keys.xsl
index 872455317ec48887316f9411f6fbb3d093076fcf..50adce6dffa438a08ed1dce75d4140cc42b1fac8 100644
--- a/resources/xsl/3.1/xsd2keys.xsl
+++ b/resources/xsl/3.1/xsd2keys.xsl
@@ -11,7 +11,7 @@
 
     <xsl:output method="text" indent="no" omit-xml-declaration="yes" encoding="utf-8"/>
 
-    <xsl:variable name="REL_PATH" select="'../xsd/'"/>
+    <xsl:variable name="REL_PATH" select="'../../xsd/3.1/'"/>
 
     <xsl:variable name="included" select="//xs:include/@schemaLocation"/>
 
@@ -102,9 +102,15 @@
             <xsl:otherwise>
                 <xsl:variable name="path">
                     <xsl:choose>
+                        <xsl:when test="$elementName = 'creator'">
+                            <xsl:value-of select="'creatorName'"/>
+                        </xsl:when>
                         <xsl:when test="$elementName = 'contributor'">
                             <xsl:value-of select="'contributorName'"/>
                         </xsl:when>
+                        <xsl:when test="$elementName = 'fundingReference'">
+                            <xsl:value-of select="'funderName'"/>
+                        </xsl:when>
                         <xsl:when test="local-name() = 'element' and contains($elementName, $parent)">
                             <xsl:value-of select="$elementName"/>
                         </xsl:when>
@@ -171,10 +177,20 @@
                     </xsl:if>
                 </xsl:for-each>
                 <!-- recursion: child element -->
-                <xsl:for-each select="./xs:complexType/xs:sequence/xs:element[@name != 'nameIdentifier' and @name != 'affiliation' and @name != 'contributorName']">
-                    <xsl:call-template name="element">
-                        <xsl:with-param name="parent" select="$child_path"/>
-                    </xsl:call-template>
+                <xsl:for-each select="./xs:complexType/xs:sequence/xs:element[@name != 'contributorName']">
+                    <xsl:choose>
+                        <xsl:when test="@name != 'nameIdentifier' and @name != 'affiliation'">
+                            <xsl:call-template name="element">
+                                <xsl:with-param name="parent" select="$child_path"/>
+                            </xsl:call-template>
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:text># optional </xsl:text>
+                            <xsl:value-of select="@name"/>
+                            <xsl:if test="@name = 'nameIdentifier'">:ORCID</xsl:if>
+                            <xsl:text>&#13;</xsl:text>
+                        </xsl:otherwise>
+                    </xsl:choose>
                 </xsl:for-each>
             </xsl:otherwise>
         </xsl:choose>
diff --git a/resources/xsl/4.0/doi2csv.xsl b/resources/xsl/4.1/doi2csv.xsl
similarity index 100%
rename from resources/xsl/4.0/doi2csv.xsl
rename to resources/xsl/4.1/doi2csv.xsl
diff --git a/resources/xsl/4.0/doi2landing.xsl b/resources/xsl/4.1/doi2landing.xsl
similarity index 100%
rename from resources/xsl/4.0/doi2landing.xsl
rename to resources/xsl/4.1/doi2landing.xsl
diff --git a/resources/xsl/4.0/xml2doi.xsl b/resources/xsl/4.1/xml2doi.xsl
similarity index 100%
rename from resources/xsl/4.0/xml2doi.xsl
rename to resources/xsl/4.1/xml2doi.xsl
diff --git a/resources/xsl/4.0/xsd2keys.xsl b/resources/xsl/4.1/xsd2keys.xsl
similarity index 83%
rename from resources/xsl/4.0/xsd2keys.xsl
rename to resources/xsl/4.1/xsd2keys.xsl
index 81f8feac732b3b54f98044cf810172451805095d..70cc2a721f32b7147dea3fe8a6fb885eb5bdb7bf 100644
--- a/resources/xsl/4.0/xsd2keys.xsl
+++ b/resources/xsl/4.1/xsd2keys.xsl
@@ -5,13 +5,13 @@
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 xmlns:d="http://datacite.org/schema/kernel-4"
                 exclude-result-prefixes="d"
-                xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd"
+                xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.1/metadata.xsd"
                 xmlns:exsl="http://exslt.org/common"
                 extension-element-prefixes="exsl">
 
     <xsl:output method="text" indent="no" omit-xml-declaration="yes" encoding="utf-8"/>
 
-    <xsl:variable name="REL_PATH" select="'../xsd/'"/>
+    <xsl:variable name="REL_PATH" select="'../../xsd/4.1/'"/>
 
     <xsl:variable name="included" select="//xs:include/@schemaLocation"/>
 
@@ -102,9 +102,18 @@
             <xsl:otherwise>
                 <xsl:variable name="path">
                     <xsl:choose>
+                        <xsl:when test="$elementName = 'creator'">
+                            <xsl:value-of select="'creatorName'"/>
+                        </xsl:when>
                         <xsl:when test="$elementName = 'contributor'">
                             <xsl:value-of select="'contributorName'"/>
                         </xsl:when>
+                        <xsl:when test="$elementName = 'fundingReference'">
+                            <xsl:value-of select="'funderName'"/>
+                        </xsl:when>
+                        <xsl:when test="$elementName = 'funderIdentifier'">
+                            <xsl:value-of select="'funderIdentifier'"/>
+                        </xsl:when>
                         <xsl:when test="local-name() = 'element' and contains($elementName, $parent)">
                             <xsl:value-of select="$elementName"/>
                         </xsl:when>
@@ -171,10 +180,27 @@
                     </xsl:if>
                 </xsl:for-each>
                 <!-- recursion: child element -->
-                <xsl:for-each select="./xs:complexType/xs:sequence/xs:element[@name != 'nameIdentifier' and @name != 'affiliation' and @name != 'contributorName']">
-                    <xsl:call-template name="element">
-                        <xsl:with-param name="parent" select="$child_path"/>
-                    </xsl:call-template>
+                <xsl:for-each select="./xs:complexType/xs:sequence/xs:element[@name != 'contributorName'] | ./xs:complexType/xs:all/xs:element[@name != 'funderName']">
+                    <xsl:choose>
+                        <xsl:when test="@name != 'nameIdentifier' and @name != 'affiliation'
+                                        and @name != 'givenName' and @name != 'familyName'
+                                        and not(contains(@name, 'award'))">
+                            <xsl:call-template name="element">
+                                <xsl:with-param name="parent" select="$child_path"/>
+                            </xsl:call-template>
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:text># optional </xsl:text>
+                            <xsl:value-of select="@name"/>
+                            <xsl:if test="@name = 'nameIdentifier'">:ORCID</xsl:if>
+                            <xsl:if test="./xs:annotation">
+                                <xsl:text>&#09;&#09;&#09;&#09;[</xsl:text>
+                                <xsl:value-of select="./xs:annotation/xs:documentation/text()"/>
+                                <xsl:text>]</xsl:text>
+                            </xsl:if>
+                            <xsl:text>&#13;</xsl:text>
+                        </xsl:otherwise>
+                    </xsl:choose>
                 </xsl:for-each>
             </xsl:otherwise>
         </xsl:choose>