#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; }