From 0380bb928280f752e554b58c4a737cbe9a61f366 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Thu, 29 Mar 2012 13:27:13 +0400 Subject: [PATCH] IDEA-70554 HTML tags not allowed for XHTML Mobile 1.2 contexts for recursive entity resolving --- .../intellij/javaee/InternalResourceProvider.java | 2 ++ .../psi/impl/source/xml/XmlEntityDeclImpl.java | 3 ++- xml/impl/src/com/intellij/xml/util/XmlUtil.java | 12 ++++-------- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/xml/impl/src/com/intellij/javaee/InternalResourceProvider.java b/xml/impl/src/com/intellij/javaee/InternalResourceProvider.java index 9c5a4d4ee306..8706f9f0b8a2 100644 --- a/xml/impl/src/com/intellij/javaee/InternalResourceProvider.java +++ b/xml/impl/src/com/intellij/javaee/InternalResourceProvider.java @@ -55,6 +55,8 @@ public class InternalResourceProvider implements StandardResourceProvider{ impl.addInternalResource("http://www.wapforum.org/DTD/xhtml-mobile10-flat.dtd", "xhtml-mobile/xhtml-mobile10-flat.dtd"); impl.addInternalResource("http://www.wapforum.org/DTD/xhtml-mobile12.dtd", "xhtml-mobile/xhtml-mobile12.dtd"); + impl.addInternalResource("http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd", "xhtml-mobile/xhtml-mobile12.dtd"); + // svg and mathML impl.addIgnoredResource(HtmlUtil.MATH_ML_NAMESPACE); impl.addIgnoredResource(HtmlUtil.SVG_NAMESPACE); diff --git a/xml/impl/src/com/intellij/psi/impl/source/xml/XmlEntityDeclImpl.java b/xml/impl/src/com/intellij/psi/impl/source/xml/XmlEntityDeclImpl.java index c64803b27d2e..a87b5905ddf5 100644 --- a/xml/impl/src/com/intellij/psi/impl/source/xml/XmlEntityDeclImpl.java +++ b/xml/impl/src/com/intellij/psi/impl/source/xml/XmlEntityDeclImpl.java @@ -105,7 +105,8 @@ public class XmlEntityDeclImpl extends XmlElementImpl implements XmlEntityDecl, } public PsiElement parse(PsiFile baseFile, int context, final XmlEntityRef originalElement) { - PsiElement dependsOnElement = getValueElement(baseFile); + PsiElement dep = XmlElement.DEPENDING_ELEMENT.get(getParent()); + PsiElement dependsOnElement = getValueElement(dep instanceof PsiFile ? (PsiFile)dep : baseFile); String value = null; if (dependsOnElement instanceof XmlAttributeValue) { XmlAttributeValue attributeValue = (XmlAttributeValue)dependsOnElement; diff --git a/xml/impl/src/com/intellij/xml/util/XmlUtil.java b/xml/impl/src/com/intellij/xml/util/XmlUtil.java index 04d5d4d73ed4..da8f6f012152 100644 --- a/xml/impl/src/com/intellij/xml/util/XmlUtil.java +++ b/xml/impl/src/com/intellij/xml/util/XmlUtil.java @@ -55,7 +55,10 @@ import com.intellij.psi.impl.source.xml.XmlEntityRefImpl; import com.intellij.psi.scope.processor.FilterElementProcessor; import com.intellij.psi.search.PsiElementProcessor; import com.intellij.psi.tree.IElementType; -import com.intellij.psi.util.*; +import com.intellij.psi.util.CachedValue; +import com.intellij.psi.util.CachedValueProvider; +import com.intellij.psi.util.CachedValuesManager; +import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.xml.*; import com.intellij.util.*; import com.intellij.util.containers.ContainerUtil; @@ -632,14 +635,7 @@ public class XmlUtil { if (element instanceof XmlEntityRef) { XmlEntityRef ref = (XmlEntityRef)element; - //if ("Number.datatype".equals(ref.getText().substring(1, ref.getTextLength() - 1))) { - // int a = 1; - //} PsiElement newElement = parseEntityRef(targetFile, ref, true); - //if (newElement == null) { - // System.out.println("No image for :" + ref.getText()); - // return true; - //} while (newElement != null) { if (!processElement(newElement, deepFlag, wideFlag, processIncludes)) return false;