docs: def get_uri(self, uri, reference):
          """
          It returns the node of the specified URI
          :param uri: uri of the 
          :type uri: str
          :param reference: Reference node
          :type reference: etree.lxml.Element
          :return: Element of the URI in a String
          """
          if uri == "":
              return self.canonicalization(
                  constants.TransformInclC14N, reference.getroottree()
              )
          if uri.startswith("#"):
              query = "//*[@*[local-name() = '{}' ]=$uri]"
              node = reference.getroottree()
              results = self.check_uri_attr(node, query, uri, constants.ID_ATTR)
              if len(results) == 0:
                  results = self.check_uri_attr(node, query, uri, 'ID')
              if len(results) == 0:
                  results = self.check_uri_attr(node, query, uri, 'Id')
              if len(results) == 0:
                  results = self.check_uri_attr(node, query, uri, 'id')
              if len(results) > 1:
                  raise Exception(
                      "Ambiguous reference URI {} resolved to {} nodes".format(
                          uri, len(results)))
              elif len(results) == 1:
                  return self.canonicalization(
                      constants.TransformInclC14N, results[0]
                  )
          raise Exception('URI "' + uri + '" cannot be readed')