'dct_bibliographicCitation': ('textList', 'nsdl_dc:nsdl_dc/dct:bibliographicCitation/text()'), 'dct_instructionalMethod': ('textList', 'nsdl_dc:nsdl_dc/dct:instructionalMethod/text()'), 'dct_provenance': ('textList', 'nsdl_dc:nsdl_dc/dct:provenance/text()'), 'dct_accrualMethod': ('textList', 'nsdl_dc:nsdl_dc/dct:accrualMethod/text()'), 'dct_accrualPeriodicity': ('textList', 'nsdl_dc:nsdl_dc/dct:accrualPeriodicity/text()'), 'dct_accrualPolicy': ('textList', 'nsdl_dc:nsdl_dc/dct:accrualPolicy/text()'), }, namespaces={ 'nsdl_dc': 'http://ns.nsdl.org/nsdl_dc_v1.02/', 'dc' : 'http://purl.org/dc/elements/1.1/', 'dct' : 'http://purl.org/dc/terms/', 'ieee' : 'http://www.ieee.org/xsd/LOMv1p0'} ) global_metadata_registry.registerReader('nsdl_dc', nsdl_dc_reader) global_metadata_registry.registerReader('nsdl_dc_1_02', nsdl_dc_reader) class NSDLDublinCore(MetadataFormat): header = ( 'OAI_IDENTIFIER', 'DC_TITLE', 'DCT_ALTERNATIVE', 'DC_IDENTIFIER', 'DC_SUBJECT', 'DCT_EDUCATIONLEVEL', 'DCT_AUDIENCE', 'DCT_MEDIATOR', 'DC_DESCRIPTION',
data["type"] = metadata_map.get('type',[]) data["format"] = metadata_map.get('format',[]) data["identifier"] = metadata_map.get('identifier',[]) data["source"] = metadata_map.get('source',[]) data["language"] = metadata_map.get('language',[]) data["relation"] = metadata_map.get('relation',[]) data["coverage"] = metadata_map.get('coverage',[]) data["rights"] = metadata_map.get('rights',[]) return ( data["oai_identifier"], u"|".join(data["title"]).encode('utf-8'), u"|".join(data["creator"]).encode('utf-8'), u"|".join(data["subject"]).encode('utf-8'), u"|".join(data["description"]).encode('utf-8'), u"|".join(data["publisher"]).encode('utf-8'), u"|".join(data["contributor"]).encode('utf-8'), u"|".join(data["date"]).encode('utf-8'), u"|".join(data["type"]).encode('utf-8'), u"|".join(data["format"]).encode('utf-8'), u"|".join(data["identifier"]).encode('utf-8'), u"|".join(data["source"]).encode('utf-8'), u"|".join(data["language"]).encode('utf-8'), u"|".join(data["relation"]).encode('utf-8'), u"|".join(data["coverage"]).encode('utf-8'), u"|".join(data["rights"]).encode('utf-8') ) global_metadata_registry.registerReader('oai_dc', oai_dc_reader)
ims1_2_1_reader = MetadataReader( fields={ "general": ("IMS:General", "ims1_2_1:lom/ims1_2_1:general"), "lifeCycle": ("IMS:LifeCycle", "ims1_2_1:lom/ims1_2_1:lifecycle"), "metaMetadata": ("IMS:MetaMetadata", "ims1_2_1:lom/ims1_2_1:metaMetadata"), "technical": ("IMS:Technical", "ims1_2_1:lom/ims1_2_1:technical"), "educational": ("IMS:EducationalList", "ims1_2_1:lom/ims1_2_1:educational"), "rights": ("IMS:Rights", "ims1_2_1:lom/ims1_2_1:rights"), "relation": ("IMS:RelationList", "ims1_2_1:lom/ims1_2_1:relation"), "annotation": ("IMS:AnnotationList", "ims1_2_1:lom/ims1_2_1:annotation"), "classification": ("IMS:ClassificationList", "ims1_2_1:lom/ims1_2_1:classification"), }, namespaces={"ims1_2_1": "http://www.imsglobal.org/xsd/imsmd_v1p2"}, ) global_metadata_registry.registerReader("ims1_2_1", ims1_2_1_reader) def extractLangString(lang_string): if not lang_string: return "" if "en" in lang_string: value = lang_string["en"] else: value = lang_string.values()[0] if value is None: return "" return value def extractCreateDate(lifeCycle):
'lifeCycle': ('LOM:LifeCycle', 'lom:lom/lom:lifeCycle'), 'metaMetadata': ('LOM:MetaMetadata', 'lom:lom/lom:metaMetadata'), 'technical': ('LOM:Technical', 'lom:lom/lom:technical'), 'educational': ('LOM:EducationalList', 'lom:lom/lom:educational'), 'rights': ('LOM:Rights', 'lom:lom/lom:rights'), 'relation': ('LOM:RelationList', 'lom:lom/lom:relation'), 'annotation': ('LOM:AnnotationList', 'lom:lom/lom:annotation'), 'classification': ('LOM:ClassificationList', 'lom:lom/lom:classification'), }, namespaces={ 'lom': 'http://ltsc.ieee.org/xsd/LOM', } ) global_metadata_registry.registerReader('oai_lom', oai_lom_reader) global_metadata_registry.registerReader('LREv3.0', oai_lom_reader) global_metadata_registry.registerReader('oai_lre3', oai_lom_reader) global_metadata_registry.registerReader('oai_oer2', oai_lom_reader) def extractLangString(lang_string): if not lang_string: return '' if 'en' in lang_string: value = lang_string['en'] else: value = lang_string.values()[0] if value is None: return '' return value