def _parse_element(self, element):

        element_name = self._get_tag_name(element)

        parser = {"documentation": self._parse_documentation,
                  "property": self._parse_property,
                  "contributor": self._parse_contributor,
                  "geospatialCoverage": self._parse_geospatial_coverage,
                  "serviceName": self._parse_service_name,
                  "authority": self._parse_authority,
                  "publisher": self._parse_publisher,
                  "creator": self._parse_creator,
                  "keyword": self._parse_keyword,
                  "project": self._parse_project,
                  "dataFormat": self._parse_data_format,
                  "dataType": self._parse_data_type,
                  "date": self._parse_date,
                  "timeCoverage": self._parse_timeCoverage,
                  "variableMap": self._parse_variableMap,
                  "variables": self._parse_variables}

        try:
            parser[element_name](element)
        except __HOLE__:
            log.error("No parser found for element %s", element_name)
            raise
dataset/ETHPy150Open Unidata/siphon/siphon/metadata.py/TDSCatalogMetadata._parse_element