String[] (@NotNull XmlTag tag) { final XmlAttribute typeAttribute = tag.getAttribute(ITEM_TYPE); if (typeAttribute != null) { final XmlAttributeValue valueElement = typeAttribute.getValueElement(); final PsiReference[] references = valueElement != null ? valueElement.getReferences() : PsiReference.EMPTY_ARRAY; List<String> result = new ArrayList<>(); for (PsiReference reference : references) { final PsiElement target = reference != null ? reference.resolve() : null; if (target instanceof PsiFile) { result.addAll(extractProperties((PsiFile)target, StringUtil.unquoteString(reference.getCanonicalText()))); } } return ArrayUtilRt.toStringArray(result); } return ArrayUtilRt.EMPTY_STRING_ARRAY; }