ASSIGNED - bug 230136: [xslt][editor] Content Assistance for exclude-result-prefix
https://bugs.eclipse.org/bugs/show_bug.cgi?id=230136
diff --git a/bundles/org.eclipse.wst.xsl.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.xsl.ui/.settings/org.eclipse.jdt.core.prefs
index 9a93417..7022328 100644
--- a/bundles/org.eclipse.wst.xsl.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.wst.xsl.ui/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Thu Mar 20 20:08:20 GMT-05:00 2008
+#Fri Sep 05 23:58:31 GMT 2008
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
@@ -8,13 +8,34 @@
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
@@ -22,4 +43,42 @@
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.source=1.5
diff --git a/bundles/org.eclipse.wst.xsl.ui/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.xsl.ui/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..ade4019
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.ui/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,22 @@
+#Fri Sep 05 23:58:31 GMT 2008
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=1
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/AbstractXSLContentAssistRequest.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/AbstractXSLContentAssistRequest.java
new file mode 100644
index 0000000..ea70f82
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/AbstractXSLContentAssistRequest.java
@@ -0,0 +1,88 @@
+package org.eclipse.wst.xsl.ui.internal.contentassist;
+
+import java.util.Collection;
+
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
+import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceTable;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public abstract class AbstractXSLContentAssistRequest extends
+ ContentAssistRequest {
+
+ protected ITextViewer textViewer = null;
+
+ /**
+ * @param node
+ * @param parent
+ * @param documentRegion
+ * @param completionRegion
+ * @param begin
+ * @param length
+ * @param filter
+ * @deprecated
+ */
+ public AbstractXSLContentAssistRequest(Node node, Node parent,
+ IStructuredDocumentRegion documentRegion,
+ ITextRegion completionRegion, int begin, int length, String filter) {
+ super(node, parent, documentRegion, completionRegion, begin, length, filter);
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * Handles Content Assistance requests for Select Attributes. This is called an instantiated
+ * through the use of the computeProposals method from the XSLContentAssistProcessor. It will
+ * calculate the available proposals that are available for the XSL select attribute.
+ *
+ * @param node
+ * @param parent
+ * @param documentRegion
+ * @param completionRegion
+ * @param begin
+ * @param length
+ * @param filter
+ * @param textViewer
+ */
+
+ public AbstractXSLContentAssistRequest(Node node, Node parent,
+ IStructuredDocumentRegion documentRegion,
+ ITextRegion completionRegion, int begin, int length, String filter,
+ ITextViewer textViewer) {
+ super(node, parent, documentRegion, completionRegion, begin, length, filter);
+ this.textViewer = textViewer;
+ }
+
+ /**
+ * Checks to make sure that the NodeList has data
+ * @param nodes A NodeList object
+ * @return True if has data, false if empty
+ */
+ protected boolean hasNodes(NodeList nodes) {
+ return nodes != null && nodes.getLength() > 0;
+ }
+
+ /**
+ * Get the cursor position within the Text Viewer
+ * @return An int value containing the cursor position
+ */
+ protected int getCursorPosition() {
+ return textViewer.getTextWidget().getCaretOffset();
+ }
+
+ protected Collection<NamespaceInfo> getNamespaces(IDOMElement element) {
+ NamespaceTable table = new NamespaceTable(element.getOwnerDocument());
+ table.visitElement(element);
+
+ Collection<NamespaceInfo> namespaceInfoList = table.getNamespaceInfoCollection();
+
+ return namespaceInfoList;
+ }
+
+
+}
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/ExcludeResultPrefixesContentAssist.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/ExcludeResultPrefixesContentAssist.java
new file mode 100644
index 0000000..037d828
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/ExcludeResultPrefixesContentAssist.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ *Copyright (c) 2008 Standards for Technology in Automotive Retail and others.
+ *All rights reserved. This program and the accompanying materials
+ *are made available under the terms of the Eclipse Public License v1.0
+ *which accompanies this distribution, and is available at
+ *http://www.eclipse.org/legal/epl-v10.html
+ *
+ *Contributors:
+ * David Carver (STAR) - bug 230136 - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.xsl.ui.internal.contentassist;
+
+import java.util.Collection;
+
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
+import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xsl.core.XSLCore;
+import org.eclipse.wst.xsl.ui.internal.util.XSLPluginImageHelper;
+import org.eclipse.wst.xsl.ui.internal.util.XSLPluginImages;
+import org.w3c.dom.Node;
+
+/**
+ * Provides content assistance for xsl elements that have the
+ * exclude-result-prefixes attribute. This will provide a list
+ * of all known result prefixes that aren't currently in the attribute
+ * list. This list is a space separated list. The XSL prefix is
+ * excluded.
+ *
+ * @author dcarver
+ * @since 1.0
+ *
+ */
+public class ExcludeResultPrefixesContentAssist extends AbstractXSLContentAssistRequest {
+
+ private static final String EXCLUDE_RESULT_PREFIXES = "exclude-result-prefixes"; //$NON-NLS-1$
+ private static final String DEFAULT = "#all"; //$NON-NLS-1$
+ private static final String ADDITIONAL_INFO = Messages.getString("ExcludeResultPrefixesContentAssist.2"); //$NON-NLS-1$
+ protected String[] tokens = null;
+
+ /**
+ * Handles Content Assistance requests for Select Attributes. This is called an instantiated
+ * through the use of the computeProposals method from the XSLContentAssistProcessor. It will
+ * calculate the available proposals that are available for the XSL select attribute.
+ *
+ * @param node
+ * @param parent
+ * @param documentRegion
+ * @param completionRegion
+ * @param begin
+ * @param length
+ * @param filter
+ * @param textViewer
+ */
+
+ @SuppressWarnings("deprecation")
+ public ExcludeResultPrefixesContentAssist(Node node, Node parent,
+ IStructuredDocumentRegion documentRegion,
+ ITextRegion completionRegion, int begin, int length, String filter,
+ ITextViewer textViewer) {
+ super(node, parent, documentRegion, completionRegion, begin, length, filter);
+ this.textViewer = textViewer;
+ }
+
+ /**
+ * (non-Javadoc)
+ * @see org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest#getCompletionProposals()
+ */
+ @Override
+ public ICompletionProposal[] getCompletionProposals() {
+ proposals.clear();
+
+ IDOMAttr attrNode = (IDOMAttr)((IDOMElement)getNode()).getAttributeNode(EXCLUDE_RESULT_PREFIXES);
+ String excludeResultPrefixes = attrNode.getValue();
+ int offset = getCursorPosition();
+
+ if (excludeResultPrefixes == null) {
+ return super.getCompletionProposals();
+ }
+
+ tokens = excludeResultPrefixes.split("\\s"); //$NON-NLS-1$
+ if (tokens[0].equals("")) { //$NON-NLS-1$
+ CustomCompletionProposal proposal = new CustomCompletionProposal(
+ DEFAULT, offset, 0, DEFAULT.length(),
+ XSLPluginImageHelper.getInstance().getImage(XSLPluginImages.IMG_PREFIX),
+ DEFAULT, null, null, 0);
+ addProposal(proposal);
+ }
+ Collection<NamespaceInfo> namespaces = this.getNamespaces((IDOMElement)node);
+ for (NamespaceInfo namespace : namespaces) {
+
+ if (includePrefix(namespace)) {
+ CustomCompletionProposal proposal = new CustomCompletionProposal(
+ namespace.prefix, offset, 0, namespace.prefix.length(),
+ XSLPluginImageHelper.getInstance().getImage(XSLPluginImages.IMG_PREFIX),
+ namespace.prefix, null, namespace.uri, 0);
+ addProposal(proposal);
+ }
+ }
+
+ return super.getCompletionProposals();
+ }
+
+ protected boolean includePrefix(NamespaceInfo namespace) {
+ return !prefixExists(namespace.prefix) && !namespace.prefix.equals("") && !namespace.uri.equals(XSLCore.XSL_NAMESPACE_URI); //$NON-NLS-1$
+ }
+
+
+ protected boolean prefixExists(String prefix) {
+ if (tokens == null || tokens.length == 0) {
+ return false;
+ }
+ for (int cnt = 0; cnt < tokens.length; cnt++) {
+ if (prefix.equals(tokens[cnt])) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+}
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/SelectAttributeContentAssist.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/SelectAttributeContentAssist.java
index 6320dc9..9e2f325 100644
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/SelectAttributeContentAssist.java
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/SelectAttributeContentAssist.java
@@ -22,7 +22,6 @@
import org.eclipse.wst.xsl.ui.internal.contentassist.CustomCompletionProposal;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
import org.eclipse.wst.xml.xpath.core.internal.parser.XPathParser;
import org.eclipse.wst.xml.xpath.core.util.XSLTXPathHelper;
import org.eclipse.wst.xml.xpath.ui.internal.contentassist.XPathTemplateCompletionProcessor;
@@ -41,7 +40,7 @@
* @author dcarver
*
*/
-public class SelectAttributeContentAssist extends ContentAssistRequest {
+public class SelectAttributeContentAssist extends AbstractXSLContentAssistRequest {
private static final String XPATH_GLOBAL_VARIABLES = "/xsl:stylesheet/xsl:variable"; //$NON-NLS-1$
@@ -64,9 +63,6 @@
private List<String> fTemplateContexts = new ArrayList<String>();
private static final byte[] XPATH_LOCK = new byte[0];
- private ITextViewer textViewer = null;
-
-
/**
* Handles Content Assistance requests for Select Attributes. This is called an instantiated
* through the use of the computeProposals method from the XSLContentAssistProcessor. It will
@@ -265,24 +261,6 @@
}
}
- /**
- * Checks to make sure that the NodeList has data
- * @param nodes A NodeList object
- * @return True if has data, false if empty
- */
- private boolean hasNodes(NodeList nodes) {
- return nodes != null && nodes.getLength() > 0;
- }
-
- /**
- * Get the cursor position within the Text Viewer
- * @return An int value containing the cursor position
- */
- private int getCursorPosition() {
- return textViewer.getTextWidget().getCaretOffset();
- }
-
-
private XPathTemplateCompletionProcessor getTemplateCompletionProcessor() {
if (fTemplateProcessor == null) {
fTemplateProcessor = new XPathTemplateCompletionProcessor();
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/XSLContentAssistProcessor.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/XSLContentAssistProcessor.java
index 1cb3b01..d506feb 100644
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/XSLContentAssistProcessor.java
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/XSLContentAssistProcessor.java
@@ -15,6 +15,8 @@
*******************************************************************************/
package org.eclipse.wst.xsl.ui.internal.contentassist;
+import java.util.ArrayList;
+
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.contentassist.ICompletionProposal;
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
@@ -53,6 +55,7 @@
private static final String ATTR_SELECT = "select"; //$NON-NLS-1$
private static final String ATTR_TEST = "test"; //$NON-NLS-1$
private static final String ATTR_MATCH = "match"; //$NON-NLS-1$
+ private static final String ATTR_EXCLUDE_RESULT_PREFIXES = "exclude-result-prefixes"; //$NON-NLS-1$
/**
* Retrieve all global variables in the stylesheet.
*/
@@ -123,23 +126,33 @@
IStructuredDocumentRegion sdRegion, ITextRegion completionRegion,
ICompletionProposal[] proposals, String matchString) {
ContentAssistRequest contentAssistRequest;
- if (this.hasAttributeAtTextRegion(ATTR_SELECT, xmlNode.getAttributes(), completionRegion)) {
+ NamedNodeMap nodeMap = xmlNode.getAttributes();
+
+ if (this.hasAttributeAtTextRegion(ATTR_SELECT, nodeMap, completionRegion)) {
contentAssistRequest = new SelectAttributeContentAssist(
xmlNode, xmlNode.getParentNode(), sdRegion,
completionRegion, documentPosition, 0, matchString,
textViewer);
proposals = contentAssistRequest.getCompletionProposals();
}
- if (this.hasAttributeAtTextRegion(ATTR_TEST, xmlNode.getAttributes(), completionRegion)) {
+ if (this.hasAttributeAtTextRegion(ATTR_TEST, nodeMap, completionRegion)) {
contentAssistRequest = new TestAttributeContentAssist(
xmlNode, xmlNode.getParentNode(), sdRegion,
completionRegion, documentPosition, 0, matchString,
textViewer);
proposals = contentAssistRequest.getCompletionProposals();
}
+ if (this.hasAttributeAtTextRegion(ATTR_EXCLUDE_RESULT_PREFIXES, nodeMap, completionRegion)) {
+ contentAssistRequest = new ExcludeResultPrefixesContentAssist(
+ xmlNode, xmlNode.getParentNode(), sdRegion,
+ completionRegion, documentPosition, 0, matchString,
+ textViewer);
+
+ proposals = contentAssistRequest.getCompletionProposals();
+ }
return proposals;
}
-
+
/**
* StructuredTextViewer must be set before using this.
*
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/messages.properties b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/messages.properties
index 67591fe..ecbe244 100644
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/messages.properties
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/messages.properties
@@ -1 +1,2 @@
+ExcludeResultPrefixesContentAssist.2=XML Namespace:
XPathCustomTemplateProposal.1=Description:\r\n
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/util/XSLPluginImages.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/util/XSLPluginImages.java
index dfc21c6..ec4f780 100755
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/util/XSLPluginImages.java
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/util/XSLPluginImages.java
@@ -33,6 +33,12 @@
/**
* Path to the XPATH Images used for Content Assist
*/
- public static final String IMG_OPERATOR = "icons/full/operation.gif"; //$NON-NLS-1$
+ public static final String IMG_OPERATOR = "icons/full/operation.gif"; //$NON-NLS-1$
+
+ /**
+ * Path to the XML Prefix Image used for Content Assist
+ */
+ public static final String IMG_PREFIX = "icons/full/package_obj.gif"; //$NON-NLS-1$
+
}