boolean (XmlElement context, PairProcessor<? super PsiElement, ? super String> processor, boolean forCompletion) { if (getDeclaration() == null) return false; XmlTag contextTag = context != null ? PsiTreeUtil.getContextOfType(context, XmlTag.class, false) : null; final XmlElementDescriptorImpl elementDescriptor = (XmlElementDescriptorImpl)XmlUtil.findXmlDescriptorByType(getDeclaration(), contextTag); if (elementDescriptor!=null && elementDescriptor.getType() instanceof ComplexTypeDescriptor) { TypeDescriptor type = elementDescriptor.getType(); return processEnumerationImpl(type.getDeclaration(), (ComplexTypeDescriptor)type, processor, forCompletion); } final String namespacePrefix = getDeclaration().getNamespacePrefix(); XmlTag type = getDeclaration().findFirstSubTag( ((namespacePrefix.length() > 0) ? namespacePrefix + ":" : "") + "simpleType" ); if (type != null) { return processEnumerationImpl(type, null, processor, forCompletion); } return false; }