#include "rfc1807.h"
rfc1807::rfc1807() : metaformat(){
// These element names taken from the schema
// http://www.openarchives.org/OAI/1.1/rfc1807.xsd
elementSet.insert("bib-version");
elementSet.insert("id");
elementSet.insert("entry");
elementSet.insert("organization");
elementSet.insert("title");
elementSet.insert("type");
elementSet.insert("revision");
elementSet.insert("withdraw");
elementSet.insert("author");
elementSet.insert("corp-author");
elementSet.insert("contact");
elementSet.insert("date");
elementSet.insert("pages");
elementSet.insert("copyright");
elementSet.insert("handle");
elementSet.insert("other_access");
elementSet.insert("retrieval");
elementSet.insert("keyword");
elementSet.insert("cr-category");
elementSet.insert("period");
elementSet.insert("series");
elementSet.insert("monitoring");
elementSet.insert("funding");
elementSet.insert("contract");
elementSet.insert("grant");
elementSet.insert("language");
elementSet.insert("notes");
elementSet.insert("abstract");
};
const text_t rfc1807::formatName()
{
return "rfc1807";
}
const text_t rfc1807::formatPrefix() {
return "rfc1807";
}
bool rfc1807::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 rfc1807::output_metadata_header(ostream &output)
{
output << "\n";
if(this->oaiConfigure->getOAIVersion() <= 110){
// output rfc1807 wrapper for OAI v1.1
output << "" << endl;
}
else {
// TODO: output rfc1807 wrapper for OAI v2.0
output << "" << endl;
}
}
void rfc1807::output_metadata_footer(ostream &output)
{
// end rfc1807 wrapper
output << "" << endl;
output << "\n";
}
bool rfc1807::output_formatdata(ostream &output)
{
// Both versions of the protocol use the same schema (yes?)
output << " rfc1807" << endl;
output << " http://www.openarchives.org/OAI/1.1/rfc1807.xsd" << endl;
// Correct namespace for rfc1807 according to OAI documentation, even though this link seems to be broken
output << " http://info.internet.isi.edu/in-notes/rfc/files/rfc1807.txt" << endl;
return true;
}