docs: def get_element_id(element):
          """
          Returns the ID of an element (or, if the element doesn't have one:
          the ID of its parent). Returns an error, if both elements have no ID.
          """
          id_attrib_key = add_ns('id')
          if id_attrib_key in element.attrib:
              return element.attrib[id_attrib_key]
          try:
              return element.getparent().attrib[id_attrib_key]
          except KeyError as e:
              raise KeyError(
                  'Neither the element "{0}" nor its parent "{1}" '
                  'have an ID'.format(element, element.getparent()))