Hi Tim,
I think I skipped a few steps in my previous explanations... - the explicit reference to dcterms:location is now coming from a custom addition to tdwg_dwc_classes.xsd. If this wasn't there, dcterms:location wouldn't be defined at all in the schema, thus making the samples shown in section 2.7.1 of https://dwc.tdwg.org/xml/ invalid. The goal was to make "location" mandatory in the Darwin Core description (among a few other classes). I added the following to the xs:sequence definition of the Darwin Record Set.
<xs:element ref="dcterms:location" minOccurs="1"/> <xs:element ref="dwc:Occurrence" minOccurs="1"/> <xs:element ref="dwc:Identification" minOccurs="1"/> <xs:element ref="dwc:Taxon" minOccurs="1"/>
All of these (including a commented out dcterms:location) are defined in tdwg_dwc_class_terms.xsd, and the dcterms:location comment says "see dublin_core.xsd for definition". As we have now both observed, dublin_core.xsd used to exist, but has now been removed... the commented out code would seem to define dcterms:location in the same structure as the other dwc classes from tdwg_dwc_class_terms.xsd, and seems to be exactly what I would need - except, if the Darwin Core XML guide is all valid, I would be making 'custom classes and terms' for my Darwin Core plugin, which breaks interoperability.
Kim
________________________________ From: Tim Robertson trobertson@gbif.org Sent: 12 December 2018 16:05:56 To: Kim Mortimer; tdwg-content@lists.tdwg.org; John Wieczorek; Peter Desmet Subject: Re: [tdwg-content] Darwin Core and dcterms:location
Hi Kim,
(moving our private discussion onto this list)
Thanks for the links.
As far as I can see the “custom” dublin_core.xsd existed in all DwC releases from 2009 up until 2013-10-23 where it was removed.
In that removal, the references to the location were also commented out (I presume meaning the modified XSD was no longer needed) though.
For you to still find references to it suggests you might be using an older version of the Darwin Core XSD – is that possible?
John / Peter: Do you recall why it was removed?
To save searching, the modification to the DC xsd appeared to contain only the following:
<!-- SAMPLING LOCATION domain -->
<xs:element name="Location" substitutionGroup="dwc:anyClass">
<xs:choice maxOccurs="unbounded">
<xs:element ref="dwc:anyIdentifier"/>
<xs:element ref="dwc:anyLocationTerm"/>
<xs:element ref="dwc:anyRecordLevelTerm"/>
</xs:choice>
</xs:complexType>
</xs:element>
The commented out reference in the DwC xsd:
<!-- LOCATION domain --><!-- reuses the dcterms:location term, so see dublin_core.xsd for definition --><!--<xs:element name="Location" substitutionGroup="dwc:anyClass"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="dwc:anyIdentifier"/> <xs:element ref="dwc:anyLocationTerm"/> <xs:element ref="dwc:anyRecordLevelTerm"/> </xs:choice> </xs:complexType> </xs:element>-->
(see https://dwc.tdwg.org/xml/tdwg_dwc_class_terms.xsd)
From: tdwg-content tdwg-content-bounces@lists.tdwg.org on behalf of Kim Mortimer K.Mortimer@dal.ca Date: Wednesday, 12 December 2018 at 20.34 To: "tdwg-content@lists.tdwg.org" tdwg-content@lists.tdwg.org Subject: Re: [tdwg-content] Darwin Core and dcterms:location
To the TDWG mailing list and whomever it may concern,
Darwin Core uses a Dublin Core element, dcterms:location, in its definition of classes and elements. However, no current XSD files for Dublin Core (that I can find) define location as an element. For reference, the current Dublin Core XSD files that I am familiar with are available at http://dublincore.org/schemas/xmls/qdc/ Given that dcterms:location is therefore an undefined element, the Darwin Core XML is invalid.
This is important to me, and my employer MERIDIAN, because we are implementing Darwin Core in a GeoNetwork metadata schema plugin for our repository. To allow other documents to be validated against our schema within GeoNetwork, the entire plugin XML (which for us includes the Darwin Core XML) must be valid. I previously sent an email about this in September but did not receive any useful advice at the time. Development on our metadata repository has progressed without this element since then, as we have been tracking down other errors in GeoNetwork, but this is the current 'blocking' problem for us.
The Darwin Core XSD files reference a dublin_core.xsd in their comments, which is said to contain dcterms:location. My best guess at what this refers to is https://github.com/tdwg/dwc/blob/2011-10-26/xsd/dublin_core.xsd - which is from a previous version of Darwin Core, and appears to be a custom version of http://dublincore.org/schemas/xmls/qdc/2008/02/11/dcterms.xsd - so it unclear whether this is correct or not.
Given that TDWG is responsible for Darwin Core, I am hopeful that someone will have a tip or solution. My alternative is to define dcterms:location myself as a custom insertion into Dublin Core, but based on the comments in Darwin Core files I believe some suitable XSD must exist.
Thank you very much for your time,
Kim Mortimer
[mage removed by sender. MERIDIAN on blue circle containing many numbers,]
Kim Mortimer
Data Manager
MERIDIAN - Marine Environmental Research Infrastructure for Data Integration and Application Network
Institute for Big Data Analytics, Faculty of Computer Sciences, Dalhousie University
p: + 1 902 494 1812 m: +1 902 880 1863
a: 6050 University Ave, Halifax, NS, B3H 4R2, Canada
w: https://meridian.cs.dal.ca e: k.mortimer@dal.camailto:k.mortimer@dal.ca