docs: def parse(self, xmp):
          """Run parser and return a dictionary of all the parsed metadata."""
          tree = etree.fromstring(xmp)
          rdf_tree = tree.find(RDF_NS + 'RDF')
          meta = defaultdict(dict)
          for desc in rdf_tree.findall(RDF_NS + 'Description'):
              for el in desc.getchildren():
                  ns, tag = self._parse_tag(el)
                  value = self._parse_value(el)
                  meta[ns][tag] = value
          return dict(meta)