def read_xml(self): """ read metadata from xml and set all the found properties. :return: the root element of the xml :rtype: ElementTree.Element """ if self.xml_uri is None: root = self._read_xml_db() else: root = self._read_xml_file() if root is not None: for name, path in self._standard_properties.iteritems(): value = read_property_from_xml(root, path) if value is not None: # this calls the default setters setattr(self, name, value) return root