+def qdc_writer(element, metadata):
+    """FBC notified us that original writer does not output all necessary namespace declarations.
+    """
+    nsmap={'oai_dc': NS_OAIDC, 'dc': NS_DC, 'xsi': NS_XSI, 'dcterms': NS_DCTERMS}
+    map = metadata.getMap()
+    for name in [
+        'title', 'creator', 'subject', 'description', 'publisher',
+        'contributor', 'date', 'type', 'format', 'identifier',
+        'source', 'language', 'relation', 'coverage', 'rights',
+        ]:
+        for value in map.get(name, []):
+            e = SubElement(element, nsdc(name), nsmap=nsmap)
+            e.text = value
+
+    for name in ['hasPart', 'isPartOf']:
+        for value in map.get(name, []):
+            print "%s %s" % (name, value)
+            e = SubElement(element, nsdcterms(name), nsmap=nsmap)
+            e.text = value
+
+
+