diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDelivererAbstract.java b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDelivererAbstract.java index 4d2ec314aa6a70d16a3e637a794040385b820aaa..8439befbad719f87786d171bb569e1fbae1e1c74 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDelivererAbstract.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDelivererAbstract.java @@ -43,9 +43,9 @@ public abstract class MetadataFormatListDelivererAbstract // Add metadata format for OPEN AIRE. MetadataFormatType mftOpenAire = new MetadataFormatType(); - mftOpenAire.setMetadataNamespace(OaipmhConstants.OPEN_AIRE_NAMESPACE); + mftOpenAire.setMetadataNamespace(OaipmhConstants.DATACITE_NAMESPACE); mftOpenAire.setMetadataPrefix(OaipmhConstants.METADATA_OPENAIRE_PREFIX); - mftOpenAire.setSchema(OaipmhConstants.OPEN_AIRE_SCHEMA_LOCATION); + mftOpenAire.setSchema(OaipmhConstants.DATACITE_SCHEMA_LOCATION); result.getMetadataFormat().add(mftOpenAire); return result; diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDelivererTG.java b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDelivererTG.java index a1d0df0228732cd99ffde55906196a18bd99ebfe..2ad0e6512d83f937619e8d10ee8f17a5dcc07369 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDelivererTG.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDelivererTG.java @@ -58,8 +58,8 @@ public class MetadataFormatListDelivererTG extends MetadataFormatListDelivererAb mft.setSchema(OaipmhConstants.OAIDC_SCHEMA_LOCATION); openAireMetadataFormat.setMetadataPrefix(OaipmhConstants.METADATA_OPENAIRE_PREFIX); - openAireMetadataFormat.setMetadataNamespace(OaipmhConstants.OPEN_AIRE_NAMESPACE); - openAireMetadataFormat.setSchema(OaipmhConstants.OPEN_AIRE_SCHEMA_LOCATION); + openAireMetadataFormat.setMetadataNamespace(OaipmhConstants.DATACITE_NAMESPACE); + openAireMetadataFormat.setSchema(OaipmhConstants.DATACITE_SCHEMA_LOCATION); lmft.getMetadataFormat().add(mft); lmft.getMetadataFormat().add(openAireMetadataFormat); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhConstants.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhConstants.java index bc0c6bdf90fa4b3575da6730b5ab3b9921d8a0ba..f02e9f374be049a7bf45516900c7aec830745ef4 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhConstants.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhConstants.java @@ -32,10 +32,6 @@ public final class OaipmhConstants { public static final String METS_NAMESPACE = "http://www.loc.gov/METS/"; public static final String METS_SCHEMA_LOCATION = "https://www.loc.gov/standards/mets/mets.xsd"; - public static final String OPEN_AIRE_NAMESPACE = "http://namespace.openaire.eu/oaf"; - public static final String OPEN_AIRE_SCHEMA_LOCATION = - "https://www.openaire.eu/schema/1.0/oaf-1.0.xsd"; - public static final String IDIOM_IMAGE_NAMESPACE = METS_NAMESPACE; public static final String IDIOM_IMAGE_SCHEMA_LOCATION = METS_SCHEMA_LOCATION; diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhImpl.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhImpl.java index fa32ab113930bcdea05faff94ae9688b35068c08..a7cad1e61a3e63a1aaa60bd141ab7c6ea631d615 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhImpl.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OaipmhImpl.java @@ -845,18 +845,12 @@ public class OaipmhImpl implements OaipmhProducer { String schemaLocations = OaipmhConstants.OAIPMH_NAMESPACE + " " + OaipmhConstants.OAIPMH_SCHEMA_LOCATION; - // Add OAI_DC and DC schema location if needed. + // Add OAI_DC, DC, and openaire datacite schema location if needed. if (theVerb != null && (theVerb.equals("GetRecord") || theVerb.endsWith("ListRecords"))) { schemaLocations += " " + OaipmhConstants.OAIDC_NAMESPACE + " " + OaipmhConstants.OAIDC_SCHEMA_LOCATION + " " - + OaipmhConstants.DC_NAMESPACE + " " + OaipmhConstants.DC_SCHEMA_LOCATION; - - // Add the openaire datacite schemas as well, please. - schemaLocations += - " " + OaipmhConstants.OPEN_AIRE_NAMESPACE + " " - + OaipmhConstants.OAIPMH_SCHEMA_LOCATION + " " + OaipmhConstants.DATACITE_NAMESPACE - + " " - + OaipmhConstants.DATACITE_SCHEMA_LOCATION; + + OaipmhConstants.DC_NAMESPACE + " " + OaipmhConstants.DC_SCHEMA_LOCATION + " " + + OaipmhConstants.DATACITE_NAMESPACE + " " + OaipmhConstants.DATACITE_SCHEMA_LOCATION; } // PLEASE NOTE We always get oai_dc and dc prefixes defined in the root element due to the diff --git a/oaipmh-core/src/main/resources/bindings.xjb b/oaipmh-core/src/main/resources/bindings.xjb index 670996db80efdf6d83f2502463ca16445c1f5e91..d820a40bb9749382cbf452430d4bbdb105ec7908 100644 --- a/oaipmh-core/src/main/resources/bindings.xjb +++ b/oaipmh-core/src/main/resources/bindings.xjb @@ -5,7 +5,7 @@ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:namespace="http://jaxb2-commons.dev.java.net/namespace-prefix" - xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb https://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd + xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/jaxb/bindingschema_2_0.xsd http://jaxb2-commons.dev.java.net/namespace-prefix https://raw.githubusercontent.com/Siggen/jaxb2-namespace-prefix/master/src/main/resources/prefix-namespace-schema.xsd"> <jxb:bindings schemaLocation="oai_pmh.xsd"> @@ -25,8 +25,6 @@ namespaceURI="http://purl.org/dc/elements/1.1/" name="dc" /> <namespace:prefix namespaceURI="http://datacite.org/schema/kernel-3" name="datacite" /> - <namespace:prefix - namespaceURI="http://namespace.openaire.eu/oaf" name="open_aire" /> </jxb:bindings> </jxb:bindings> @@ -37,24 +35,4 @@ </jxb:schemaBindings> </jxb:bindings> - <!-- MIT DIESEM HIER EINKOMMENTIERT, benennt er die Klassen um, scheint - sie aber irgendwo NOCHMAL zu definieren?? --> - <jxb:bindings schemaLocation="oaf-common-1.0.xsd" multiple="true" node="/xs:schema"> - <jxb:schemaBindings> - <jxb:package name="info.textgrid.middleware.oaipmh.oaf.common" /> - </jxb:schemaBindings> - <jxb:bindings node="//xs:attribute[@name='classname']" multiple="true" > - <jxb:property name="OAFClassnameProperty" /> - </jxb:bindings> - <jxb:bindings node="//xs:attribute[@name='classid']" multiple="true" > - <jxb:property name="OAFClassidProperty" /> - </jxb:bindings> - <jxb:bindings node="//xs:attribute[@name='schemeid']" multiple="true" > - <jxb:property name="OAFSchemeidProperty" /> - </jxb:bindings> - <jxb:bindings node="//xs:attribute[@name='schemename']" multiple="true" > - <jxb:property name="OAFSchemenameProperty" /> - </jxb:bindings> - - </jxb:bindings> </jxb:bindings> diff --git a/oaipmh-core/src/main/resources/oaf-1.0.xsd b/oaipmh-core/src/main/resources/oaf-1.0.xsd deleted file mode 100644 index 952ae31ddbf10d640b11c920f116bb400f07f257..0000000000000000000000000000000000000000 --- a/oaipmh-core/src/main/resources/oaf-1.0.xsd +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" - xmlns:dri="http://www.driver-repository.eu/namespace/dri" xmlns="http://namespace.openaire.eu/oaf" - targetNamespace="http://namespace.openaire.eu/oaf"> - - <xs:annotation> - <xs:documentation>This schema describes the XML serialization of the OpenAIRE Research Graph. - For an overview of the model, please check the OpenAIRE Research Graph Data Model at https://doi.org/10.5281/zenodo.2643199 - </xs:documentation> - </xs:annotation> - - <xs:include schemaLocation="oaf-result-1.0.xsd"/> - <xs:include schemaLocation="oaf-org-1.0.xsd"/> - <xs:include schemaLocation="oaf-datasource-1.0.xsd"/> - <xs:include schemaLocation="oaf-project-1.0.xsd"/> - - <xs:element name="entity"> - <xs:complexType> - <xs:sequence> - <xs:choice> - <xs:element ref="result"/> - <xs:element ref="organization"/> - <xs:element ref="datasource"/> - <xs:element ref="project"/> - </xs:choice> - </xs:sequence> - </xs:complexType> - </xs:element> - -</xs:schema> diff --git a/oaipmh-core/src/main/resources/oaf-common-1.0.xsd b/oaipmh-core/src/main/resources/oaf-common-1.0.xsd deleted file mode 100644 index b3ffcbbedd1cc20a5401229dbbb30c20d68f5ee6..0000000000000000000000000000000000000000 --- a/oaipmh-core/src/main/resources/oaf-common-1.0.xsd +++ /dev/null @@ -1,305 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" - xmlns="http://namespace.openaire.eu/oaf" targetNamespace="http://namespace.openaire.eu/oaf"> - - <xs:annotation> - <xs:documentation>This schema defines common types that can be re-used.</xs:documentation> - </xs:annotation> - - <xs:simpleType name="emptyType"> - <xs:restriction base="xs:string"> - <xs:length value="0"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="boolOrEmptyType"> - <xs:union memberTypes="emptyType xs:boolean"/> - </xs:simpleType> - - <xs:simpleType name="stringOrEmptyType"> - <xs:union memberTypes="emptyType xs:string"/> - </xs:simpleType> - - <xs:attributeGroup name="dataInfoAttributeGroup"> - <xs:attribute name="inferred" use="optional" type="xs:boolean"> - <xs:annotation> - <xs:documentation>True if this information has been inferred by the automatic - inference algorithms run by OpenAIRE. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="trust" use="optional" type="xs:string"> - <xs:annotation> - <xs:documentation>Value of trust of this information in the range [0,1]. More the - value, more trustworthy is the information. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="inferenceprovenance" use="optional" type="xs:string"> - <xs:annotation> - <xs:documentation>Which algorithm inferred the current property. </xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attributeGroup ref="qualifierAttributeGroup"></xs:attributeGroup> - </xs:attributeGroup> - - <xs:attributeGroup name="qualifierAttributeGroup"> - <xs:attribute name="classid" use="required" type="xs:string"/> - <xs:attribute name="classname" use="required" type="xs:string"/> - <xs:attribute name="schemeid" use="required" type="xs:string"/> - <xs:attribute name="schemename" use="required" type="xs:string"/> - </xs:attributeGroup> - - <xs:attributeGroup name="qualifierAttributeGroupAlternative"> - <xs:attribute name="classid_alt" use="required" type="xs:string"/> - <xs:attribute name="classname_alt" use="required" type="xs:string"/> - <xs:attribute name="schemeid_alt" use="required" type="xs:string"/> - <xs:attribute name="schemename_alt" use="required" type="xs:string"/> - </xs:attributeGroup> - - <xs:complexType name="fieldType"> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attributeGroup ref="dataInfoAttributeGroup"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - - <xs:complexType name="qualifierType"> - <xs:attributeGroup ref="qualifierAttributeGroup"/> - </xs:complexType> - - <xs:complexType name="dataInfoType"> - <xs:attributeGroup ref="dataInfoAttributeGroup"/> - </xs:complexType> - - <xs:complexType name="structuredPropertyElementType"> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attributeGroup ref="qualifierAttributeGroupAlternative"/> - <xs:attributeGroup ref="dataInfoAttributeGroup"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - - <xs:complexType name="labeledIdElementType"> - <xs:attribute name="id" use="required"/> - <xs:attribute name="label" use="required"/> - </xs:complexType> - - <!-- <oaf:context id="egi" label="EGI" type="community"> - <oaf:category id="egi::virtual" label="EGI virtual organizations"> - <oaf:concept id="egi::virtual::2" label="alice"/> - </oaf:category> - </oaf:context> - <oaf:community id="{@id}" label="{@label}"> - <xsl:apply-templates/> - </oaf:community> - --> - <xs:complexType name="contextType"> - <xs:complexContent> - <xs:extension base="labeledIdElementType"> - <xs:sequence maxOccurs="unbounded"> - <xs:element name="category" type="categoryType"/> - </xs:sequence> - <xs:attributeGroup ref="dataInfoAttributeGroup"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="categoryType"> - <xs:complexContent> - <xs:extension base="labeledIdElementType"> - <xs:sequence minOccurs="0" maxOccurs="unbounded"> - <xs:element name="concept" type="conceptType"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="conceptType"> - <xs:complexContent> - <xs:extension base="labeledIdElementType"> - <xs:sequence maxOccurs="unbounded" minOccurs="0"> - <xs:element name="concept" type="conceptType"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="namedIdElementType"> - <xs:attribute name="id" use="required"/> - <xs:attribute name="name" use="required"/> - <xs:attributeGroup ref="dataInfoAttributeGroup"/> - </xs:complexType> - - <xs:complexType name="relsType"> - <xs:annotation> - <xs:documentation>Relationships to other entities.</xs:documentation> - </xs:annotation> - <xs:choice maxOccurs="unbounded" minOccurs="0"> - <xs:element name="rel" type="relType" minOccurs="0"/> - </xs:choice> - </xs:complexType> - - <xs:complexType name="relType"> - <xs:sequence> - <xs:choice maxOccurs="unbounded"> - <xs:element name="to" type="relToType"/> - <xs:element name="title" type="xs:string"/> - <xs:element name="websiteurl"/> - <xs:choice> - <xs:group ref="relDataSourceGroup"/> - <xs:group ref="relResultGroup"/> - <xs:group ref="relProjectGroup"/> - <xs:group ref="relOrganizationGroup"/> - <xs:group ref="fundingGroup"/> - </xs:choice> - </xs:choice> - </xs:sequence> - <xs:attributeGroup ref="dataInfoAttributeGroup"/> - </xs:complexType> - - <xs:group name="relDataSourceGroup"> - <xs:sequence> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="officialname" type="xs:string"/> - <xs:element name="datasourcetype" type="qualifierType"/> - </xs:choice> - </xs:sequence> - </xs:group> - - <xs:group name="relResultGroup"> - <xs:sequence> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="collectedfrom" type="namedIdElementType"/> - <xs:element name="url" type="xs:string"/> - <xs:element name="pid" type="structuredPropertyElementType"/> - <xs:element name="dateofacceptance" type="xs:string"/> - <xs:element name="publisher" type="xs:string"/> - <xs:element name="resulttype" type="xs:string"> - <xs:annotation> - <xs:documentation> Tells if the related record is about a publication or a - dataset. </xs:documentation> - </xs:annotation> - </xs:element> - <!-- the following fields are available only for similarity relations --> - <xs:element name="similarity" type="xs:double"> - <xs:annotation> - <xs:documentation>The similarity degree expressed in the range (0,1]. This - field is avaiable only when the to/@class is one of - {hasAmongTopNSimilarDocuments, - isAmongTopNSimilarDocuments}</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="type"> - <xs:annotation> - <xs:documentation>The similarity degree expressed in the range (0,1]. This - field is avaiable only when the to/@class is one of - {hasAmongTopNSimilarDocuments, - isAmongTopNSimilarDocuments}</xs:documentation> - </xs:annotation> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="STANDARD"/> - <xs:enumeration value="WEBUSAGE"/> - </xs:restriction> - </xs:simpleType> - </xs:element> - </xs:choice> - </xs:sequence> - </xs:group> - - <xs:group name="relProjectGroup"> - <xs:sequence> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="code" type="xs:string"/> - <xs:element name="acronym" type="xs:string"/> - </xs:choice> - </xs:sequence> - </xs:group> - - <xs:group name="fundingGroup"> - <xs:sequence> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="contracttype" type="qualifierType"/> - <xs:element name="funding" type="fundingFlatType"/> - </xs:choice> - </xs:sequence> - </xs:group> - - <xs:group name="relOrganizationGroup"> - <xs:sequence> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="legalname" type="xs:string"/> - <xs:element name="legalshortname" type="xs:string"/> - <xs:element name="country" type="xs:string"/> - </xs:choice> - </xs:sequence> - </xs:group> - - - <xs:complexType name="relToType"> - <xs:annotation> - <xs:documentation>Information about the related entity. <p>The semantics of the - relationships is expressed by the attributes class and scheme. </p> - </xs:documentation> - </xs:annotation> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="class" use="required" type="xs:string"/> - <xs:attribute name="type" use="required" type="xs:string"> - <xs:annotation> - <xs:documentation>The type of the related entity. <p>Allowed values are: - project, organization, datasource, result, person.</p> - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - - <xs:complexType name="fundingFlatType"> - <xs:sequence> - <xs:element name="funder" type="funderFlatType" minOccurs="1" maxOccurs="1"/> - <xs:element name="funding_level_0" type="namedFundingLevel" minOccurs="0" - maxOccurs="unbounded"/> - <xs:element name="funding_level_1" type="namedFundingLevel" minOccurs="0" - maxOccurs="unbounded"/> - <xs:element name="funding_level_2" type="namedFundingLevel" minOccurs="0" - maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="funderFlatType"> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="id" use="required" type="xs:string"/> - <xs:attribute name="shortname" use="required" type="xs:string"/> - <xs:attribute name="name" use="required" type="xs:string"/> - <xs:attribute name="jurisdiction" use="optional" type="xs:string"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - - <xs:complexType name="namedFundingLevel"> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="name" use="required" type="xs:string"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - - <xs:complexType name="externalreferenceType"> - <xs:sequence> - <xs:element name="sitename" type="xs:string" minOccurs="0" maxOccurs="1"/> - <!--<xs:element name="label" type="xs:string" minOccurs="0" maxOccurs="1"/>--> - <xs:element name="url" type="xs:string" minOccurs="0" maxOccurs="1"/> - <xs:element name="qualifier" type="qualifierType" minOccurs="0" maxOccurs="1"/> - <xs:element name="refidentifier" type="xs:string" minOccurs="0" maxOccurs="1"/> - </xs:sequence> - <xs:attributeGroup ref="dataInfoAttributeGroup"/> - </xs:complexType> - - - <!-- REMOVE FROM HERE TO THE END --> - -</xs:schema> diff --git a/oaipmh-core/src/main/resources/oaf-datasource-1.0.xsd b/oaipmh-core/src/main/resources/oaf-datasource-1.0.xsd deleted file mode 100644 index c84ec2531dafd7151cd00ac15f6b15aa1fd579af..0000000000000000000000000000000000000000 --- a/oaipmh-core/src/main/resources/oaf-datasource-1.0.xsd +++ /dev/null @@ -1,76 +0,0 @@ -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://namespace.openaire.eu/oaf" - targetNamespace="http://namespace.openaire.eu/oaf" elementFormDefault="qualified"> - - <xs:annotation> - <xs:documentation>This schema describes elements and properties of OpenAIRE datasources: https://issue.openaire.research-infrastructures.eu/projects/openaire2020-wiki/wiki/Core_entity_datasource</xs:documentation> - </xs:annotation> - - <xs:include schemaLocation="oaf-common-1.0.xsd"/> - - <xs:element name="datasource"> - <xs:complexType> - <xs:choice maxOccurs="unbounded"> - <xs:element name="namespaceprefix" type="xs:string" /> - <xs:element name="officialname" type="xs:string" /> - <xs:element name="englishname" type="xs:string" /> - <xs:element name="websiteurl" type="xs:string" /> - <xs:element name="logourl" type="xs:string" /> - <xs:element name="contactemail" type="xs:string" /> - <xs:element name="datasourcetype" type="qualifierType"> - <xs:annotation> - <xs:documentation>For allowed values check terms in:http://api.openaire.eu/vocabularies/dnet:datasource_typologies</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="openairecompatibility" type="qualifierType"> - <xs:annotation> - <xs:documentation> - Level of compatibility of this datasource with regards to the - guidelines. - <p>For allowed values check: - http://api.openaire.eu/vocabularies/dnet:datasourceCompatibilityLevel - </p> - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="dateofvalidation" type="xs:string"> - <xs:annotation> - <xs:documentation>When this datasource has been validated by the - OpenAire - Validator. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="latitude" type="xs:string" /> - <xs:element name="longitude" type="xs:string" /> - <xs:element name="description" type="xs:string" /> - <xs:element name="subjects" type="structuredPropertyElementType"> - <xs:annotation> - <xs:documentation> - Subjects and keywords. - <p>For allowed values check: - http://api.openaire.eu/vocabularies/dnet:result_subjects - </p> - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="originalId" type="xs:string" /> - <xs:element name="collectedfrom" type="namedIdElementType"> - <xs:annotation> - <xs:documentation>Identifier and name of the datasource from which - this datasource has - been collected from. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="pid" type="structuredPropertyElementType" /> - <xs:element name="rels" type="relsType"> - <xs:annotation> - <xs:documentation>Relationships to other entities. - </xs:documentation> - </xs:annotation> - </xs:element> - - </xs:choice> - </xs:complexType> - </xs:element> -</xs:schema> diff --git a/oaipmh-core/src/main/resources/oaf-org-1.0.xsd b/oaipmh-core/src/main/resources/oaf-org-1.0.xsd deleted file mode 100644 index 3c46fca44b6462be5fb51d116555cac23ea9d016..0000000000000000000000000000000000000000 --- a/oaipmh-core/src/main/resources/oaf-org-1.0.xsd +++ /dev/null @@ -1,41 +0,0 @@ -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://namespace.openaire.eu/oaf" - targetNamespace="http://namespace.openaire.eu/oaf" elementFormDefault="qualified"> - - <xs:annotation> - <xs:documentation>This schema describes elements and properties of OpenAIRE entities of type organization: https://issue.openaire.research-infrastructures.eu/projects/openaire2020-wiki/wiki/Core_entity_organization</xs:documentation> - </xs:annotation> - - <xs:include schemaLocation="oaf-common-1.0.xsd"/> - - <xs:element name="organization"> - <xs:complexType> - <xs:choice maxOccurs="unbounded"> - <xs:element name="legalname" type="xs:string"/> - <xs:element name="legalshortname" type="xs:string"/> - <xs:element name="logourl" type="xs:string"/> - <xs:element name="originalId" type="xs:string"/> - <xs:element name="websiteurl" type="xs:string"/> - <xs:element name="country" type="qualifierType"> - <xs:annotation> - <xs:documentation>Countries in ISO 3166-1 alpha-2. </xs:documentation> - </xs:annotation> - </xs:element> - - <xs:element name="collectedfrom" type="namedIdElementType"> - <xs:annotation> - <xs:documentation>Identifier and name of the datasource from which this - organization has been collected from. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="pid" type="structuredPropertyElementType"/> - <xs:element name="rels" type="relsType"> - <xs:annotation> - <xs:documentation>Relationships to other entities. </xs:documentation> - </xs:annotation> - </xs:element> - <!-- If we decide not to show deduplicated org, then we have to remove this field --> - <!-- <xs:element name="duplicates" type="mergedOrgs"/> --> - </xs:choice> - </xs:complexType> - </xs:element> -</xs:schema> diff --git a/oaipmh-core/src/main/resources/oaf-project-1.0.xsd b/oaipmh-core/src/main/resources/oaf-project-1.0.xsd deleted file mode 100644 index abcba4d9f63f31996226f01a18ab575541e32827..0000000000000000000000000000000000000000 --- a/oaipmh-core/src/main/resources/oaf-project-1.0.xsd +++ /dev/null @@ -1,111 +0,0 @@ -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://namespace.openaire.eu/oaf" - targetNamespace="http://namespace.openaire.eu/oaf" elementFormDefault="qualified"> - - <xs:annotation> - <xs:documentation>This schema describes elements and properties of OpenAIRE project entity: https://issue.openaire.research-infrastructures.eu/projects/openaire2020-wiki/wiki/Core_entity_project</xs:documentation> - </xs:annotation> - - <xs:include schemaLocation="oaf-common-1.0.xsd"/> - - <xs:element name="project"> - <xs:complexType> - <xs:choice maxOccurs="unbounded"> - <xs:element name="code" type="xs:string"> - <xs:annotation> - <xs:documentation>Project code as assigned by the project's funder.</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="title" type="xs:string"/> - <xs:element name="acronym" type="xs:string"/> - <xs:element name="callidentifier" type="xs:string"> - <xs:annotation> - <xs:documentation> Identifier of the call for proposal.</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="contactfullname" type="xs:string"/> - <xs:element name="contactfax" type="xs:string"/> - <xs:element name="contactphone" type="xs:string"/> - <xs:element name="contactemail" type="xs:string"/> - <xs:element name="contracttype" type="qualifierType"/> - <xs:element name="keywords" type="xs:string"/> - <xs:element name="websiteurl" type="xs:string"/> - <xs:element name="startdate" type="xs:string"/> - <xs:element name="enddate" type="xs:string"/> - <xs:element name="duration" type="xs:string"/> - <xs:element name="ecsc39" type="boolOrEmptyType"> - <xs:annotation> - <xs:documentation>True if the project has the special clause 39. Available - only for EC FP7 funded projects. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="oamandatepublications" type="xs:boolean"> - <xs:annotation> - <xs:documentation>True if the project's funding mandates the availability of project's publications in Open Access.</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="ecarticle29_3" type="boolOrEmptyType"> - <xs:annotation> - <xs:documentation>True if the project is under the EC Open Data Pilot. Available only for EC H2020 funded projects. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="subjects" type="qualifierType"/> - - <xs:element name="fundingtree" type="fundingTreeType"/> - <xs:element name="originalId" type="xs:string"/> - <xs:element name="collectedfrom" type="namedIdElementType"> - <xs:annotation> - <xs:documentation>Identifier and name of the datasource from which this - project has been collected from. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="pid" type="qualifierType"/> - <xs:element name="rels" type="relsType"> - <xs:annotation> - <xs:documentation>Relationships to other entities. </xs:documentation> - </xs:annotation> - </xs:element> - </xs:choice> - </xs:complexType> - </xs:element> - - <!-- to be removed, and replaced by ContextType --> - <xs:complexType name="fundingTreeType"> - <xs:sequence> - <xs:element name="funder" type="funderType"/> - <xs:choice maxOccurs="unbounded"> - <!-- Three-tier funding hierarchies --> - <xs:element name="funding_level_2" type="fundingType"/> - <!-- Two-tier funding hierarchies --> - <xs:element name="funding_level_1" type="fundingType"/> - <!-- No funding hierarchy --> - <xs:element name="funding_level_0" type="fundingType"/> - </xs:choice> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="fundingType"> - <xs:all> - <xs:element name="id" type="xs:string"/> - <xs:element name="description" type="xs:string"/> - <xs:element name="name" type="xs:string"/> - <xs:element name="class" type="xs:string"/> - <xs:element name="parent" type="fundingParentType"/> - </xs:all> - </xs:complexType> - - <xs:complexType name="fundingParentType"> - <xs:choice minOccurs="0"> - <xs:element name="funding_level_1" type="fundingType"/> - <xs:element name="funding_level_0" type="fundingType"/> - </xs:choice> - </xs:complexType> - - <xs:complexType name="funderType"> - <xs:all> - <xs:element name="id" type="xs:string"/> - <xs:element name="shortname" type="xs:string"/> - <xs:element name="name" type="xs:string"/> - <xs:element name="jurisdiction" type="xs:string"/> - </xs:all> - </xs:complexType> -</xs:schema> diff --git a/oaipmh-core/src/main/resources/oaf-result-1.0.xsd b/oaipmh-core/src/main/resources/oaf-result-1.0.xsd deleted file mode 100644 index 2ffd39849cbb1f5da2ebfa5d7cba94ae8d21185f..0000000000000000000000000000000000000000 --- a/oaipmh-core/src/main/resources/oaf-result-1.0.xsd +++ /dev/null @@ -1,242 +0,0 @@ -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" - xmlns="http://namespace.openaire.eu/oaf" targetNamespace="http://namespace.openaire.eu/oaf"> - - <xs:annotation> - <xs:documentation>This schema describes elements and properties of the OpenAIRE Result entity. For an overview of the model, please check the OpenAIRE Research Graph Data Model at https://doi.org/10.5281/zenodo.2643199</xs:documentation> - </xs:annotation> - - <xs:include schemaLocation="oaf-common-1.0.xsd"/> - - <xs:element name="result"> - <xs:complexType> - <xs:choice maxOccurs="unbounded"> - <xs:element name="creator"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="name" type="xs:string"/> - <xs:attribute name="surname" type="xs:string"/> - <xs:attribute name="ORCID" type="xs:string"/> - <xs:attribute name="rank" type="xs:int"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element name="resulttype" type="qualifierType"> - <xs:annotation> - <xs:documentation> Tells if this record is about a publication or a dataset. - <p>For allowed values check: - http://api.openaire.eu/vocabularies/dnet:result_typologies </p> - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="language" type="qualifierType"/> - <xs:element name="country" type="dataInfoType"/> - <xs:element name="subject" type="structuredPropertyElementType"/> - <xs:element name="title" type="structuredPropertyElementType"> - <xs:annotation> - <xs:documentation> Title of this research result. <p>Different types of - titles are allowed: see http://api.openaire.eu/vocabularies/dnet:dataCite_title</p> - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="relevantdate" type="structuredPropertyElementType"/> - <xs:element name="description" type="xs:string"/> - <xs:element name="dateofacceptance" type="xs:string"/> - <xs:element name="publisher" type="xs:string"/> - <xs:element name="embargoenddate" type="xs:string"/> - <xs:element name="source" type="xs:string"> - <xs:annotation> - <xs:documentation>The semantics of this field is inherited from dc:source in - Dublin Core. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="format" type="xs:string"/> - <xs:element name="contributor" type="xs:string"/> - <xs:element name="resourcetype" type="qualifierType"> - <xs:annotation> - <xs:documentation> This field is valid only if resulttype is "dataset". It - expresses the nature of the dataset. <p>For allowed values check: - http://api.openaire.eu/vocabularies/dnet:publication_resource </p> - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="coverage" type="xs:string"/> - <xs:element name="bestaccessright" type="qualifierType"> - <xs:annotation> - <xs:documentation> The best access right available for this result among the - available licenses of its children elements. <p>For allowed values - check: http://api.openaire.eu/vocabularies/dnet:access_modes </p> - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="journal" type="journalType"/> - <xs:element name="pid" type="structuredPropertyElementType"> - <xs:annotation> - <xs:documentation> Persistent identifier. <p>For allowed pid systems check: - http://api.openaire.eu/vocabularies/dnet:pid_types </p> - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="device" type="xs:string"> - <xs:annotation> - <xs:documentation> This field is valid only if resulttype is "dataset". It - contains information about the device used to generate the dataset. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="size" type="xs:string"> - <xs:annotation> - <xs:documentation> This field is valid only if resulttype is "dataset". It - contains information about the size of the dataset. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="version" type="xs:string"> - <xs:annotation> - <xs:documentation> This field is valid only if resulttype is "dataset". It - contains information about the version of the dataset. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="lastmetadataupdate" type="xs:string"> - <xs:annotation> - <xs:documentation> This field is valid only if resulttype is "dataset". It - is the last update date of the metadata of the dataset. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="metadataversionnumber" type="xs:string"> - <xs:annotation> - <xs:documentation> This field is valid only if resulttype is "dataset". It - contains information about the version of the metadata of the dataset. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="originalId" type="xs:string" maxOccurs="unbounded"/> - <xs:element name="collectedfrom" type="namedIdElementType" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation>Identifier and name of the datasource from which this - result has been collected from (e.g., "OpenDOAR"). </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="context" type="contextType"> - <xs:annotation> - <xs:documentation>Research community, initiative, infrastructure or funding agency related to this result.</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="rels" type="relsType"> - <xs:annotation> - <xs:documentation>Relationships to other entities. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="instances" type="instancesType" minOccurs="1" maxOccurs="1"/> - <xs:element name="citations" type="citationsType" maxOccurs="1" minOccurs="0"/> - </xs:choice> - </xs:complexType> - </xs:element> - - <xs:complexType name="citationsType"> - <xs:sequence> - <xs:element name="citation" maxOccurs="unbounded" minOccurs="0"> - <xs:complexType> - <xs:sequence> - <xs:element name="rawText"/> - <xs:element name="id" minOccurs="0" maxOccurs="unbounded"> - <xs:complexType> - <xs:attribute name="value"/> - <xs:attribute name="type"/> - <xs:attribute name="confidenceLevel"/> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - <xs:attribute name="provenance" type="xs:string"/> - <xs:attribute name="trust" type="xs:string"/> - </xs:complexType> - - <xs:complexType name="journalType"> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="eissn" use="optional"/> - <xs:attribute name="issn" use="optional"/> - <xs:attribute name="lissn" use="optional"/> - <xs:attribute name="ep" use="optional"/> - <xs:attribute name="iss" use="optional"/> - <xs:attribute name="sp" use="optional"/> - <xs:attribute name="vol" use="optional"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - <xs:complexType name="instancesType"> - <xs:sequence> - <xs:element name="instance" type="instanceType" minOccurs="1" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation>Actual digital representation of the publication or dataset. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="externalreference" type="externalreferenceType" minOccurs="0" - maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="instanceType"> - <xs:choice maxOccurs="unbounded"> - <xs:element name="license" type="fieldType"> - <xs:annotation> - <xs:documentation> License to access this actual manifestation of the - result. Typically it is a URL. OpenAIRE does not yet attempt any harmonization and reflect the original values that are available in the collected metadata records. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="accessright" type="qualifierType"/> - <xs:element name="instancetype" type="qualifierType"> - <xs:annotation> - <xs:documentation> Type of the instance, for example: article, thesis, etc. - <p>For allowed values check: http://api.openaire.eu/vocabularies/dnet:publication_resource - </p> - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="collectedfrom" type="namedIdElementType" maxOccurs="1"> - <xs:annotation> - <xs:documentation>Datasource from which OpenAIRE collected the description of this instance.</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="hostedby" type="namedIdElementType" maxOccurs="1"> - <xs:annotation> - <xs:documentation>Datasource hosting this file. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="webresource" type="webresourceType" minOccurs="1" - maxOccurs="unbounded"/> - <xs:element name="distributionlocation" type="xs:string" minOccurs="0"/> - <xs:element name="dateofacceptance" type="xs:string" minOccurs="0"/> - <xs:element name="processingchargeamount" type="fieldType"> - <xs:annotation> - <xs:documentation> Article/Book Processing Charge </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="processingchargecurrency" type="fieldType"> - <xs:annotation> - <xs:documentation>Currency for the value in processingchargeamount </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="refereed" type="fieldType"> - <xs:annotation> - <xs:documentation>Peer-review status</xs:documentation> - </xs:annotation> - </xs:element> - </xs:choice> - <xs:attribute name="id" use="required"/> - </xs:complexType> - - <xs:complexType name="webresourceType"> - <xs:sequence> - <xs:element name="url" type="xs:string" minOccurs="1" maxOccurs="1"/> - </xs:sequence> - </xs:complexType> - -</xs:schema> diff --git a/pom.xml b/pom.xml index aac3292f6564bc63a96c0d51b70fa5dbaa449379..89ea557d11e0d9421a5d6780b3a68572dc925ce4 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>info.textgrid.middleware</groupId> <artifactId>oaipmh</artifactId> @@ -23,8 +25,8 @@ <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version> <maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version> - <maven-jaxb2-plugin.version>0.14.0</maven-jaxb2-plugin.version> - <mets-mods-mapping.version>2.1.3</mets-mods-mapping.version> + <maven-jaxb2-plugin.version>0.15.2</maven-jaxb2-plugin.version> + <mets-mods-mapping.version>2.1.4</mets-mods-mapping.version> <package-info-maven-plugin.version>1.4.5</package-info-maven-plugin.version> <properties-maven-plugin.version>1.0-alpha-2</properties-maven-plugin.version> <rdf4j-repository-api.version>3.0.2</rdf4j-repository-api.version>