diff --git a/source/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java b/source/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java index d4f6ebccc3a9..cd06ca6d9408 100644 --- a/source/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java +++ b/source/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java @@ -583,6 +583,8 @@ public class XmlHighlightVisitor extends PsiElementVisitor implements Validator. String location = attribute.getValue(); if (attribute.getLocalName().equals("noNamespaceSchemaLocation")) { + if(ExternalResourceManagerEx.getInstanceEx().isIgnoredResource(location)) return; + if(XmlUtil.findXmlFile(attribute.getContainingFile(),location) == null) { final int start = attribute.getValueElement().getTextOffset(); reportURIProblem(start,start + location.length()); @@ -592,11 +594,11 @@ public class XmlHighlightVisitor extends PsiElementVisitor implements Validator. XmlFile file = null; while(tokenizer.hasMoreElements()) { - String namespace = tokenizer.nextToken(); // skip namespace + tokenizer.nextToken(); // skip namespace if (!tokenizer.hasMoreElements()) return; String url = tokenizer.nextToken(); - if(ExternalResourceManagerEx.getInstanceEx().isIgnoredResource(namespace)) continue; + if(ExternalResourceManagerEx.getInstanceEx().isIgnoredResource(url)) continue; if (file == null) { file = (XmlFile)attribute.getContainingFile(); } diff --git a/source/com/intellij/codeInsight/daemon/impl/quickfix/FetchExtResourceAction.java b/source/com/intellij/codeInsight/daemon/impl/quickfix/FetchExtResourceAction.java index 5c939455b290..f9a334889bf3 100644 --- a/source/com/intellij/codeInsight/daemon/impl/quickfix/FetchExtResourceAction.java +++ b/source/com/intellij/codeInsight/daemon/impl/quickfix/FetchExtResourceAction.java @@ -59,7 +59,7 @@ public class FetchExtResourceAction extends BaseIntentionAction { return "Fetch External Resource"; } - private String findUri(PsiFile file, int offset) { + static String findUri(PsiFile file, int offset) { final PsiElement currentElement = file.findElementAt(offset); PsiElement element = PsiTreeUtil.getParentOfType(currentElement, XmlDoctype.class); if (element != null) { diff --git a/source/com/intellij/codeInsight/daemon/impl/quickfix/IgnoreExtResourceAction.java b/source/com/intellij/codeInsight/daemon/impl/quickfix/IgnoreExtResourceAction.java index ad7f5922bdbc..72033f48ed03 100644 --- a/source/com/intellij/codeInsight/daemon/impl/quickfix/IgnoreExtResourceAction.java +++ b/source/com/intellij/codeInsight/daemon/impl/quickfix/IgnoreExtResourceAction.java @@ -5,13 +5,8 @@ import com.intellij.j2ee.openapi.ex.ExternalResourceManagerEx; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiDocumentManager; -import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; -import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.psi.xml.XmlAttribute; -import com.intellij.psi.xml.XmlDoctype; import com.intellij.psi.xml.XmlFile; -import com.intellij.psi.xml.XmlTag; import com.intellij.xml.util.XmlUtil; /** @@ -22,7 +17,7 @@ public class IgnoreExtResourceAction extends BaseIntentionAction { if (!(file instanceof XmlFile)) return false; int offset = editor.getCaretModel().getOffset(); - String uri = findUri(file, offset); + String uri = FetchExtResourceAction.findUri(file, offset); if (uri == null) return false; @@ -39,31 +34,12 @@ public class IgnoreExtResourceAction extends BaseIntentionAction { return "Ignore External Resource"; } - - private String findUri(PsiFile file, int offset) { - final PsiElement currentElement = file.findElementAt(offset); - PsiElement element = PsiTreeUtil.getParentOfType(currentElement, XmlDoctype.class); - if (element != null) { - return ((XmlDoctype)element).getDtdUri(); - } - - final XmlAttribute attribute = PsiTreeUtil.getParentOfType(currentElement, XmlAttribute.class); - if(attribute != null && attribute.isNamespaceDeclaration()){ - final String uri = attribute.getValue(); - final PsiElement parent = attribute.getParent(); - if(uri != null && parent instanceof XmlTag && ((XmlTag)parent).getNSDescriptor(uri, true) == null){ - return uri; - } - } - return null; - } - public void invoke(final Project project, final Editor editor, PsiFile file) { int offset = editor.getCaretModel().getOffset(); PsiDocumentManager.getInstance(project).commitAllDocuments(); - final String uri = findUri(file, offset); + final String uri = FetchExtResourceAction.findUri(file, offset); if (uri == null) return; ExternalResourceManagerEx.getInstanceEx().addIgnoredResource(uri);