code: def get_resource_xml_name(self, r_id, package=None):
          
          if package:
              resource, name, i_id = self.get_id(package, r_id)
              if not i_id:
                  return None
              return "@{}/{}".format(resource, name)
          else:
              for p in self.get_packages_names():
                  r, n, i_id = self.get_id(p, r_id)
                  if i_id:
                      # found the resource in this package
                      package = p
                      resource = r
                      name = n
                      break
              if not package:
                  return None
              else:
                  return "@{}:{}/{}".format(package, resource, name)
docs: Returns the XML name for a resource, including the package name if package is None.
          A full name might look like `@com.example:string/foobar`
          Otherwise the name is only looked up in the specified package and is returned without
          the package name.
          The same example from about without the package name will read as `@string/foobar`.
  
          If the ID could not be found, `None` is returned.
  
          A description of the XML name can be found here:
          https://developer.android.com/guide/topics/resources/providing-resources#ResourcesFromXml
  
          :param r_id: numerical ID if the resource
          :param package: package name
          :return: XML name identifier