XmlAttributeDescriptor[] (final XmlTag declarationTag, XmlAttributeDescriptor[] descriptors, final XmlAttribute context) { if (declarationTag instanceof HtmlTag) { descriptors = ArrayUtil.mergeArrays( descriptors, getCustomAttributeDescriptors(context) ); return descriptors; } boolean isJsfHtmlNamespace = false; for (String jsfHtmlUri : XmlUtil.JSF_HTML_URIS) { if (declarationTag.getPrefixByNamespace(jsfHtmlUri) != null) { isJsfHtmlNamespace = true; break; } } if (isJsfHtmlNamespace && declarationTag.getNSDescriptor(XmlUtil.XHTML_URI, true) != null && !XmlUtil.JSP_URI.equals(declarationTag.getNamespace())) { descriptors = ArrayUtil.append( descriptors, new XmlAttributeDescriptorImpl() { @Override public String getName(PsiElement context) { return JSFC; } @Override public String getName() { return JSFC; } }, XmlAttributeDescriptor.class ); } return descriptors; }