@Override
  public @Nullable XmlElementDescriptor getDescriptor(final XmlTag tag) {
    Project project = tag.getProject();
    if (project.isDefault()) return null;
    
    final DomInvocationHandler handler = DomManagerImpl.getDomManager(project).getDomHandler(tag);
    if (handler != null) {
      final DefinesXml definesXml = handler.getAnnotation(DefinesXml.class);
      if (definesXml != null) {
        return new DomElementXmlDescriptor(handler);
      }
      final PsiElement parent = tag.getParent();
      if (parent instanceof XmlTag) {
        final XmlElementDescriptor descriptor = ((XmlTag)parent).getDescriptor();

        if (descriptor instanceof DomElementXmlDescriptor) {
          return descriptor.getElementDescriptor(tag, (XmlTag)parent);
        }
      }
    }

    return null;
  }
@Override
  public @Nullable XmlElementDescriptor getDescriptor(final XmlTag tag)