ASSIGNED - bug 225418: [xslt][validation] Hyperlinks for variables
https://bugs.eclipse.org/bugs/show_bug.cgi?id=225418
diff --git a/bundles/org.eclipse.wst.xsl.ui/.project b/bundles/org.eclipse.wst.xsl.ui/.project
index ea6d47e..b662d7d 100644
--- a/bundles/org.eclipse.wst.xsl.ui/.project
+++ b/bundles/org.eclipse.wst.xsl.ui/.project
@@ -20,9 +20,15 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.wst.xsl.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xsl.ui/META-INF/MANIFEST.MF
index af36e85..86d2d5b 100644
--- a/bundles/org.eclipse.wst.xsl.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.xsl.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.xsl.ui;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.1.0.qualifier
 Bundle-Activator: org.eclipse.wst.xsl.ui.internal.XSLUIPlugin
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.ui;bundle-version="[3.4.0,4.0.0)",
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/contentmodel/XSLContentModelGenerator.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/contentmodel/XSLContentModelGenerator.java
index 989cdfd..f88876f 100755
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/contentmodel/XSLContentModelGenerator.java
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/contentassist/contentmodel/XSLContentModelGenerator.java
@@ -22,7 +22,7 @@
  * This provides the ContentModel based off the XSL xml schema grammars and other
  * grammars provided by the xml editor.
  * 
- * @since 1.0
+ * @since 1.1
  *
  */
 public class XSLContentModelGenerator extends AbstractContentModelGenerator {
diff --git a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/editor/XSLHyperlinkDetector.java b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/editor/XSLHyperlinkDetector.java
index febf8db..997e2fd 100644
--- a/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/editor/XSLHyperlinkDetector.java
+++ b/bundles/org.eclipse.wst.xsl.ui/src/org/eclipse/wst/xsl/ui/internal/editor/XSLHyperlinkDetector.java
@@ -78,55 +78,44 @@
 
 			Element xslEl = null;
 			Attr xslAttr = null;
-			if (currentNode.getNodeType() == Node.ATTRIBUTE_NODE)
-			{
-				Attr att = (Attr) currentNode;
-				if (XSLCore.XSL_NAMESPACE_URI.equals(att.getOwnerElement().getNamespaceURI()))
+			if (XSLCore.XSL_NAMESPACE_URI.equals(currentNode.getNamespaceURI())) {
+				if (currentNode.getNodeType() == Node.ATTRIBUTE_NODE)
 				{
+					Attr att = (Attr) currentNode;
 					xslEl = att.getOwnerElement();
 					xslAttr = att;
 				}
-			}
-			else if (currentNode.getNodeType() == Node.ELEMENT_NODE)
-			{
-				Element el = (Element)currentNode;
-				if (XSLCore.XSL_NAMESPACE_URI.equals(el.getNamespaceURI()))
+				
+				if (currentNode.getNodeType() == Node.ELEMENT_NODE)
 				{
-					xslEl = el;
-					xslAttr = getCurrentAttrNode(el, region.getOffset());
+					Element el = (Element)currentNode;
+						xslEl = el;
+						xslAttr = getCurrentAttrNode(el, region.getOffset());
 				}
 			}
-			// try to create hyperlink from information gathered
-			if (xslEl != null && xslAttr != null)
-			{
-				IRegion hyperlinkRegion = getHyperlinkRegion(xslAttr);
-				IFile file = getFileForDocument(document);
-				if (file != null)
-				{
-					if ("call-template".equals(xslEl.getLocalName()) && "name".equals(xslAttr.getLocalName()))
-					{
-						hyperlink = createCallTemplateHyperLink(file,xslAttr.getValue(), hyperlinkRegion);
-					}
-					else if (("include".equals(xslEl.getLocalName()) || "import".equals(xslEl.getLocalName()))
-						&& "href".equals(xslAttr.getLocalName()))
-					{
-						// seems to be handled elsewhere (XML editor??)
-//						hyperlink = createIncludeHyperLink(file,xslAttr.getValue(), hyperlinkRegion);
-					}
-				}
-			}
+			
+			hyperlink = createHyperLink(document, hyperlink, xslEl, xslAttr);
 		}
 		return hyperlink == null ? null : new IHyperlink[]{hyperlink};
 	}
+
+	private IHyperlink createHyperLink(IDocument document,
+			IHyperlink hyperlink, Element xslEl, Attr xslAttr) {
+		if (xslEl != null && xslAttr != null)
+		{
+			IRegion hyperlinkRegion = getHyperlinkRegion(xslAttr);
+			IFile file = getFileForDocument(document);
+			if (file != null)
+			{
+				if ("call-template".equals(xslEl.getLocalName()) && "name".equals(xslAttr.getLocalName()))
+				{
+					hyperlink = createCallTemplateHyperLink(file,xslAttr.getValue(), hyperlinkRegion);
+				}
+			}
+		}
+		return hyperlink;
+	}
 	
-//	private IHyperlink createIncludeHyperLink(IFile currentFile, String include, IRegion hyperlinkRegion)
-//	{
-//		IHyperlink hyperlink = null;
-//		IFile linkedFile = XSLCore.resolveFile(currentFile, include);
-//		if (linkedFile != null && linkedFile.exists())
-//			hyperlink = new SourceFileHyperlink(hyperlinkRegion,linkedFile);
-//		return hyperlink;
-//	}
 
 	private IHyperlink createCallTemplateHyperLink(IFile currentFile, String templateName, IRegion hyperlinkRegion)
 	{