@Override
  public @Nullable List<String> getUrlFor(PsiElement psiElement, PsiElement psiElement1) {
    if (psiElement instanceof XsltElement) {
      return null;
    }

    final String category;
    final String name;
    final String tagName = getTagName(psiElement);
    if (tagName != null) {
      name = tagName;
      category = "element";
    }
    else if (psiElement instanceof XPathFunction) {
      name = ((XPathFunction)psiElement).getName();
      category = "function";
    }
    else if (psiElement instanceof DocElement) {
      name = ((DocElement)psiElement).getName();
      category = ((DocElement)psiElement).getCategory();
    }
    else {
      return null;
    }

    try {
      Element element = JDOMUtil.load(documentSupplier.get());
      Element e = XPathFactory.instance()
        .compile("//x:" + category + "[@name = '" + name + "']", Filters.element(), null, Namespace.getNamespace("x", element.getNamespaceURI()))
        .evaluateFirst(element);
      if (e != null) {
        return Collections.singletonList(e.getParentElement().getAttributeValue("base") + e.getAttributeValue("href"));
      }
    }
    catch (Exception e) {
      Logger.getInstance(getClass().getName()).error(e);
    }
    return null;
  }
@Override
  public @Nullable List<String> getUrlFor(PsiElement psiElement, PsiElement psiElement1)