#include "dublincore.h"
dublin_core::dublin_core() : metaformat() {
// These element names taken from the schema
// http://www.openarchives.org/OAI/2.0/oai_dc.xsd
elementSet.insert("contributor");
elementSet.insert("coverage");
elementSet.insert("creator");
elementSet.insert("date");
elementSet.insert("description");
elementSet.insert("format");
elementSet.insert("identifier");
elementSet.insert("language");
elementSet.insert("publisher");
elementSet.insert("relation");
elementSet.insert("rights");
elementSet.insert("source");
elementSet.insert("subject");
elementSet.insert("title");
elementSet.insert("type");
}
const text_t dublin_core::formatName() {
return "oai_dc";
}
const text_t dublin_core::formatPrefix() {
return "dc";
}
bool dublin_core::output_record(ostream &output, recptproto *protocol, const text_t &collection,
const text_t &record_OID)
{
return metaformat::output_record(output, protocol, collection, record_OID);
}
void dublin_core::output_metadata_header(ostream &output)
{
output << " \n";
if (this->oaiConfigure->getOAIVersion() <= 110){
// output dublin core wrapper for OAI v1.1
output << " \n";
}
else {
output << " \n";
}
}
void dublin_core::output_metadata_footer(ostream &output)
{
if (this->oaiConfigure->getOAIVersion() <= 110) {
output << " " << endl;
}
else {
output << " " << endl;
}
output << " " << endl;
output.flush();
}
bool dublin_core::output_formatdata(ostream &output)
{
output << " oai_dc" << endl;
if (this->oaiConfigure->getOAIVersion() <= 110) {
output << " http://www.openarchives.org/OAI/1.1/dc.xsd" << endl
<< " http://purl.org/dc/elements/1.1/" << endl;
}
else {
output << " http://www.openarchives.org/OAI/2.0/oai_dc.xsd" << endl
<< " http://www.openarchives.org/OAI/2.0/oai_dc/"
<< endl;
}
return true;
}