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