@Override public void visitXmlAttribute(@NotNull XmlAttribute attribute) {
    final XmlAttribute another = (XmlAttribute)myMatchingVisitor.getElement();
    myMatchingVisitor.getMatchContext().pushResult();
    final XmlElement name = attribute.getNameElement();
    final boolean isTypedVar = myMatchingVisitor.getMatchContext().getPattern().isTypedVar(name);
    try {
      if (!myMatchingVisitor.setResult(isTypedVar || myMatchingVisitor.matchText(name, another.getNameElement()))) return;
      final XmlAttributeValue valueElement = attribute.getValueElement();
      myMatchingVisitor.setResult(valueElement == null || myMatchingVisitor.matchOptionally(valueElement, another.getValueElement()));
    } finally {
      myMatchingVisitor.scopeMatch(name, isTypedVar, another);
    }
  }
@Override public void visitXmlAttribute(@NotNull XmlAttribute attribute)